王爽汇编实验9自已编完后有调试中有一些不明白的地方,请教高手
我在编写王爽汇编实验9的课件中遇到以下问题
我没有看课件答案,
这是我自已先编写,如果一步用g 命令直接到 mov ax,4c00h地址的话,结果就是正常的达到要求,但是如果用t命令和遇到循环后用p命令就会有些字符没有了,比如我如下的代码 如果用t和p命令调试的话,最后结果就会每一行少一个w字符,这是怎么个一会事,请高手点一下水,
代码如下:
王爽汇编实验9课件
assume cs:codesg,ds:datasg,ss:stack
datasg segment
db 'welcome to masm! '
datasg ends
;1、00000010b绿色 2h
;2、00100100b绿底红字 24h
;3、01110001b 白底蓝字 71h
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,0
mov cx,16
mov si,0
mov di,0
s: mov al,[bx]
mov ah,2h ;设成绿字
mov es:720h[si],ax
mov ah,24h ;设成绿底红字
mov es:7c0h[si],ax
mov ah,71h ;设成白底蓝字
mov es:860h[si],ax
add si,2
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
end start
[解决办法]
可以这样解释:
当你用p命令执行loop指令之前,所有的w(3个w)已经在屏幕上显示过了。当你用t命令执行到loop时,已经显示过了。
由于屏幕是共享的,t命令的提示信息把你的程序的显示的w给覆盖了,但是你可以在用t命令时稍微慢点,这样就可以看到显示w了,当你用t执行到loop指令时,3个w字符已经显示过了,这时用p命令一下子显示剩下的字符。
:)