关于第九章“welcome to masm!”显示的问题
本帖最后由 lan_xin2578 于 2011-11-9 14:35 编辑自己写了一个程序,是关于在屏幕中间显示三行有显示效果的“welcome to masm!”,但是不能执行,反复检查了好几遍,还是没有发现什么问题,求大家帮我看看。
assume cs:codesg, ds:datasg, ss:stacksg
datasg segment
db 'welcome to masm!' ;要显示的字体
db 02h,24h,71h ;显示效果参数
datasg ends
stacksg segment
dw 8 dup(0)
stacksg ends
codesg segment
start: mov ax, datasg
mov ds, ax
mov ax, stacksg
mov ss, ax
mov sp, 10h
mov ax, 0b872h
mov bx,0
mov cx, 3
s: mov es, ax ;以ax中值作为在屏幕中显示字体的段地址
push cx
push ax
mov di, 0
mov si, 0
mov cx, 16
s0: mov al, ;将所要显示的字符串写进显存,每个字符占一个word
mov es:, al
add di, 2
inc si
loop s0
mov cx, 16
mov al,
mov di, 1
s1: mov es:, al ;加入显示效果
add di, 2
loop s1
pop ax
pop cx
add ax, 0a0h ;将第二行地址放入ax
add bx, 1
loop s
mov ax, 4c00h
int 21h
codesg ends
end start
求助,都快崩溃了
据说 debug调试下这个程序
再运行就显示了。。 ever.g 发表于 2011-11-9 13:52 static/image/common/back.gif
据说 debug调试下这个程序
再运行就显示了。。
还真是,可debug后运行只是显示了一行,剩下两行没有显示出来,不知哪儿代码错了,我再认真找找,真痛苦。 谢谢你 问题出在了ax上面,看样子ax不是偏移地址吧,是段地址。 你最后面ax怎么是加0a0h呢? 应该是0ah吧,就是段地址X16,所以你把ax当偏移地址了. 090704020006 发表于 2011-11-10 16:19问题出在了ax上面,看样子ax不是偏移地址吧,是段地址。 你最后面ax怎么是加0a0h呢? 应该是0ah吧,就是段地 ...
恩,好像是这么回事,很很感谢你,现在回家了,回学校时试一下 不客气{:1_1:}以后大家多交流,我也是新手 090704020006 发表于 2011-11-13 11:31 static/image/common/back.gif
不客气以后大家多交流,我也是新手
问题解决了,就像你说的那样{:5_109:}
页:
[1]