Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Дисциплины:
2024-02-15 | 22 |
5.00
из
|
Заказать работу |
|
|
Команды ADD (add - сложить) и ADC (add with carry - сложить с переносом) могут складывать как 8-, так и 16-битовые операнды. Команда ADD складывает содержимое операнда-источника и операнда-приемника и помещает результат в операнд-приемник. В символической нотации ее действия можно описать как
приемник = приемник + источник
Команда ADC делает то же, что и команда ADD, но при сложении использует также флаг переноса CF, что можно записать следующим образом:
приемник = приемник + источник + перенос
Перенос при сложении двоичных чисел аналогичен переносу при сложении десятичных чисел в столбик. Например, при сложении
98
+ 13
79
190
возникает два переноса: сложение единиц вызывает добавление 2 к десяткам, а сложение десятков и перенос из столбца единиц вызывает другой перенос, а именно числа 1 в столбец сотен. Перенос возникает тогда, когда сумма цифр столбца в нем не помещается.
Аналогичным образом возникает перенос, когда ЭВМ складывает двоичные числа: если сумма не помещается в операнде-приемнике, то генерируется перенос. Как известно, 8-битовый регистр может содержать значения без знака в диапазоне от 0 до 255. Если мы, например, выполним двоичное сложение чисел 250 и 10, то получим
1111 1010 (двоичное представление числа 250)
+ 0000 1010 (двоичное представление числа 10)
1 0000 01000 (ответ: десятичное значение 260)
Результат верен, но занимает 9 двоичных битов! Если при выполнении этой операции мы использовали 8-битовые регистры, то младшие 8 битов будут занесены в регистр-приемник, а девятый бит - во флаг переноса CF.
Теперь Вам нетрудно понять, почему микропроцессор 8x86 имеет две разные команды сложения. Одна из них (ADD) может складывать значения, представляемые байтами или словами, а также младшие части значений повышенной точности. Другая команда (ADC) используется для сложения старших частей значений повышенной точности.
|
Например, команда
ADD AX,CX
складывает 16-битовые значения регистров АХ и СХ и возвращает результат в регистр АХ. Если Ваши операнды имеют длину более 16 битов, то можно воспользоваться последовательностью команд вида
ADD АХ,СХ ; Сначала сложить младшие 16 битов, а затем
ADC BX,DX ; старшие 16 битов
которая складывает 32-битовое число, находящееся в регистрах СХ и DX, с 32-битовым числом, находящимся в регистрах АХ и ВХ. Использованная здесь команда ADC добавляет к (DX)+(BX) любой перенос от сложения (СХ)+(АХ).
Вы можете также добавлять находящийся в памяти операнд к регистру и наоборот или добавлять непосредственный операнд к регистру или операнду, находящемуся в памяти. Приведем несколько примеров:
ADD AX,MEM_WORD ;Добавить значение ячейки памяти к регистру
ADD MEM_WORD,AX ;или наоборот
ADD АL,10 ;Добавить константу к регистру
ADD MEM_BYTE,OFH ;или к ячейке памяти
Допускается большинство возможных комбинаций, но нельзя добавить значение одной ячейки памяти к другой или использовать в качестве приемника непосредственное значение.
Команды ADD и ADC могут воздействовать на шесть флагов:
Флаг переноса CF равен 1, если результат сложения не помещается в операнде-приемнике; в противном случае он равен 0.
Флаг четности PF равен 1, если результат имеет четное число битов со значением 1; в противном случае он равен 0.
Вспомогательный флаг переноса AF равен 1, если результат сложения десятичных чисел требует коррекции; в противном случае он равен 0.
Флаг нуля ZF равен 1, если результат равен 0; в противном случае он равен 0.
Флаг знака SF равен 1, если результат отрицателен (старший бит равен 1); в противном случае он равен 0.
Флаг переполнения OF равен 1, если сложение двух чисел одного знака (оба положительные или оба отрицательные) приводит к результату, который превышает диапазон допустимых значений приемника в обратном коде, а сам приемник при этом меняет знак. В противном случае флаг OF равен 0.
|
Флаги SF и OF имеют смысл только при сложении чисел со знаком, а флаг AF -только при сложении десятичных чисел.
Микропроцессор 8x86 имеет команды, которые проверяют флаги и на основе результатов проверки принимают решение о том, куда передать управление. Например, при отрицательном результате (SF=1) должна исполняться одна группа команд, а при положительном (SF=0) — другая. Эти команды "принятия решения" будут обсуждаться ниже.
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!