鱼C论坛

 找回密码
 立即注册
查看: 2418|回复: 4

实验10(1)代码疑问

[复制链接]
发表于 2016-9-23 10:24:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 qwe1231069 于 2016-9-23 13:32 编辑

从昨天开始编写,今天刚刚完成(其中失败了若干次,太笨了没办法)
主要想问下显存的地址,8行3列不应该是8*160+3*2=1286==506h,我用这个地址结果出来的都是一堆颜色
我改成5后就行了,不太懂。地址从0开始,6不正是个偶字节吗,字符放在偶字节中,不对吗?另外我代码写的太难看了,希望提些改进意见。
assume cs:code,ds:data

data segment 

        db'welcome to masm!',0

data ends

code segment

start:        mov dh,8
        mov dl,3
        mov cl,2
        mov ax,data
        mov ds,ax
        mov si,0
        call show_str

        mov ax,4c00h
        int 21h

show_str:        mov ax,0b800h
        mov es,ax
        mov bl,dh
        mov bh,0
        mov ax,160
        mul bx
        mov bx,5
        add bx,ax                ;bx==要复制的显存地址
        
        mov al,cl
s:        mov ah,ds:[si]
        mov ch,ah
        mov word ptr es:[bx],ax                        ;ax是复制的值
        inc si
        add bx,2
        mov cl,01
        loop s
        ret
code ends

end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-23 12:15:35 | 显示全部楼层

回帖奖励 +2 鱼币

31行32行33行错了,因为ax作为复制的值,高位应该为颜色,低位为字符吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-23 12:19:43 | 显示全部楼层
zzzz76 发表于 2016-9-23 12:15
31行32行33行错了,因为ax作为复制的值,高位应该为颜色,低位为字符吧

大哥我已经编译过了没错
已经实现了功能
不过我不知道为啥我把地址设成奇数,程序才正常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-23 12:52:28 | 显示全部楼层
这样说吧,程序没问题,你把bx改成任何奇数都行 因为mov word ptr es:[bx],ax,这一步的之前三步,字符对应的颜色被你赋值在低位相应字符在高位(改成奇数才能保证字符在偶数位),你给每个字符赋不同的颜色,你会发现你所有的字符对应的颜色都向前移动了一位

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
qwe1231069 + 1 + 1 感谢

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-23 13:32:13 | 显示全部楼层
zzzz76 发表于 2016-9-23 12:52
这样说吧,程序没问题,你把bx改成任何奇数都行 因为mov word ptr es:,ax,这一步的之前三步,字符对应的颜 ...

我懂了
谢谢
我就是没绕过那个弯
我是在想内存中是7702,那ax也就是7702,忘了高位和低位
非常感谢你又跟我解释了一遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 16:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表