圣光玉宇 发表于 2013-3-23 17:22:23

“cx=2"为什么是2次?


王爽老师的《汇编语言》第二版5.3章节中(课本106页),cx=2,当执行loop指令时,
cx-1=1,由于它不等于0,所以loop跳转到0012处,这时,cx=1;再执行loop指令时,
cx-1=0,由于它等于0,所以不再执行loop循环指令,直接执行下一条。这么看的话,
当cx=2时,loop应该只执行一次循环指令,为什么课本上说是两次?第二次执行的
是哪条指令?

阳光影子 发表于 2013-3-23 22:34:01

当cs=2的时候也就是指向0b3d:0014

阳光影子 发表于 2013-3-23 22:37:23

当cs=2的时候也就是指向0b3d:0014这里已经执行了一次然后第二次就是cs=1的时候 物理地址为0b3d:0012的时候执行了最后一次。 前面执行的前一次也要算上去这样就是两次执行

shansongh 发表于 2013-3-24 03:01:52

汇编是按顺序执行代码的,首先,cx=2时电脑会一直执行下去,直到到达loop指令,它会先让cx-1然后跳转到循环内
再往下执行。所以是循环执行两次

小小小小鱼 发表于 2013-3-24 09:33:57

先执行 在减1~!先后顺序你搞错了~!

feizixiao 发表于 2013-3-26 10:03:18

先判定cx的值    之后循环。。
页: [1]
查看完整版本: “cx=2"为什么是2次?