51汇编,进位与溢出的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:21:05
1、比如INC direct ,当direct的值达到256的时候,是属于进位,还是属于溢出?体现在FSR哪里?
2、ADD A,direct,当A的值达到256的时候,是属于进位,还是属于溢出?体现在FSR哪里?
3、分别给出进位和溢出的例子。
能顺便再请问一下么:
ADDC A,derect 这个带进位的加法,一般应用在什么场合?
是不是在2个16位数相加的时候,低8位用ADD加完之后,高8位用ADDC相加?

INC direct ;当direct的值达到256的时候,是属于溢出,INC指令不影响任何标志位。

ADD A,direct;当A的值达到256的时候,对无符号数运算属于进位,会置“1”进位位。对有符号数,如果最高位和次高位的进位状态不同则产生溢出,会置“1”溢出位,可以直接判断:两个正数的和为负数或两个负数的和为正数就是“溢出”了,否则没有“溢出”,此时无论是否产生“溢出”,只要最高位有进位就会置“1”进位位,但只有无“溢出”时的进位位是有效的。
例:(A)= FEH
(50H)= 03H
ADD A,20H;(A)= 01H,(CY)= 1,(OV)= 0

例:(A)= FEH
(50H)= 80H
ADD A,20H;(A)= 7EH,(CY)= 1,(OV)= 1

ADDC A,derect ;是带进位的加法,用于多字节数运算,当本次加法需要计入上次加法所产生的进位状态的情况.比如三字节加,最低字节加就用ADD,另两个字节的加就要用ADDC.

注意:进位是对于无符号的,溢出是对于有符号的

1,属于进位 当direct=0FFH时,CF=1,
有符号时,direct=255,
inc direct=256='1'00H=00H, OF=0 (-128<M<127)

2,A=0FFH,direct>1时,CF=0(0<M<FFFF)
有符号时,direct>1时, 令A=N, M=255+N
-32768<M<32767 ,OF=0

3,我只用过adc

(个人愚解)