Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Оснащения врачебно-сестринской бригады.
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2024-02-15 | 76 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Команда DEC (decrement - уменьшить) вычитает 1 из содержимого регистра или ячейки памяти, но при этом (в отличие от команды SUB) не воздействует на флаг переноса CF. Команда DEC часто используется в циклах для уменьшения значения счетчика до тех пор, пока оно не станет нулевым или отрицательным. Ее можно использовать также для уменьшения значения индексного регистpa или указателя при доступе к последовательно расположенным ячейкам памяти.
Приведем несколько примеров:
DEC CX ;Уменьшить знамение 16-битового
DEC AL ; или 8-битового регистра
DEC MEM_BYTE ;Уменьшить значение байта
DEC MEM_WORD[BX] ;или слова памяти
Команда обращения знака NEG .
Команда NEG вычитает значение операнда-приемника из нулевого значения и тем самым формирует его дополнение до двух. Команда NEG оказывает на флаг то же действие, что и команда SUB. Но поскольку один из операндов равен 0, то можно точнее описать условия изменения состояний флагов. Итак, при исполнении команды NEG флаги изменяются следующим образом:
Флаг переноса CF и флаг знака SF равны 1, если операнд представляет собой ненулевое положительное число; в противном случае они равны 0.
Флаг четности PF равен 1, если результат имеет четное число битов, равных 1; в противном случае он равен 0.
Флаг нуля ZF равен 1, если операнд равен 0; в противном случае он равен 0.
Флаг переполнения OF равен 1, если операнд-байт имеет значение 80Н или операнд-слово имеет значение 8000Н; в противном случае он равен 0.
Команда NEG полезна для вычитания значения регистра или ячейки памяти из непосредственного значения. Например, Вам нужно вычесть значение регистра AL из 100. Так как непосредственное значение не может служить приемником, то команда SUB 100, AL недопустима. В качестве альтернативы можно обратить знак содержимого регистра AL и добавить к нему 100:
|
NEG AL
ADD AL,100
Команда расширения знака.
Существуют две команды, позволяющие выполнять операции над смешанными данными за счет удвоения размера операнда со знаком. Команда CBW (convert byte to word — преобразовать байт в слово) воспроизводит 7-й бит регистра AL во всех битах регистра AH.
Команда CWD (convert word to double word — преобразовать слово в двойное слово) воспроизводит 15-й бит регистра AX во всех битах регистра DX.
Таким образом, команда CBW позволяет сложить байт и слово, вычесть слово из байта и т. д. Аналогично, команда CWD позволяет разделить слово на слово.
Приведем несколько примеров:
CBW ;Сложить байт в AL со словом в BX
ADD AX,BX
CBW ;Умножить байт в AL на слово в BX
IMUL BX
CWD ;Разделить слово в AX на слово в BX
IDIV BX
Индивидуальное задание.
1 Вычислить сумму элементов массива согласно варианту и переслать результат в элемент массива с заданным номером (табл.3 Лабораторная работа №2).
2. Каждому студенту выдается 4-хзначный вариант. Согласно этому варианту вычислить следующее выражение:
F = КОН1 оп1 (КОН2 оп2 Х оп3 Y ) оп4 Z оп5 КОН3
где
КОН1, КОН2, КОН3 – числовые константы, согласно табл. 1
оп1, оп2, оп3, оп4, оп5 – операции сложения и вычитания согласно табл. 2
X, Y – переменные, тип которых определяется согласно табл. 3
Числовые константы из табл. 1 берутся согласно первой цифре варианта, операции сложения и вычитания из табл. 2 – согласно второй цифре варианта, а размер и тип переменных – из табл. 3 согласно третьей цифре варианта.
Исходные данные хранятся в памяти с адреса 0900H, вычисление выражения производится на Ассемблере, выводимые результаты — располагаются в памяти с адреса 1000Н.
Таблица 1.
Первая цифра варианта
| |||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
КОН1 | 12 | 12569 | 87935 | 12 | 78 | 4596 | 12597563 | 4589 | 369 | 458 | |
КОН2 | 1369 | 12 | 588 | 96385 | 47 | 589 | 78 | 29 | 3856 | 481 | |
КОН3 | 3699 | 4589 | 12 | 3698 | 4589632 | 2385 | 2852 | 562235 | 336 | 36 |
Таблица 2.
Вторая цифра варианта | ||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
оп1 | + | — | — | + | + | + | + | — | — | — |
оп2 | + | + | + | — | — | + | — | — | + | + |
оп3 | — | + | — | — | + | — | + | + | — | + |
оп4 | + | + | — | — | + | — | — | + | + | + |
оп5 | — | + | + | + | — | + | + | + | + | — |
Таблица 3.
Третья цифра варианта | ||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
X | Char | un char | int | un int | int | un long | int | char | char | un long |
Y | Int | un int | long | un char | long | un int | int | long | char | un char |
Z | Char | un long | int | un int | char | un char | char | char | long | un int |
Примечания: – char – 8 битн. со знаком
– un. char – 8 битн. без знака
– int – 16 битн. со знаком
– un. int – 16 битн. без знака
– long – 32 битн. со знаком
– un. long – 32 битн. без знака
Пример. У студента индивидуальный вариант 990. Строим индивидуальное выражение для вычисления: F=458 – (481 + X + Y) + Z — 36
Согласно варианту переменные X, Y и Z должны быть описаны следующим образом
char x, z;
int y,f;
Ассемблерный фрагмент выглядит следующим образом:
mov bx, 481h // Пересылаем константу в регистр AX
mov al,x
cbw // Расширяем число X до 16 бит
add bx,ax // 481h + X
add bx, y // 481h + X + Y
|
mov al,z
cbw // Расширяем число Z до 16 бит
add bx,ax // (481h + X + Y) +Z
sub bx,36h // (481h + X + Y) +Z - 36h
mov cx, 458h
sub cx, ax
mov f,cx
Содержание отчета:
1. Название работы
2. Цель работы
3. Приборы и оборудование
4. Краткие теоретические сведения
5. Индивидуальное задание
6. Распечатанный текст программы
7. Выводы.
Вопросы к защите лабораторной работы.
1. Форматы арифметических данных.
2. Формат и правила применения команд ADD и ADC.
3. Воздействие на флаги команд ADD и ADC.
4. Формат и правила применения команд SUB и SBB.
5. Воздействие на флаги команд SUB и SBB.
6. Команды обращения знака.
7. Команды расширения знака.
Лабораторная работа №4
«Изучение команд умножения и деления»
Цель работы: изучить форматы и правила работы с командами умножения и деления микропроцессора i8086.
Оборудование: IBM - совместимый персональный компьютер, работающий под управлением операционной системы, совместимой с MS-DOS®.
Программное обеспечение: Программа DEBUG.
|
|
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!