Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_работы МПУ 2009.doc
Скачиваний:
0
Добавлен:
21.03.2026
Размер:
361.47 Кб
Скачать

7. 3. Содержание отчета

1. Тексты программ, измеренные длительности сигналов.

2. Объяснить причины возникновения погрешности при измерении периода и длительностей с помощью РСА.

3. Прокомментировать характер осциллограмм по пп. 3 – 5.

Приложение

Перечень команд ассемблера микроэвм семейства mcs51

Список условных обозначений

Rn – регистры общего назначения (n = 0, 1,…,7);

Ri – указатель косвенного адреса (регистры R0 или R1);

ad – адрес ячейки внутренней памяти данных (00H, 01H,…, 7FH);

adr16 – шестнадцатибитовый адрес (имя метки);

d – восьмибитовая константа;

d16 – шестнадцатибитовая константа;

bit – бит в резидентной памяти данных или в регистрах специальных функций;

rel – восьмибитовый адрес при переходе в пределах страницы (имя метки);

Тк – количество машинных циклов выполнения команды.

Список команд, влияющих на флаги в регистре psw

Команда

С

OV

AC

Команда

С

OV

AC

ADD

x

x

x

CLR C

0

ADDC

x

x

x

CPL C

x

SUBB

x

x

x

ANL C, bit

x

MUL

0

x

ANL C, /bit

x

DIV

0

x

ORL C, bit

x

DA

x

ORL C, /bit

x

RRC

x

MOV C, bit

x

RLC

x

CJNE

x

SETB C

1

С – флаг переноса, установка и сброс аппаратно и программно;

AC – флаг дополнительного переноса, установка и сброс аппаратно при выполнении команд сложения и вычитания;

OV – флаг переполнения, установка и сброс аппаратно;

«х» – содержимое флага устанавливается по результату выполнения команды;

«–» – команда не влияет на значение флага.

Команды передачи данных

MOV

A,Rn

A  Rn

Пересылка байта в ACC из регистра Rn (n=0..7)

1

MOV

A,ad

A  ad

Пересылка байта в ACC из ячейки памяти ad внутреннего ОЗУ

1

MOV

A,@Ri

A  [Ri]

Пересылка байта в ACC из ячейки памяти внутреннего ОЗУ, адрес которой находится в Ri (i=0,1)

1

MOV

A,#d8

A  d8

Запись в АСС константы d8

1

MOV

Rn,A

Rn  A

Пересылка байта в регистр Rn (n=0..7) из ACC

1

MOV

Rn,ad

Rn  ad

Пересылка байта в регистр Rn (n=0..7) из ячейки памяти ad внутреннего ОЗУ

2

MOV

Rn,#d8

Rn  d8

Запись в регистр Rn (n=0..7) константы d8

1

MOV

ad,A

ad  A

Пересылка байта в ячейку памяти ad внутреннего ОЗУ из ACC

1

MOV

ad,Rn

ad  Rn

Пересылка байта в ячейку памяти ad внутреннего ОЗУ из регистра Rn (n=0..7)

2

MOV

add,ads

add  ads

Пересылка байта в ячейку памяти add внутреннего ОЗУ из ячейки памяти ads внутреннего ОЗУ

2

MOV

ad,@Ri

ad  [Ri]

Пересылка байта в ячейку памяти ad внутреннего ОЗУ из ячейки памяти внутреннего ОЗУ, адрес которой находится в Ri (i=0,1)

2

MOV

ad,#d8

ad  d8

Запись в ячейку памяти ad внутреннего ОЗУ константы d8

2

MOV

@Ri,A

[Ri]  A

Пересылка байта в ячейку памяти внутреннего ОЗУ, адрес которой находится в Ri (i=0,1), из АСС

1

MOV

@Ri,ad

[Ri]  ad

Запись в ячейку памяти внутреннего ОЗУ, адрес которой находится в Ri (i=0,1), из ячейки памяти ad внутреннего ОЗУ

2

MOV

@Ri,#d8

[Ri]  d8

Запись в ячейку памяти внутреннего ОЗУ, адрес которой находится в Ri (i=0,1), константы d8

1

MOV

DPTR,#d16

DPTR  d16

Запись в указатель DPTR константы d16

2

MOVC

A,@A+DPTR

A  [A+DPTR]

Пересылка в АСС байта из ячейки памяти программ, адрес которой равен ACC+DPTR

2

MOVC

A,@A+PC

A  [A+PC]

Пересылка в АСС байта из ячейки памяти программ, адрес которой равен ACC+(текущее состояний программного счетчика PC)

2

MOVX

A,@Ri

A  [Ri]

Пересылка в АСС байта из ячейки памяти внешнего ОЗУ, младший байт адреса которой находится в регистре Ri (i=0,1), старший – порт P2

2

MOVX

A,@DPTR

A  [DPTR]

Пересылка в АСС байта из ячейки памяти внешнего ОЗУ, адрес которой находится в регистре DPTR

2

MOVX

@Ri,A

[Ri]  A

Пересылка байта в ячейку памяти внешнего ОЗУ, младший байт адреса которой находится в регистре Ri (i=0,1), старший – порт P2 из АСС

