一世芳华 发表于 2012-2-9 09:47:29

实验9.3 疑问!

assume cs:codesg
codesg segment
   start:mov ax,2000h
         mov ds,ax
   mov bx,0
S:   mov cl,
      mov ch,0
      inc bx
   loop s      ;此处为什么会进入死循环,总有cx=0的时候吧? 不解! 即使有inc bx 这个命令,但是,上面的cx已经等0
    dec bx               ;了啊,cx=0应该继续执行loop下面的语句。
      mov dx,bx
      mov ax,4c00h
   int 21h
   codesg ends
   end start
   

一世芳华 发表于 2012-2-9 09:55:13

也就是说,空格处什么都不填

一世芳华 发表于 2012-2-9 09:56:49

:loveliness:,哎,自己想通了,执行loop 前,先进行cx-1 0-1=ffff 所以会进入死循环。。。。

′____gougou 发表于 2012-2-11 21:12:38

嗯。我也刚看到这题。inc cx 好聪明
我想到的。jcxz ok

痛苦的信仰 发表于 2012-2-12 22:13:57

我想知道inc bx又是什么用意啊,不用也一样啊

cenjie88 发表于 2012-2-12 22:32:01

inc cx正解补回loop的cx减一

一世芳华 发表于 2012-2-12 22:43:03

痛苦的信仰 发表于 2012-2-12 22:13 static/image/common/back.gif
我想知道inc bx又是什么用意啊,不用也一样啊

不用怎么一样呢? 从2000的段地址开始查找内存单元为0的地址,不用inc bx 只查第一个就没有了。能一样吗?
还有,刚开始我用or命令判断内存单元为0了,绕了一圈,看答案,发现没有小甲鱼的简洁,大家也可以用or命令试试,加深理解~~~

痛苦的信仰 发表于 2012-2-13 18:13:23

一世芳华 发表于 2012-2-12 22:43 static/image/common/back.gif
不用怎么一样呢? 从2000的段地址开始查找内存单元为0的地址,不用inc bx 只查第一个就没有了。能一样吗? ...

谢谢了.是我自己糊涂了,因为debug时2000段内的内容全是0.哈哈

y290176346 发表于 2015-10-8 22:02:12

感谢楼主谢谢你 学习了

835166806 发表于 2015-10-28 22:15:27

我想到是这个 loop start 行不行?

dps521 发表于 2015-11-28 13:57:55

:smile:smile:smile:smile:smile:smile:smile

鱼C工作室.YCGZS 发表于 2015-11-29 11:10:43

好聪明,佩服

immortalfaith 发表于 2016-9-11 15:47:05

留个坐

冲啊大笼包 发表于 2016-11-12 20:21:15

留个座,好好加油

immortalfaith 发表于 2016-11-20 23:18:03

围观

fishc1008 发表于 2016-12-29 20:03:51

留个座

e马先森 发表于 2017-2-15 13:37:11

执行loop 前,先进行cx-1 0-1=ffff 进入了死循环
页: [1]
查看完整版本: 实验9.3 疑问!