Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Инструкция ADC
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Инструкция ADC в Ассемблере выполняет сложение с переносом. Синтаксис:
ADC ЧИСЛО1, ЧИСЛО2
Флаги изменяются в зависимости от итога выполнения команды.
Алгоритм работы команды ADC:
ЧИСЛО1 = ЧИСЛО1 + ЧИСЛО2 + CF
ЧИСЛО1 может быть одно из следующих:
- Область памяти (MEM)
- Регистр общего назначения (REG)
ЧИСЛО2 может быть одно из следующих:
- Область памяти (MEM)
- Регистр общего назначения (REG)
- Непосредственное значение - число (IMM)
С учётом ограничений, которые были описаны выше, комбинации ЧИСЛО1-ЧИСЛО2 могут быть следующими:
REG, MEM MEM, REG REG, REG MEM, IMM REG, IMM
Пара команд ADD и ADC применяется для сложения повышенной точности. Также, как и в случае с командой SBB, использование инструкции ADC позволяет складывать, например, 32-разрядные числа с помощью 16-разрядных регистров. Да и вообще разрядность чисел, можно сказать, может быть любой.
Лучше всего это показать на примере:
.model tiny .code ORG 100h start: MOV DX, 0 ;В паре DX:AX (0000:FFFF) MOV AX, 0FFFFh ;32-разрядное число 65535 MOV BX, 0 ;В паре BX:CX MOV CX, 1 ;32-разрядное число 1 ;65535 + 1 = 65536, то есть после сложения ;DX:AX = 65536 (0001:0000) ADD AX, CX ;AX = 0000 ADC DX, BX ;DX = 0001 RET END start
В комментариях всё достаточно подробно описано. Поэтому добавлять ничего не буду. Если нужны подробности, то см. похожую программу в примере к инструкции SBB.
Напоследок, как всегда, о происхождении аббревиатуры ADC.
ADC - это ADd with Carry (сложение с переносом).
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |