如何使用ADC在Assembly中添加两个32位数?

时间:2011-01-17 13:54:53

标签: assembly 32-bit add carryflag

如何使用ADC在Assembly中添加两个32位数?

2 个答案:

答案 0 :(得分:1)

假设一个8位处理器带有ld,st,adc和add和index寄存器X& Y指向要添加的值,结果替换* X:

ld 3,X
add 3,Y   ; The first add is without carry
st 3,X
ld 2,X
adc 2,Y   ; subsequent adds propagate carry.
st 2,X
ld 1,X
adc 1,Y
st 1,X
ld 0,X
adc 0,Y
st 0,X

答案 1 :(得分:0)

ADC代表“ADd with Carry”,实际上它就像添加两个值并再次添加进位标志的值:

adc eax,ebx

就像:

add eax, ebx
add eax, cf

或:

add eax, ebx
jnc dont_add
inc eax

dont_add:
...