Лабораторная работа по дисциплине теория и проектирование ЭВМ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ , ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ )

ФАКУЛЬТЕТ ВМС

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

ЛАБОРАТОРНАЯ РАБОТА Nо 2
ПО
ДИСЦИПЛИНЕ
ТЕОРИЯ И ПРОЕКТИРОВАНИЕ ЭВМ

СТУДЕНТЫ Львов А .Н. и Чернецкий М. В.
ГРУППА ВВ-61-96
РУКОВОДИТЕЛЬ Иванов Е .Л.

МОСКВА
2000

Задача N 0 1.

Составить программу для вычисления выражения N= аi= а1 +а2 + … + an , где n=10 ,ai — числа натурального ряда “1”. РОНы использовать следующим способом
С – под счетчик циклов,
L – под текущее значение аi ,
C и D – под константы .
Результат вычислений разместить в ячейке 080Е .

С – количество циклов; C=0А
L – текущее значение константы; L=0А

Aдрес Коды Мнемоника Комментарий

0010 85 ADD L арифметическая операция A(A) +(Ri)
0011 2D DCR L отрицательное приращение регистра
0012 0D DCR C отрицательное приращение регистра
0013 C2 JNZ adr условный переход
0014 — 10 —
0015 — 00 —
0016 26 MVI H непосредственная загрузка регистра
0017 — 08 —
0018 2E MVI L непосредственная загрузка регистра
0019 — 0E —
001A 77 MOV M,А команда пересылки
001B 76 HLT останов

Задача No 2.

Составить программу для вычисления того же выражения. Константы ai расположить в ОЗУ в ячейках с адресами 0900 , 0901, … . РОНы использовать аналогичным способом .Для вычисления текущего значения N пользоваться командой ADD M .Результат вычислений записать в ОЗУ в ячейку 0850. Константы ai задать произвольно .

С – счетчик циклов ,
H, L – адрес ячейки, где находится текущее значение константы.

Адрес Коды Мнемоника Комментарий

0900 — 01 —
0901 — 02 —
0902 — 03 —
0903 — 04 —
0904 — 05 —
0905 — 06 —
0906 — 07 —
0907 — 08 —
0908 — 09 —
0909 — 10 —
0010 86 ADD M A(A) +(Ri)
0011 2D DCR L отрицательное приращение регистра
0012 0D DCR C отрицательное приращение регистра
0013 C2 JNZ adr условный переход
0014 10 —
0015 00 —
0016 26 MVI H непосредственная загрузка регистра
0017 08 —
0018 2E MVI L непосредственная загрузка регистра
0019 50 —
001А 77 MOV M,A команда пересылки
001В 76 HLT останов

Задание No 3.

Cоставить программу для пересылки массива данных, расположенных в памяти ячейки ОЗУ, начиная с 0900, в ячейки, начиная 0970.Данные выбрать произвольно . Команды расположить в ячейках, начиная с 0800 .

C=05;
D=09;
E=10;
H=09;
L=00.

Адрес Коды Мнемоника Комментарий

0800 86 ADD M A(A)+(Ri)
0801 EB XCHG обмен между DE и HL
0802 77 MOV M,A команда пересылки
0803 3E MVI A непосредственная загрузка регистра
0804 — 00 —
0805 EB XCHG обмен между DE и HL
0806 2C INR L положительное приращение регистра
0807 1C INR E положительное приращение регистра
0808 0D DCR C отрицательное приращение регистра
0809 C2 JNZ adr условный переход
080А — 00 —
080В — 08 —
0800С 76 HLT останов

Задача No 4.

Cоставить программу для варианта задания 3 таким образом , чтобы последний операнд массива записывался в ячейку 0970 , предпоследний – в ячейку 0971 и т.д.

C=05;
H=09;
L=04;
D=09;
E=10.

Адрес Коды Мнемоника Комментарий

0800 86 ADD M A(A)+(Ri)
0801 EB XCHG обмен между DE и HL
0802 77 MOV M,A команда пересылки
0803 3E MVI A непосредственная загрузка регистра
0804 00 — —
0805 EB XCHG обмен между DE и HL
0806 2D DCR L отрицательное приращение регистра
0807 1C INR E положительное приращение регистра
0808 0D DCR C отрицательное приращение регистра
0809 C2 JNZ adr условный переход
080A 00 — —
080B 08 — —
080C 76 HLT останов

