2015-02-11 68 views
1

我有一个8080处理器的模拟器。我需要编写一个程序,可以移动和添加多个两位数字的数字(因此我可以预期四位数字)英特尔8080:乘法溢出

据我所知,intel-8080中的所有数学运算都是在注册'A',但它只能包含两位数字。如果我多“FF”和“FF”,我得到一个溢出。如何绕过这个问题?谷歌表示,这对我的工作有进位标志,这将是“1”,如果溢出发生。

但我不明白,我怎么可以使用它。

感谢您的关注。

回答

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