检测点9.3
补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。
assume cs:code
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
inc cx
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
不解的地方是那个inc cx。在我所知的cx和loop是cx如果等于0程序向下执行。可是程序中的cx等于0了。去掉inc cx。程序一直在死循环到 s标号处,正常不是应该等于0向下走么。还有inc cx 这样cx 不是等于1了么。程序应该减一跳回才是,结果是正常向下走了。而cs也减1了 |