欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 03:17:56 责任编辑: Author_N1

 

利用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 相当于什么都没做。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:17:56
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20559/
本文WWW.DOC100.NET DOC100.NET版权所有。