Как я делаю добавление двух чисел из 32 бит в Assembly с использованием ADC?Как сделать добавление двух чисел из 32 бит в Assembly с использованием ADC?
-1
A
ответ
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:
...
Какой разрядности является процессор? – sharptooth
Мне нужно добавить два номера в сборку, используя debug, программа должна принимать 32 бита. – ebed
Просьба привести пример этой операции. – ebed