ADC
(Addition with Carry)
Сложение с переносом
Схема команды: | adc приемник,источник |
Назначение: сложение двух операндов с учетом переноса из младшего разряда.
Алгоритм работы:
сложить два операнда;
поместить результат в первый операнд: приемник=приемник+источник;
в зависимости от результата установить флаги.
Состояние флагов после выполнения команды:
11 | 07 | 06 | 04 | 02 | 02 |
OF | SF | ZF | AF | PF | CF |
r | r | r | r | r | r |
Применение:
Команда adc используется при сложении длинных двоичных чисел. Ее можно использовать как самостоятельно, так и совместно с командой add. При совместном использовании команды adc с командой add сложение младших байтов/слов/двойных слов осуществляется командой add, а уже старшие байты/слова/двойные слова складываются командой adc, учитывающей переносы из младших разрядов в старшие. Таким образом, команда adc значительно расширяет диапазон значений складываемых чисел. В приложении 7 приведен пример программы сложения двоичных чисел произвольной размерности.
.data sl1 dd 01fe544fh sl2 dd 005044cdh elderREZ db 0 ;для учета переноса из старшего разряда результата rez dd 0 .code ... mov ax,sl1 add ax,sl2 ;сложение младших слов слагаемых mov rez,ax mov ax,sl+2 adc ax,sl2+2 ;сложение старших слов слагаемых плюс cf mov rez+2,ax adc elderREZ,0 ;учесть возможный перенос |
См. также: урок 8, приложение 7 и команды , , ,