программы назад. Допустимое количество возвратов определяется через меню
(setUp Undo), в исходном состоянии оно равно 20 – ти.
Выполнение программы в автоматическом режиме продолжается до окончания программы или до точки останова, устанавливаемой пользователем.
Клавишами F2 (вверх) и F4 (вниз), перемещают курсор по тексту программы,
устанавливают точки останова. Клавишей F3 устанавливается динамическая точка остановки по адресу на который указывает курсор. Динамическая точка останова – точка. Остановка, которая снимается после остановки выполнения программы. Другие типы точек останова можно установить через меню (Set Breakpoint).
4.Задание на лабораторную работу
1.Изучить выводимую на дисплей ПК информацию при запуске программы симулятора назначение пунктов и подпунктов меню, правила работы с программой.
2.Задать области памяти:
- внешнюю память данных с адресами 0010Н÷00FFH; -внешнюю память программ с адресами0023÷0FFFH;
заполнить заданные область внешней памяти данных константой 37Н.
Заполнить внутреннюю память данных с адресами 100Н÷150Н
константой 0FH.
После задания области и записи в нее константы проверить правильность записи.
3. В поле программы симулятора ввести программу, сохранить её в файл,
проверить пошагово выполнение операций: MOV R0,#05H
MOV 05H,#37H
M1: MOV A,R1
MOV @R0, A
INC R0
INC R1
52
DJNZ R2,M1
M2: MOVX A,@DPTR
ADDC A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R3,M2
RET
5.Содержание отчета
1.Последовательности введения пунктов меню при задании областей памяти и записи в них константы
2.Последовательности введения пунктов меню при вводе программы,
тестировании её и сохранении в файл.
3. Распечатку файла с программой.
6.Контрольные вопросы
1.Основные элементы структуры ОМ – ЭВМ МК – 51
2.Виды памяти, используемые программой симулятора.
3.Задание областей различных видов памяти.
4.Ввод программы в поле программ симулятора.
5.Последовательность внесения изменений в программу, в команды программы.
53
Лабораторная работа №2
Тема: Программирование команд передачи данных на языке
ассемблер МК-51
Цель работы: изучение операций передачи данных микро-ЭВМ МК-51.
Указания по выполнению работы
1.Изучение команд передачи данных
Система команд языка АСМ51 содержит 111 команд, которые обеспечивают реализацию широкой номенклатуры арифметических и логических операций, а также операций пересылки данных и передачи управления. В табл.9 приведены обозначения, используемые в описании команд.
Таблица 9
Обозначение |
Назначение |
addr |
Символическое имя вычисляемого адреса ячейки памяти |
|
программ. |
addr11 |
Символическое имя 11-битового адреса ячейки памяти |
|
программ. |
addr16 |
Символическое имя 16-битового адреса ячейки памяти |
|
программ. |
bit |
Символическое имя 8-разрядного адреса бита в области |
|
ячеек резидентной памяти данных или регистров |
|
специальных функций, допускающей побитовое обращение |
|
(см. рис.2). |
data8 |
Символическое имя байта данных. |
Обозначение |
Назначение |
data16 |
Символическое имя 16-битовых данных. |
direct |
Символическое имя 8-разрядного адреса ячейки резидентной |
|
памяти данных или регистра специальных функций. |
rel |
Значение байта смещения, используемое при вычислении |
|
адреса addr. |
(X) |
Содержимое элемента X. |
((X)) |
Содержимое по адресу, хранящемуся в элементе X. |
X[M] |
Разряд M элемента X. |
X[3-0] |
Группа разрядов элемента X. |
|
Оператор присваивания. |
54
Обозначение |
Назначение |
|
|
|
|
|
|
Дизъюнкция. |
|
|
|
|
|
|
Конъюнкция. |
|
|
|
|
|
|
Сложение по модулю 2. |
|
|
|||
X Y |
Целочисленное деление элемента X на элемент Y. |
|||||
mod[X Y] |
Остаток при целочисленном делении. |
|||||
Рассмотрим команды передачи управления. |
|
|
||||
MOV A,Rn ;где n=0-7 |
|
|
|
|
|
|
|
1 1 1 0 1 r r r |
|
где rrrB=000B-111B |
|||
Команда "переслать байт" выполняет загрузку аккумулятора A содержимым заданного регистра Rn выбранного банка, при этом содержимое Rn не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
(A) (Rn), где n=0-7 |
;(A)=0FAH, (R6)=93H |
|
|
|
MOV A,R6 |
|
|
;(A)=93H, (R6)=93H |
MOV A,@Ri ;где i {0,1} |
|
|
|
1 1 1 0 0 1 1 i |
|
Команда "переслать байт" выполняет загрузку аккумулятора A содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка, при этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
|
|
Пример |
|
|
|
(A) ((Ri)), где i {0,1} |
;(A)=0FDH, (R1)=30H, в РПД |
|||||
|
(30H)=17H |
|
|
|
|
|
|
MOV A,@R1 |
|
|
|
|
|
|
;(A)=17H, (R1)=30H, в РПД (30H)=17H |
|||||
MOV A,direct |
|
|
|
|
|
|
1 1 1 0 0 1 |
0 1 |
|
direct |
|||
Команда "переслать байт" выполняет загрузку аккумулятора A содержимым ячейки, 8-разрядный адрес которой определяется символическим именем direct в области резидентной памяти данных или в среде регистров специальных функций. При этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
|
|
Пример |
|
(A) (direct) |
|
;(A)=24H, (DPL)=3DH |
|
|
|
|
MOV A,DPL |
|
|
|
|
;(A)=3DH,(DPL)=3DH |
|
|
MOV A,#data8 |
|
|
|
|
0 1 1 1 0 1 0 0 |
|
data8 |
||
55
Команда "переслать байт" выполняет загрузку аккумулятора A байтом данных data8, непосредственно указанным в команде, на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
|
|
|
Пример |
||
(A) data8 |
|
;(A)=81H |
|
|
|
|
|
|
MOV A,#0FFH |
||||
|
|
;(A)=0FFH |
|
|
|
|
MOV Rn,A ;где n=0-7 |
|
|
где rrrB=000B-111B. |
|
|
|
1 1 1 1 1 r r r |
|
|
||||
Команда "переслать байт" выполняет загрузку заданного регистра Rn выбранного банка содержимым аккумулятора A, при этом содержимое A не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
|
|
Пример |
|
(Rn) (A), где n=0-7 |
|
;(A)=55H, (R6)=93H |
||
|
|
MOV R6,A |
||
|
|
;(A)=55H, (R6)=55H |
||
MOV Rn,direct ;где n=0-7 |
|
|
где rrrB=000-111B. |
|
1 0 1 0 1 r r r |
direct |
|||
Команда "переслать байт" выполняет загрузку заданного регистра Rn выбранного банка содержимым ячейки, адрес которой определяется символическим именем direct в области резидентной памяти данных (РПД) или в среде регистров специальных функций. При этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм
(Rn) (direct), где n=0-7
MOV Rn,#data8 ;где n=0-7 |
0 1 1 1 1 r r r |
data8 |
где rrrB=000-111B. |
Команда "переслать байт" выполняет загрузку заданного регистра Rn выбранного банка байтом данных, непосредственно указанным в команде и имеющим символическое имя data8. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
|
|
|
Пример |
|
|
(Rn) data8, где n=0-7 |
|
;(R2)=5DH |
|
|
|
|
|
|
MOV R2,#0FCH |
|
|||
|
|
; (R2)=0FCH |
|
|
|
|
MOV direct,A |
|
|
|
|
|
|
1 1 1 1 0 1 0 1 |
|
direct |
|
|||
Команда "переслать байт" пересылает содержимое аккумулятора A в ячейку, адрес которой определяется символическим именем direct в области
56