Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прогр.docx
Скачиваний:
23
Добавлен:
21.12.2018
Размер:
2.58 Mб
Скачать

1) Пересылка данных

mov <операнд_назначения>, <операнд_источник> ; Поддерживаются начиная с процессора 8086.

Команда mov (перемещать) не перемещает, а копирует значение из источника в приёмник. Особенности применения этой команды:

2) Xor логическое исключающее или

0 XOR 0 = 0

0 XOR 1 = 1

1 XOR 0 = 1

1 XOR 1 = 0

таким образом, если команда применяется для одого и того же регистра, то получается обнуление этого регистра.

3) Команды передачи управления

сmp <приёмник><источник> ; Сравнивает приёмник и источник и устанавливает значение флагов (CF OF, SF, ZF, AF, PF).

jz и jne набор команд выполняющих переход, если удовлетворяется соответствующее условие, которым в каждом случае реально является состояние тех или иных флагов.

Jz использует значение флага ZF, который устанавливается в 1, если в результате выполнения команды сmp приёмник был равен источнику.

Jne использует значение флага ZF, который устанавливается в 0, если в результате выполнения команды сmp приёмник не был равен источнику.

Jmp – передаёт упраление в другую точку программы, не сохраняя какой-либо информации для возврата. Операндом может быть непосредственный адрес для перехода, а также регистр или переменная, содержащая адрес.

Задание для самостоятельной работы

Ввести текст программы А и текст программы Б. Оттранслировать программы, довести до рабочего состояния. Для обеих программ создать bat файл для запуска программ.

Лабораторная работа №2.

Тема: Работа с арифметическими командами.

Методические указания к выполнению.

Команды сложения

ADD приемник, источник - сложить два операнда.

приемник = приемник +источник

При сложении используется флаг CF.

Для получения точного результата используется команда ADC, которая учитывает флаг переноса.

ADC приемник, источник – сложить с переносом.

результат следующий

приемник= приемник + источник + значение CF

При выполнении команды сложения устанавливаются следующие флаги:

1) CF=1 , если результат не помещается в приемнике, т.е. произойдет перенос.

2) PF=1; если результат имеет четное число битов с 1.

3) AF=1, если результат сложения десятичных чисел требует коррекции.

4) ZF=1, если результат =0.

5) SF= 1, если результат отрицателен.

6) OF=1, если при сложении 2-х чисел одного знака результат превышает диапазон допустимых значений в обратном коде, а сам приемником меняет знак. SF и OF имеют смысл при сложении чисел со знаком, AF – для десятичных чисел.

Коррекция результата

Для того чтобы поучить правильный результат (т.е. выполнить перенос из одного разряда в другой, 56+25= 81, один десяток надо перенести в старший разряд) необходимо его скорректировать. Это делается с помощью следующих команд.

AAA – скорректировать результат сложения для представления в кодах ASCII.

DAA – скорректировать сложение для представления в десятичном формате.

Формат:

AAA

DAA

Команды вычитания.

Как таковой команды вычитания в МП не существует, это команда сложения двух чисел, одно их которых в дополнительном коде.

SUB – вычесть

SBB – вычесть с заемом.

Формат команды следующий:

SUB приемник, источник

приемник= приемник- источник

SBB приемник, источник

приемник = приемник - источник- заем (флаг CF)

Нельзя вычитать содержимое одной ячейки из другой.

Устанавливаются флаги:

1- CF=1, если требуется заем.

2- PF=1, если результат имеет четное число битов со значением 1

3- AF=1, если результат вычитания десятичных чисел требует коррекции.

4- ZF=1, результат =0

5- SF=1 , результат отрицательный

6- OF= 1, если при вычитании чисел, имеющих разные знаки, результат превышает диапазон значений приемника в обратном коде.

Коррекция результат вычитания 2-х десятичных чисел, как и сложения выполняется командами

AAS и DAS.

AAS – преобразует содержимое регистра AL в правильную неупакованную десятичную цифру.

DEC приемник

Это команда уменьшения приемника (регистра общего назначения или ячейки памяти) на 1.