08 семестр / Лабораторные работы / lab 2 / защиты
.docВариант 13
Написать программу, реализующую выражение .
Операнд X задать, используя регистровую адресацию к регистру R0.
Результат Y занести в ячейку 2700, используя косвенно-регистровую адресацию к регистру R5.
Программа должна быть представлена в машинных кодах.
Ввести машинные коды в программу-эмулятор, выполнить.
Решение:
Код |
Комментарий |
d 1000 012700 |
заносим в R0 числа X=53 |
d 1002 53 |
|
d 1004 105100 |
инвертируем в R0 |
d 1006 106427 |
обнуляем бит С |
d 1010 000000 |
|
d 1012 106300 |
умножаем R0 на 2 |
d 1014 162700 |
вычитаем из R0 константу 11 |
d 1016 11 |
|
d 1020 106427 |
обнуляем бит С |
d 1022 000000 |
|
d 1024 106200 |
делим R0 на 2 |
d 1026 012705 |
вносим в R5 адрес ячейки 2700 |
d 1030 2700 |
|
d 1032 010025 |
в ячейку 2700 через регистр R5 (косвенной адресацией) вносим данные из R0
|
go 1000 |
запускаем программу |
ex 2700 |
проверяем данные в ячейке 2700 |
Проверка:
Вариант 3
Сложить 26 и 62, используя косвенно-регистровую адресацию к ячейке 1400 (1ый операнд) индексную адресацию к ячейке 1500 (2 операнд). Результат записать в R2.
Код |
Комментарий |
d 1400 26 |
в ячейку 1400 заносим 26 |
d 1500 62 |
в ячейку 1500 заносим 62 |
d 1000 012701 |
в регистр R01 заносим адрес ячейки 1400 |
d 1002 1400 |
|
d 1004 012702 |
в регистр R02 заносим адрес ячейки 1477 |
d 1006 1477 |
|
d 1010 012101 |
косвенное копирование из R01 в него же |
d 1012 016202 |
косвенное копирование из R02 в него же с индексной адресацией и индексным словом 1 |
d 1014 1 |
|
d 1016 060102 |
суммируем регистры R1 и R2 и записываем результат в R2 |
go 1000 |
запускаем программу |
ex r2 |
проверяем данные в регистре R2 |
Вариант 10
Реализовать Y=2X+200.
Операнд Х задать, используя регистровую адресацию к R2.
Результат Y занести в ячейку 1300, используя индексную адресацию к регистру R5.
Код |
Комментарий |
d 1000 012702 |
помещаем X=3 из следующей ячейки в R2 |
d 1002 3 |
|
d 1004 106427 |
обнуляем бит С |
d 1006 000000 |
|
d 1010 106302 |
умножаем R2 на 2 |
d 1012 062702 |
складываем R2 с константой 200 из следующей ячейки |
d 1014 200 |
|
d 1016 012705 |
в R5 записываем адрес ячейки 1200 |
d 1020 1200 |
|
d 1022 010265 |
индексной адресацией копируем из R2 в R5 с индексным словом 100 |
в 1024 100 |
|
go 1000 |
выполнить программу |
ex r2 |
проверим регистр R2 |