英特尔8080:乘法溢出
问题描述:
我有一个8080处理器的模拟器。我需要编写一个程序,可以移动和添加多个两位数字的数字(因此我可以预期四位数字)英特尔8080:乘法溢出
据我所知,intel-8080中的所有数学运算都是在注册'A',但它只能包含两位数字。如果我多“FF”和“FF”,我得到一个溢出。如何绕过这个问题?谷歌表示,这对我的工作有进位标志,这将是“1”,如果溢出发生。
但我不明白,我怎么可以使用它。
感谢您的关注。
答
进位标志就像是MSB(最高有效位)的额外位。
Intel 8080/8085 Assembly Programming Manual。
正如它的名字所暗示的那样,进位标志通常用于指示加法是否导致'carry'进入下一个更高位的数字。进位标志也被用作减法中的'借位'标志。
这意味着什么,是,如果你有另外两个数字,将溢出寄存器:
FF + FF = 1111_1111
+ 1111_1111
= 1111_1110 + carry = 1
AE + 74 = 1010_1110
+ 0111_0100
= 0010_0010 + carry = 1
一旦设定,进位标志将一直保持,直到另一个另外的运行不导致携带。
A0 + 10 = 1010_0000
+ 0001_0000
= 1011_0000 + carry = 0