Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2024-02-15 | 24 |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!