王爽书中的一个小问题,求大家进来指点!

yiruirui0507 2010-09-02 11:04:27
检测点9.3(第173页)
----------------------

补全程序,利用loop指令,实现在内存2000H段中查找第一个值为0的byte,找到后,将它的偏移地址存储在dx中。



assume 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

答案是: inc cx ;此条指令为题目要求补全的指令
想不太明白,inc cx,也就是每次都让CX内容加1,这样LOOP就很难结束了啊,刚开始给BX赋值,赋值之后又让BX加1,除非当BX的内容等于-1的时候才能推出循环啊?这里该如何理解?先说谢谢!
...全文
89 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiruirui0507 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pandazhong 的回复:]
inc cx,如果此前cx中值为0。也就是在内存中找到了0,然后执行inc cx,然后执行loop之前,先让cx减1, cx为零,结束循环。
[/Quote]

一语惊醒梦中人啊,感谢你的回答,啥不说了,分数都给你!
pandazhong 2010-09-02
  • 打赏
  • 举报
回复
inc cx,如果此前cx中值为0。也就是在内存中找到了0,然后执行inc cx,然后执行loop之前,先让cx减1, cx为零,结束循环。
yiruirui0507 2010-09-02
  • 打赏
  • 举报
回复
说错了,刚开始给CX赋值,CX后来又加1!

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