2011-01-17 6 views
-1

Как я делаю добавление двух чисел из 32 бит в Assembly с использованием ADC?Как сделать добавление двух чисел из 32 бит в Assembly с использованием ADC?

+0

Какой разрядности является процессор? – sharptooth

+0

Мне нужно добавить два номера в сборку, используя debug, программа должна принимать 32 бита. – ebed

+0

Просьба привести пример этой операции. – ebed

ответ

1

Предполагая 8-битный процессор с LD, ST, АЦП и добавлять и индексные регистры 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 
0

ADC обозначает «Сложение с Carry», на самом деле это, как добавить два значения и добавить снова значение флага переноса:

adc eax,ebx 

, как:

add eax, ebx 
add eax, cf 

или:

add eax, ebx 
jnc dont_add 
inc eax 

dont_add: 
...