Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OMT&МП2.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
2.35 Mб
Скачать

Лабораторная работа № 10 выполнение арифметических операций в машинных кодах микропроцессора к1801вм1

Цель работы: изучение программ выполнения операций и основных приемов работы с целыми числами со знаком.

Теоретическая часть

В МП К1801ВМ1 знак целого числа определяет состояние старшего бита (D15) двоичного кода: для положительных чисел D15 = 0, для отрицательных чисел, представленных в дополнительном коде, D15 = 1. Таким образом, с помощью шестнадцатибитного двоичного кода можно представить десятичные числа в диапазоне от -32768 до +32767. Если же для представления десятичных чисел 16 разрядов недостаточно, то используется несколько байт и слов. При этом за знаковый бит принимается более вы­сокий разряд. Однако необходимо помнить, что анализ знака МП К1801ВМ1 проводит по старшему 15-му биту результата операции с помощью бита N регистра признаков.

Для выполнения операций сложения и вычитания используются команды ADD и SUB соответственно. Если при этом в результате сложения возникает перенос из старшего разряда результата или при вычитании происходит заем в старший разряд, то устанавливается бит С регистра признаков. Перенос в старший байт или слово или заем из старшего байта или слова можно учесть с помощью команд ADC и SBC соответственно.

Ознакомимся с некоторыми приемами работы с числами, представленными в ви­де нескольких слов. Допустим, для представления числа требуется 32 разряда, тогда оно будет занимать две 16-ти разрядных ячейки памяти или два регистра общего назначе­ния. Например, число А размещено в регистрах общего назначения R1 и R2, а число В в регистрах R3 и R4, причем в регистрах R1 и R3 старшие слова чисел, а в регистрах R2 н R4 младшие. Результат операции разместим в регистрах R3 и R4.

Сложение: (R3,R4)  (R1,R2) + (R3,R4)

ADD R1, R3 Сложение старших слов В и А

ADD R2, R4 Сложение младших слов В и А

АDС R3 Учет переноса

Вычитание: (R3,R4)  (R3,R4)-(R1,R2)

SUB R1, R3 Вычитание старших слов В - А

SUB R2, R4 Вычитание младших слов В - А

SUB R3 Учет заема

Изменение знака числа: (R3,R4)  -(R1,R2)

COM R3 Инвертирование R3

COM R4 Инвертирование R4

ADD #1, R4 Прибавление 1

ADC R3 Учет переноса

Отметим, что в последней программе нельзя заменить команду ADD#1,R4 на более короткую и быстровыполнимую команду INC R4, так как последняя не влияет на признак С. Команды COM R4 и ADD #1,R4 можно заменить на одну NEG R4. Следует помнить, что знаковым разрядом в этом примере является старший 31-й разряд (15-й разряд регистров R1 и R3), поэтому при проверке знака числа исследуется лишь старший регистр. Так, знак числа, размещенного в регистрах R1, R2, можно определить:

TST R1 Проверка R1

BPL PLUS Переход, если число (R1, R2) положительное

……………

PLUS…… Подпрограмма обработки положительных чисел

TST R1 Проверка R1

BMI MINUS Переход, если число(R1 ,R2) отрицательное

……………

MINUS……Подпрограмма обработки отрицательных чисел

В системе команд МП К1801ВМ1 нет команд умножения и деления. В системе команд МП K1801ВM2 есть команды MUL- умножение и DIV- деление над 16-ти разрядными операндами. Поэтому рассмотрим программы, позволяющие умножать и де­лить операнды с числом разрядов более 16-ти.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]