2

MOVX

@DPTR,A

[DPTR]  A

Пересылка байта в ячейку памяти внешнего ОЗУ, адрес которой находится в регистре DPTR, из АСС

2

PUSH

ad

[SP]  ad

Загрузка байта в стек из ячейки памяти ad внутреннего ОЗУ

2

POP

ad

ad  [SP]

Извлечение из стека байта в ячейку памяти ad внутреннего ОЗУ

2

XCH

A,Rn

A  Rn

Обмен содержимым АСС и регистра Rn (n=0..7)

1

XCH

A,ad

A  ad

Обмен содержимым АСС и ячейкой памяти ad внутреннего ОЗУ

1

XCH

A,@Ri

A  [Ri]

Обмен содержимым АСС и ячейкой памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

XCHD

A,@Ri

A(0..3)  [Ri](0..3)

Обмен содержимым младших трех бит АСС и младших трех бит ячейкой памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

SWAP

A

A(0..3)  A(4..7)

Обмен местами тетрад АСС

Команды арифметических операций

ADD

A,Rn

A  A+Rn

Сложение АСС и содержимого регистра Rn (n=0..7)

1

ADD

A,ad

A  A+ad

Сложение АСС и содержимого ячейки памяти ad внутреннего ОЗУ

1

ADD

A,@Ri

A  A+[Ri]

Сложение АСС и содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

ADD

A,#d8

A  A+d8

Сложение АСС с константой d8

1

ADDC

A,Rn

A  A+Rn+CY

Сложение АСС и содержимого регистра Rn (n=0..7) с учетом переноса CY

1

ADDC

A,ad

A  A+ad+CY

Сложение АСС и содержимого ячейки памяти ad внутреннего ОЗУ с учетом переноса CY

1

ADDC

A,@Ri

A  A+[Ri]+CY

Сложение АСС и содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1) с учетом переноса CY

1

ADDC

A,#d8

A  A+d8+CY

Сложение АСС с константой d8 с учетом переноса CY

1

DA

A

Двоично-десятичная коррекция АСС

1

SUBB

A,Rn

A  A–Rn–CY

Вычитание из АСС содержимого регистра Rn (n=0..7) с учетом переноса CY

1

SUBB

A,ad

A  A–ad–CY

Вычитание из АСС содержимого ячейки памяти ad внутреннего ОЗУ с учетом переноса CY

1

SUBB

A,@Ri

A  A–[Ri]–CY

Вычитание из АСС содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1) с учетом переноса CY

1

SUBB

A,#d8

A  A+d8+CY

Вычитание из АСС константы d8 с учетом переноса CY

1

INC

A

A  A+1

Инкремент ACC

1

INC

Rn

Rn  Rn+1

Инкремент регистра Rn (n=0..7)

1

INC

ad

ad  ad+1

Инкремент содержимого ячейки памяти ad внутреннего ОЗУ

1

INC

@Ri

[Ri]  [Ri]+1

Инкремент содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

INC

DPTR

DPTR  DPTR+1

Инкремент регистра DPTR

2

DEC

A

A  A+1

Декремент ACC

1

DEC

Rn

Rn  Rn+1

Декремент регистра Rn (n=0..7)

1

DEC

ad

ad  ad+1

Декремент содержимого ячейки памяти ad внутреннего ОЗУ

1

DEC

@Ri

[Ri]  [Ri]+1

Декремент содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

MUL

AB

(BA)  AB

Умножение АСС на регистр В. Старший байт результата помещается в регистр В, младший – в АСС

4

DIV

AB

A  A/B

B  остаток

Деление АСС на регистр В. Частное помещается в АСС, остаток – в регистр В

4

Команды логических операций

ANL

A,Rn

A  ARn

Логическое “И” АСС и содержимого регистра Rn (n=0..7)

1

ANL

A,ad

A  Aad

Логическое “И” АСС и содержимого ячейки памяти ad внутреннего ОЗУ

1

ANL

A,@Ri

A  A [Ri]

Логическое “И” АСС и содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

ANL

A,#d8

A  Ad8

Логическое “И” АСС и константы d8

1

ANL

ad,A

ad  adA

Логическое “И” содержимого ячейки памяти ad внутреннего ОЗУ и АСС

1

ANL

ad,#d8

ad  add8

Логическое “И” содержимого ячейки памяти ad внутреннего ОЗУ и константы d8

2

ORL

A,Rn

A  ARn

Логическое “ИЛИ” АСС и содержимого регистра Rn (n=0..7)

1

ORL

A,ad

A  Aad

Логическое “ИЛИ” АСС и содержимого ячейки памяти ad внутреннего ОЗУ

1

ORL

A,@Ri

A  A[Ri]

Логическое “ИЛИ” АСС и содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

ORL

A,#d8

A  Ad8

Логическое “ИЛИ” АСС и константы d8

1

ORL

ad,A

ad  adA

Логическое “ИЛИ” содержимого ячейки памяти ad внутреннего ОЗУ и АСС

1

ORL

ad,#d8

ad  add8

