Как сделать сложение двух чисел по 32 бита в сборке с использованием АЦП?

Как сделать сложение двух чисел по 32 бита в сборке с использованием АЦП?

2 ответа

Предполагая, что 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

ADC расшифровывается как "ADd with Carry", фактически это похоже на добавление двух значений и добавление значения флага переноса:

adc eax,ebx

как:

add eax, ebx
add eax, cf

или же:

add eax, ebx
jnc dont_add
inc eax

dont_add:
...
Другие вопросы по тегам