各位大大,有空的请指点一二,初学汇编
这是个向显存写入字符然后显示出来的程序,我写好用debug调试后结果只显示21行,按照程序的设计应该显示25行的为什么只有21行啊? 不懂,求解
assume cs:codesg,ds:datasg
datasg segment
db 'hello world!',0
datasg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov al,00100100b
mov cx,25
s0: mov si,0
mov di,0
s1: cmp byte ptr [si],0
je ok
mov ah,[si]
mov es:[bx+di+40],ah
inc di
mov es:[bx+di+40],al
inc si
inc di
jmp short s1
ok: add bx,160
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
[解决办法]
经编译运行,确认是25行!
[解决办法]
被 debug 最后的 p 命令的输出滚屏给扔出去了呗。
最简单的就是 dos 命令行下,cls 命令清下屏,在直接运行你的这个程序;或者是清屏后 debug 载入你的程序,g 命令直接运行,保证 debug 的输出无须翻屏即可。