Логическое “ИЛИ” содержимого ячейки памяти ad внутреннего ОЗУ и константы d8

2

XRL

A,Rn

A  ARn

“Исключающее ИЛИ” АСС и содержимого регистра Rn (n=0..7)

1

XRL

A,ad

A  Aad

“Исключающее ИЛИ” АСС и содержимого ячейки памяти ad внутреннего ОЗУ

1

XRL

A,@Ri

A  A[Ri]

“Исключающее ИЛИ” АСС и содержимого ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1)

1

XRL

A,#d8

A  Ad8

“Исключающее ИЛИ” АСС и константы d8

1

XRL

ad,A

ad  adA

“Исключающее ИЛИ” содержимого ячейки памяти ad внутреннего ОЗУ и АСС

1

XRL

ad,#d8

ad  add8

“Исключающее ИЛИ” содержимого ячейки памяти ad внутреннего ОЗУ и константы d8

2

CLR

A

A  0

Сброс АСС (запись 0 в АСС)

1

CPL

A

A  NOT(A)

Инверсия всех бит АСС

1

RL

A

Циклический сдвиг АСС влево

1

RLC

A

Циклический сдвиг АСС влево через флаг переноса CY

1

RR

A

Циклический сдвиг АСС вправо

1

RRC

A

Циклический сдвиг АСС вправо через флаг переноса CY

1

Команды операций с битами

CLR

C

CY  0

Сброс флага переноса CY

1

CLR

bit

bit  0

Сброс бита bit

1

SETB

C

CY  1

Установка флага переноса CY

1

SETB

bit

bit  1

Установка бита bit

1

CPL

C

CY  NOT(CY)

Инвертирование флага переноса CY

1

CPL

bit

bit  NOT(bit)

Инвертирование бита bit

1

ANL

C,bit

CY  CYbit

Логическое “И” флага переноса CY и бита bit

2

ANL

C,/bit

CY  CYNOT(bit)

Логическое “И” флага переноса CY и инверсного значения бита bit

2

ORL

C,bit

CY  CYbit

Логическое “ИЛИ” флага переноса CY и бита bit

2

ORL

C,/bit

CY  CYNOT(bit)

Логическое “ИЛИ” флага переноса CY и инверсного значения бита bit

2

MOV

C,bit

CY  bit

Пересылка в бит переноса CY бита bit

1

MOV

bit,C

bit  CY

Пересылка в бит bit бита переноса CY бита bit

2

Команды передачи управления

NOP

PC  PC+1

Холостая команда

1

JMP

label

PC  label

Безусловный переход на метку label

2

LJMP

label

Безусловный переход на метку label в полном объеме памяти программ

2

AJMP

label

Безусловный переход на метку label в пределах 2 Кбайт памяти программ

2

SJMP

label

Безусловный переход на метку label в пределах 256 байт памяти программ

2

JMP

@A+DPTR

PC  (A+DPTR)

Безусловный переход по адресу, определяемом как сумма ACC и DPTR

2

JZ

label

Переход на метку label, если АСС = 0, иначе – следующая команда

2

JNZ

label

Переход на метку label, если АСС ≠ 0, иначе – следующая команда

2

JC

label

Переход на метку label, если флаг переноса CY установлен (равен 1), иначе – следующая команда

2

JNC

label

Переход на метку label, если флаг переноса CY сброшен (равен 0), иначе – следующая команда

2

JB

bit,label

Переход на метку label, если бит bit установлен (равен 1), иначе – следующая команда

2

JNB

bit,label

Переход на метку label, если бит bit сброшен (равен 0), иначе – следующая команда

2

JBС

bit,label

Переход на метку label, если бит bit установлен (равен 1) с последующим его сбросом, иначе – следующая команда

2

DJNZ

Rn,label

Декремент регистра Rn (n=0..7) и переход на метку label, если он стал равен 0, иначе – следующая команда

2

DJNZ

ad,label

Декремент содержимого ячейки памяти ad внутреннего ОЗУ и переход на метку label, если оно стало равно 0, иначе – следующая команда

2

CJNE

A,ad,label

Переход на метку label, если АСС не равно содержимому ячейки памяти ad внутреннего ОЗУ, иначе – следующая команда

2

CJNE

A,#d8,label

Переход на метку label, если АСС не равно константе d8, иначе – следующая команда

2

CJNE

Rn,#d8,label

Переход на метку label, если содержимое регистра Rn (n=0..7) не равно константе d8, иначе – следующая команда

2

CJNE

@Ri,#d8,label

Переход на метку label, если содержимое ячейки памяти внутреннего ОЗУ, адрес которой находится в регистре Ri (i=0,1) не равно константе d8, иначе – следующая команда

2

CALL

label

Вызов подпрограммы, расположенной по адресу label

2

LCALL

label

Вызов подпрограммы, расположенной по адресу label в полном объеме памяти программ

2

ACALL

label

Вызов подпрограммы, расположенной по адресу label в пределах 2 Кбайт памяти программ

2

RET

Возврат из подпрограммы

2

RETI

Возврат из подпрограммы обработки прерываний

2

Соседние файлы в предмете Микропроцессорные устройства