2015-02-11 51 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