利用loop指令,实现在内存储器2000H段中查找第一个值为0的字节

利用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 相当于什么都没做。