Отчет по лабораторной работе МПК589

advertisement
Группа: ИУ4-73 Студенты: Антохин, Антохина, Однокольцев, Тихомиров
Отчет по лабораторной работе МПК589
1. Разработать программу 2.1, обеспечивающую запись во внутренние
регистры ЦПЭ R0…R7 последовательности чисел 0…7 и запись в
регистр-аккумулятор АС числа 8. Эту и последующие программы
оформить в виде таблицы.
2. разработать программу 2.2, обеспечивающую запись содержимого
регистров R0…R7 в ячейки памяти соответственно по адресам 40h…48h.
Программу разместить в памяти таким образом, чтобы было возможно
самостоятельное последовательное выполнение программ 2.1 и 2.2.
Пользуясь командой условного перехода, объединить программы 2.1 и
2.2;
Адрес
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
Код
BF
B8
CF
5B
CF
5C
CF
5D
CF
5E
CF
5F
CF
60
CF
61
CF
Мнемоника
CLR AC
CLR R0
INR AC
MOV R1, AC
INR AC
MOV R2, AC
INR AC
MOV R3, AC
INR AC
MOV R4, AC
INR AC
MOV R5, AC
INR AC
MOV R6, AC
INR AC
MOV R7, AC
INR AC
Комментарий
;Обнуление аккумулятора АС
;Обнуление R0
;Увеличение на единицу значения AC
;Запись в R1 данных из аккумулятора AC
;Увеличение на единицу значения AC
;Запись в R2 данных из аккумулятора AC
;Увеличение на единицу значения AC
;Запись в R3 данных из аккумулятора AC
;Увеличение на единицу значения AC
;Запись в R4 данных из аккумулятора AC
;Увеличение на единицу значения AC
;Запись в R5 данных из аккумулятора AC
;Увеличение на единицу значения AC
;Запись в R6 данных из аккумулятора AC
;Увеличение на единицу значения AC
;Запись в R7 данных из аккумулятора AC
;Увеличение на единицу значения AC
21
22
23
8E
50
A0
TZ R0
;Переход по адресу 50 если R0=0
END
;Конец программы
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
A8
9F
40
A9
9F
41
AA
9F
42
AB
9F
43
AC
9F
44
AD
9F
MOV AC, R0
MOVI MN, AC
;Запись значения R0 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 40
MOV AC, R1
MOVI MN, AC
;Запись значения R1 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 41
MOV AC, R2
MOVI MN, AC
;Запись значения R2 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 42
MOV AC, R3
MOVI MN, AC
;Запись значения R3 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 43
MOV AC, R4
MOVI MN, AC
;Запись значения R4 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 44
MOV AC, R5
MOVI MN, AC
;Запись значения R5 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 45
61
62
63
64
65
66
67
68
45
AE
9F
46
AF
9F
47
AO
MOV AC, R6
MOVI MN, AC
;Запись значения R6 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 46
MOV AC, R7
MOVI MN, AC
;Запись значения R7 в AC
;Запись значения аккумулятора AC в ОЗУ по адресу 47
END
;Конец программы
3. составить программу 2.4, которая обеспечивает формирование кода 0FFh в
аккумуляторе АС, кода 0FEh в R7, 0FDh в R6 и запись содержимого этих
регистров в память соответственно по адресам 30h, 31h, 32h;
Адрес
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
Код
73
9F
30
6E
61
9F
31
6E
60
9F
32
A0
Мнемоника
STC
MOVI MN, AC
Комментарий
;Установка аккумулятора в 0FFh
;Запись значения аккумулятора AC в ОЗУ по адресу 30
DCR AC
MOV R7, AC
MOVI MN, AC
;Уменьшение значения АС на 1
;Запись значения АС в R7
;Запись значения аккумулятора AC в ОЗУ по адресу 31
DCR AC
MOV R6, AC
MOVI MN, AC
;Уменьшение значения АС на 1
;Запись значения АС в R6
;Запись значения аккумулятора AC в ОЗУ по адресу 32
END
;Конец программы
4.составить программу 2.5, обеспечивающую запись в ОЗУ, начиная с адреса
30h последовательности чисел с 5 до 15.
Адрес
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A1
A2
A3
A4
A5
A6
A7
Код
4E
07
9F
30
CF
9F
31
CF
9F
32
CF
9F
33
CF
9F
34
CF
9F
35
CF
9F
36
CF
9F
37
CF
9F
38
CF
9F
39
CF
9F
40
CF
9F
41
CF
9F
42
CF
9F
43
CF
9F
44
CF
9F
45
A0
Мнемоника
IN 7
Комментарий
;Ввод "5" в AC с устройства 7
MOVI MN, AC
;Запись значения AC в ОЗУ по адресу 30
INR AC
MOVI MN, AC
;Инкремент значения в AC
;Запись значения AC в ОЗУ по адресу 31
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 32
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 33
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 34
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 35
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 36
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 37
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 38
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 39
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 40
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 41
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 42
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 43
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 44
INR AC
MOVI MN, AC
;Увеличение значения АС на 1
;Запись значения AC в ОЗУ по адресу 45
END
;Конец программы
Коды команд микро-ЭВМ МП-589.
0
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
GOTO
N
SRA1
ALR0
ALR1
ALR2
ALR3
ALR4
ALR6
ALR7
JFF N
MOV MOV
R6,AC R7,AC
CALL
N
CMC
ALR5
STC
DCR
R0
MUSIC
DCR
R1
ADD
R0
DCR
R2
ADD
R1
DCR
R3
ADD
R2
ALA
MOV MOV MOV MOV MOV MOV
R0,AC R1,AC R2,AC R3,AC R4,AC R5,AC
DCR
DCR
DCR
DCR
DCR
R4
R5
R6
R7
AC
ADD ADD ADD ADD ADD ADD
R3
R4
R5
R6
R7
AC
TZR0
TZR6
TZR7
TZA
END
SRA0
IN N
TZR1
TZR2
TZR3
TZR4
TZR5
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVI MOVI
JFS
M0,AC M1,AC M2,AC M3,AC M4,AC M5,AC M6,AC M7,AC MA,AC AC,MN MN,AC
MOV MOV MOV MOV MOV MOV MOV MOV
OUT N
RET
AC,R0 AC,R1 AC,R2 AC,R3 AC,R4 AC,R5 AC,R6 AC,R7
CLR
CLR
CLR
CLR
CLR
CLR
CLR
CLR
R0
R1
R2
R3
R4
R5
R6
R7
INR
INR
INR
INR
INR
INR
INR
INR
R0
R1
R2
R3
R4
R5
R6
R7
MOV MOV MOV MOV MOV MOV MOV MOV
AC,M0 AC,M1 AC,M2 AC,M3 AC,M4 AC,M5 AC,M6 AC,M7
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Система команд микро-ЭВМ МП-589.
Мнемоника
команды
Выполняемая
Число
операция и ее
байт
формат
CLR RN
INR RN
DCR RN
MOV AC,RN
1
1
1
1
0  RN
RN+1  RN
RN-1  RN
RN  AC
MOV RN,AC
1
AC  RN
ADD RN
1
RN+ACRN,AC
CMC
STC
ALRN
1
1
3
Not AC  AC
0FFh  AC
RN+ACACXX
If C0=0A1PC
If C0=1A2PC
ALA
3
AC+ACACXX
If C0=0A1PC
If C0=1A2PC
GO TO N
2
TZRN
3
Переход  XX
N  PC
Усл.переход XX
If RN=0A1PC
Комментарии
Обнуление регистра RN ЦПЭ
Увеличение на 1 регистра RN
Уменьшение на 1 регистра RN
Пересылка значения регистра RN в
аккумулятор АС
Пересылка значения аккумулятора АС в
регистр RN
Арифметическое сложение регистра RN с
аккумулятором и помещение результата в
пару рег.
Инвертирование аккумулятора
Установка аккумулятора в 0FFh
Арифметическое сложение регистра RN с
аккумулятором и переход по адресу во
втором байте, если перенос равен 0, иначе
переход по адресу в третьем байте
Умножение аккумулятора на 2 и переход
по адресу во втором байте, если перенос
равен 0, иначе переход по адресу в третьем
байте
Безусловный переход по адресу,
указанному во втором байте
Условный переход по адресу во втором
байте, если регистр RN равен 0, иначе
Мнемоника
команды
Выполняемая
Число
операция и ее
байт
формат
If RN0A2PC
AC.0  C XX
If C0=0A1PC
If C0=1A2PC
AC.0  C XX
If C0=0A1PC
If C0=1A2PC
Усл.переход XX
If упр0=0 
A1PC
If упр0=1 
A2PC
Усл.переход XX
УВВN  упр1
If упр1=0 
A1PC
If упр1=1 
A2PC
Конец
SRA0
3
SRA1
3
JFS
3
JFFN
4
END
1
MOV MN,AC
1
MOV AC,MN
1
MOVI MN,AC
2
MOVI AC,MN
2
OUT
N
2
IN
N
2
УВВN  ACXX
Адр. УВВ N
*
Music
F
T
F
T
…
кон. табл.
Переход
N  PC
MUSIC
CALL N
2
RET
1
AC  M[RN] XX
Номер рег.
N
M[RN]  ACXX
Номер рег. N
AC  M[N] XX
Адр. ОЗУ
N
M[N]  AC XX
Адр. ОЗУ
N
AC  УВВNXX
Адр. УВВ N
XX
F1
T1
F2
T2
00
XX
N
Комментарии
переход по адресу в третьем байте
Сдвиг аккумулятора АС вправо. Младший
бит переносится в перенос С0, в старший
записывается 0 для SRA0 и 1 для SRA1.
Переход по адресу во втором байте, если
перенос равен 0, иначе переход по адресу в
третьем байте
Переход по ответному сигналу упр0 платы
звука. При генерации звука (упр0 = 1)
переход по адресу в третьем байте и по
адресу во втором байте (упр0=0) – в
режиме молчания.
Переход по признаку состояния (упр1)
внешнего устройства с адресом N,
указанным во втором байте.
Конец работы программы и переход к
ожиданию команд с клавиатуры.
Запись аккумулятора АС в ОЗУ по адресу
в регистре RN.
Запись ячейки ОЗУ с адресом, указанным
в регистре в RN, в аккумулятор АС.
Запись аккумулятора АС в ОЗУ по адресу,
указанному во втором байте.
Запись ячейки ОЗУ с адресом, указанным
во втором байте, в аккумулятор АС.
Запись значения аккумулятора АС во
внешнее устройство с адресом N,
указанным во втором байте.
Запись значения из внешнего устройства с
адресом N, указанным во втором байте, в
аккумулятор АС.
Вывод музыкального текста. 1ый байт – код
команды, 2ой байт – код 1ой ноты, 3ий байт
– ее длительность, 4ый байт – код 2ой ноты,
5ый байт – длительность 2ой ноты и т.д. до
конца таблицы. Признак конца таблицы –
нулевой байт.
Вызов подпрограммы с адресом N,
указанным во втором байте, адрес текущей
команды помещается а стек.
Возврат на адр. Возврат из подпрограммы с
из стека
восстановлением адреса из стека.
Download