我有一个8080处理器的模拟器。我需要编写一个程序,它可以用移位和加法的操作将两个两位数字相乘(因此,我可以期望四位数)。
据我所知,intel-8080中的所有数学运算都是在寄存器'A‘中进行的,但只能包含两位数的数字。如果我把'ff‘和'ff’相加,就会有溢出。如何绕过这个问题?谷歌说,在我的任务中,如果出现溢出,就会有一个“1”的“进位标志”。
但我不明白,我怎么能用它。
谢谢大家的关注。
发布于 2015-02-11 06:08:54
进位标志就像一个额外的位,即MSB (最重要的位)。
Intel 8080/8085汇编编程手册。
顾名思义,进位标志通常用来表示加法是否导致下一个高阶数字的“进位”。在减法中,进位标志也用作“借入”标志。
这意味着,如果您添加了两个数字,将溢出寄存器:
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 = 0https://stackoverflow.com/questions/28447442
复制相似问题