首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2013-04-20 
利用loop指令,实现在内存2000H段中查找第一个值为0的字节找到后,将它的偏移地址存储在DX中:assumen cs:cod

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

热点排行