Задание Nо 5.

Составить программу для пересылки массива данных из одной области памяти в другую в соответствии со следующей схемой

Адресное пространство ОЗУ

0800
Программа 100 ячеек
Массив данных 150 Операндов

BFF

Направление пересылки

Перед составлением программы необходимо вычислить начальные адреса каждой области ОЗУ.

C=05;
D=08;
E=FA;
H=08;
L=64.

Адрес Код Мнемоника Комментарий

0800 86 ADD M A(A)+(Ri)
0801 EB XCHG обмен между (A)и (F)
0802 77 MOV M ,A команда пересылки
0803 3E MVI A непосредственная загрузка регистра
0804 — 00 —
0805 EB XCHG обмен между (A)и (F)
0806 23 INX H положительное приращение пары регистров
0807 13 INX D положительное приращение пары регистров
0808 0D DCR C отрицательное приращение регистра
0809 С2 JNZ adr условный переход
080A — 00 —
080B — 08 —
080C 76 HLT останов
0864 10 —
0865 20 —
0866 30 —
0867 40 —
0868 50 —

Задание No 6.

Cоставить программу умножения однобайтных двоичных чисел , используя любой алгоритм умножения.

D=05;
E=02.

Адрес Коды Мнемоника Комментарий

0010 06 MVI B непосредственная загрузка регистра
0011 — 00 —
0012 0E MVI C непосредственная загрузка регистра
0013 — 00 —
0014 3E MVI A непосредственная загрузка регистра
0015 — 01 —
0016 A7 ANA A A(A)(Ri)
0017 F5 PUSH PSW обращение к стеку
0018 A3 ANA E A(A)(Ri)
0019 78 MOV A,B команда пересылки
001А CA JZ adr условный переход
001B — 1E —
001С — 00 —
001D 82 ADD D A(A)+(Ri)
001E 1F RAR операция циклического сдвига
001F 47 MOV B,A команда пересылки
0020 79 MOV A,C команда пересылки
0021 1F RAR операция циклического сдвига
0022 4F MOV C,A команда пересылки
0023 F1 POP PSW выбор (A) и (F) из стека
0024 17 RAL операция циклического сдвига
0025 D2 JNC adr условный переход
0026 — 17 —
0027 — 00 —
0028 76 HLT останов

Задание No 7.

Cоставить программу для вычисления следующего выражения N=(a+b)-(c*d) .
Числа однобайтные.При составлении программы использовать команду обращения к подпрограммам и программу умножения, разработанную в задании 6.

B=45;
C=25;
D=05;
E=02.

Адрес Коды Мнемоника Комментарий

0010 78 MOV A,B команда пересылки
0011 81 ADD С А(А)+(Ri)
0012 67 MOV H,A команда пересылки
0013 CD CALL adr вызов подпрограммы безусловный
0014 00 — —
0015 19 — —
0016 7C MOV A,H команда пересылки
0017 91 SUB С A(A)-(Ri)
0018 76 HLT останов
0019 06 MVI B непосредственная загрузка регистра
001A 00 — —
001B 0E MVI C непосредственная загрузка регистра
001C 00 — —
001D 3E MVI A непосредственная загрузка регистра
001E 01 — —
001F A7 АNA A A(A)(Ri)
0020 F5 PUSH PSW ввод (А) и (F) в стек
0021 A3 ANA E A(A)(Ri)
0022 78 MOV A,B команда пересылки
0023 CA JZ adr условный переход
0024 27 — —
0025 00 — —
0026 82 ADD D A(A)+(Ri)
0027 1F RAR операция циклического сдвига
0028 47 MOV B,A команда пересылки
0029 79 MOV A,C команда пересылки
002A 1F RAR операция циклического сдвига
002B 4F MOV C,A команда пересылки
002C F1 POP PSW выбор (А) и (F) из стека
002D 17 RAL операция циклического сдвига
002E С2 JNZ adr условный переход
002F 17 — —
0030 00 — —
0031 C9 RET возврат из подпрограммы

ВСЕ ПРАВА ЗАЩИЩЕНЫ. НЕЛЕГАЛЬНОЕ КОПИРОВАНИЕ ПРЕСЛЕДУЕТСЯ ПО ЗАКОНУ.