. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
转移指令的原理
主题 : :
关于转移指令loop
[已解决]
回复[
7
次 ] 点击[
312
次 ]
realbit
[帖 主]
[ 发表时间:2011-12-02 15:59 ]
荣誉值:1
信誉值:4
注册日期:2011-11-28 20:29
大家想过没有,如果cx是负数,是不是会陷入死循环?
王爽老师的书没有深入的讲解数学运算的东西,在看9.8节 检测点9.2的时候我想了这个问题。
其实应该不会陷入死循环,因为溢出的话又会回到起点。
希望王爽老师可以添加相关内容
realbit
[第
5
楼]
[ 回复时间:2011-12-03 14:17 ]
荣誉值:1
信誉值:4
注册日期:2011-11-28 20:29
回复:[第4楼]
------------------
我又仔细看了一下,实际上是溢出了。
cx的变化
-1 ---> -32768 循环次数: 32767次
-32768 ---> 32767 此处溢出,循环次数: 1次
32767 --->0 循环次数: 32767次
总共计循环次数:32767+1+32767=65535次
我们将ax看作无符号整数:65535=FFFFh
所以说,在这个程序中,溢出是存在的。
“说明最终是跳出了,因为溢出后它又恢复正常了。”这句话的后半句是说,溢出后,在cx为正整数的情况下,loop才是正常的。
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved