Материал: kniga_mikroprotsessory

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

программы назад. Допустимое количество возвратов определяется через меню

(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

Пример
;(R5)=81H, в РПД (16H)=22H
MOV R5,16H
;(R5)=22H, в РПД (16H)=22H

Команда "переслать байт" выполняет загрузку аккумулятора 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

Источник: https://studfile.net/preview/15934500/