利用loop指令,实现在内存2000H段中查找第一个值为0的字节
找到后,将它的偏移地址存储在DX中:
assumen cs:code
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
S:mov cl,[bx]
mov ch,0
?????
inc bx
loop s
ok:dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start
问好那填一句指令 如何写?
[解决办法]
题目应该没有歧义,你的3个断句也还是同一个意思。
答案应该是 inc cx
因为 loop 指令是先将cx减1,然后再判断cx是否为0,若不为0则转移,若为0则执行loop的下一句。
[解决办法]
当然要保证这个段中一定存放着0才行,否则要在inc bx后加上判断是否到断尾的语句
cmp bx,0
jz error (描述未找到的语句或换成jz ok,不改dx)
[解决办法]
若是 jcxz ok,那ok后面的 dec bx 就不能要了。
[解决办法]
or cl,ch
[解决办法]
上面写错了!
xor cl,ch
[解决办法]
错。
ch 已取值为 0,与 0 做异或值不变,所以 xor cl,ch 相当于什么都没做。