怎么算都觉得不对
若al=76h,bl=9ch,当8086执行al-bl操作后,标志位of和cf应分别为?答案给的是of=1,cf=1。
我自己算出来不对啊,我算出来of=0,cf=1.
求助详细过程!
CF 就不说了吧,说下OF吧
OF:当运算的结果超出了这个范围,就产生了溢出,说明产生了符号位,计算不准确了。简单的来说就是算出来的这个数变成了一个有符号数,让结果不准确。76 - 9c = 118 - 156 = -38,十六进制是DA,无符号的话是218,但是现在是-38,如果该 OF = 0,那计算器会认为是 218,而实际要的是 -38,所以是 OF = 1 丶忘却的年少o 发表于 2018-3-25 11:08
CF 就不说了吧,说下OF吧
OF:当运算的结果超出了这个范围,就产生了溢出,说明产生了符号位,计算不准确 ...
76 - 9c = 118 - 156 = -38,没有异议,正因为如此,机器表示范围为-128~127, -38在此范围内。所以当时认为没有溢出
后面说,无符号的话是218,但是现在是-38,如果该 OF = 0,那计算器会认为是 218,而实际要的是 -38,所以是 OF = 1
这一段不是很懂, 感谢解答! 自宅警備員 发表于 2018-3-25 11:33
76 - 9c = 118 - 156 = -38,没有异议,正因为如此,机器表示范围为-128~127, -38在此范围内。所以当 ...
如果我记得没错的话,范围是0—255,就是因为有标志位,才会有 0—255 和-128—127 这两种状态。 本帖最后由 自宅警備員 于 2018-3-25 11:57 编辑
丶忘却的年少o 发表于 2018-3-25 11:37
如果我记得没错的话,范围是0—255,就是因为有标志位,才会有 0—255 和-128—127 这两种状态。
书中原话是这么写的:
of:反映带符号(二进制补码表示)运算结果是否超过机器所能表示的数值范围的情况,对字节运算为-128~127,对字为-32768~+32767,若超过上诉范围,称为溢出,of置1
那个无符号的话是218,这个怎么算出来的呃? 自宅警備員 发表于 2018-3-25 11:56
书中原话是这么写的:
of:反映带符号(二进制补码表示)运算结果是否超过机器所能表示的数值范围的 ...
那这么说的话76 - 9c = 118 - (-100) = 218,结果还是溢出了 https://www.cnblogs.com/amanlikethis/p/3372681.html
页:
[1]