一个小问题 一个例子的答案 我怎么感觉溢出了啊 麻烦大神看下
mov al,98hadd al,al
课本例子 答案是al=30h cf=1
但是 98h 的二进制是 1001 1000b 也就是-104的补码
*******************************************************************************************
这里有点小疑问麻烦大神解决下 应为最高位是1 计算机应该是按照有符号数运算的对么???
********************************************************************************************
然后 add al,al 也就是 -104-104 =-208超出al范围
我这么理解对么 ? 麻烦高手指点下
98H+98H=130H AL寄存器只能保存后2位 所以 AL=30 ,在计算的时候产生进位 cF被CPU放置为1,假如入、2个数相加 没有产生进位 CF会被CPU放置为0,就这么简单 38299676 发表于 2016-8-30 21:45
98H+98H=130H AL寄存器只能保存后2位 所以 AL=30 ,在计算的时候产生进位 cF被CPU放置为1,假如入、2个数相 ...
那就有问题了 如果你吧130H 转换下 则超出了AL的最大范围溢出不就是按照这个计算的么 w270061449 发表于 2016-8-31 08:46
那就有问题了 如果你吧130H 转换下 则超出了AL的最大范围溢出不就是按照这个计算的么
你是 add al,al 好不 这是一个8位的数的的加减法,相当于在8位机器上的计算。
要想直接得到正确结果 ADD ah,ah得到的值就是130H,也许我讲的不很明白 大致意思就这样。
页:
[1]