Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OTVETY_NA_VOPROSY_LAB2

.pdf
Скачиваний:
0
Добавлен:
27.11.2022
Размер:
290.91 Кб
Скачать

2 Ответы на контрольные вопросы

2.1 Какие команды МП MCS-51 предназначены для передачи данных?

копирование данных во внутреннем ОЗУ: MOV;

обмен данными аккумулятора с внутренним ОЗУ: XCH, XCHD

копирование из внешней памяти данных: MOVX

копирование данных из памяти программ: MOVC

загрузка в стек: PUSH

извлечение из стека: POP

Таблица 1- Команды МП MCS-51 предназначены для передачи данных

Название команды

Мнемокод

КОП

Б

Ц

Операция

Пересылка в аккумулятор из реги-

MOV A, Rn

1110.1rrr

1

1

(A)<-(Rn)

стра (п=0+7)

 

 

 

 

 

Пересылка в аккумулятор прямо-

MOV A, ad

1110.0101

2

1

(A)<-(ad)

адресуемого байта

 

 

 

 

 

Пересылка в аккумулятор байта из

MOV A,

1110.011i

1

1

(A)<-((Ri))

РПД (i=0,1)

@Ri

 

 

 

 

Загрузка в аккумулятор константы

MOV A,

0111.0100

2

1

(A)<-#data8

#data8

 

 

 

 

 

Пересылка в регистр из аккумулято-

MOV Rn, A

1111.1rrr

1

1

(Rn)<-(A)

ра

 

 

 

 

 

Пересылка в регистр прямоадресуе-

MOV Rn, ad

1010.1rrr

2

2

(Rn)<-(ad)

мого байта

 

 

 

 

 

Загрузка в регистр константы

MOV Rn,

0111.1rrr

2

1

(Rn)<-#data8

#data8

 

 

 

 

 

Пересылка по прямому адресу акку-

MOV ad, A

1111.0101

2

1

(ad)<-(A)

мулятора

 

 

 

 

 

Пересылка по прямому адресу реги-

MOV ad, Rn

1000.1rrr

2

2

(ad)<-(Rn)

стра

 

 

 

 

 

Пересылка прямоадресуемого байта

MOV add,

1000.0101

3

2

(add)<-(ads)

по прямому адресу

ads

 

 

 

 

Пересылка байта из РПД по прямому

MOV ad,

1000.011i

2

2

(ad)<-((Ri))

адресу

@Ri

 

 

 

 

Пересылка по прямому адресу кон-

MOV ad,

0111.0101

3

2

(ad)<-#data8

станты

#data8

 

 

 

 

Пересылка в РПД из аккумулятора

MOV @Ri,

1111.011i

1

1

((Ri))<-(A)

A

 

 

 

 

 

Пересылка в РПД прямоадресуемого

MOV @Ri,

0110.011i

2

2

((Ri))<-(ad)

байта

ad

 

 

 

 

Пересылка в РПД константы

MOV @Ri,

0111.011i

2

1

((Ri))<-#data8

#data8

 

 

 

 

 

Загрузка указателя данных

MOV DPTR,

1001.0000

3

2

(DPTR)<-

 

#data16

 

 

 

#data16

Пересылка в аккумулятор байта из

MOVC A,

1001.0011

1

2

A<-((A)

ПП

@A+DPTR

+(DPTR))

 

 

 

Томск 2020

2

Пересылка в аккумулятор байта из

MOVC A,

 

 

 

(PC)<-(PC)+1,

1000.0011

1

2

(A)<-

ПП

@A+PC

 

 

 

((A)+(PC))

 

 

 

 

 

Пересылка в аккумулятор байта из

MOVX A,

1110.001i

1

2

(A)<-((Ri))

памяти данных

@Ri

 

 

 

 

Пересылка в аккумулятор байта из

MOVXA,@

1110.0000

1

2

(A)<-

расширенной памяти данных

DPTR

 

 

 

((DPTR))

Пересылка в память данных значе-

MOVX @Ri,

1111.001i

1

2

((Ri))<-(A)

ние из аккумулятора

A

 

 

 

 

Пересылка в расширенную память

MOVX

1111.0000

1

2

((DPTR))<-

данных значение из аккумулятора

@DPTR,A

(A)

 

 

 

 

 

 

2

2

(SP)<-(SP) +

Загрузка в стек

PUSH ad

1100.0000

 

 

 

 

 

1,

 

 

 

 

 

((SP))<-(ad)

Извлечение из стека

POP ad

1101.0000

2

2

(ad)<-(SP),

(SP)<-(SP) – 1

Обмен аккумулятора с регистром

XCH A, Rn

1100.1rrr

1

1

(A)<->(Rn)

Обмен аккумулятора с прямоадресу-

XCH A, ad

1100.0101

2

1

(A)<->(ad)

емым байтом

 

 

 

 

 

Обмен аккумулятора с байтом из па-

XCH A, @Ri

1100.011i

1

1

(A)<->((Ri))

мяти данных

 

 

 

 

 

Обмен младших тетрад аккумулятора

XCHD A,

1101.011i

1

1

(A0…A3)<-

и памяти данных

@Ri

>W(Ri0…Ri3)

 

 

 

2.2 Какие команды МП MCS-51 предназначены для организации подпрограмм?

Название команды

Мнемокод

КОП

Б

Ц

 

Операция

 

 

 

 

 

 

Длинный вызов

LCALL

0001.0010

3

2

(PC)<-(PC)+3, (SP)<- (SP)+1, ((SP))<-(PC0...7),

подпрограммы

ad16

(SP)<-(SP)+1, ((SP))<- (PC8-15), (PC)<-ad16

 

 

 

 

 

 

 

 

 

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

RET

0010.0010

1

2

(PC8...15)<-((SP)), (SP)<- (SP)-1, (PC0...7) -

((SP)), (SP)<- SP)-1

 

 

 

 

 

 

 

 

 

 

 

 

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

RETI

0011.0010

1

2

(PC8...15)

<-((SP)), (SP)<- (SP)-1,

обработки прерывания

(PC0...7) <- ((SP)), (SP)<- (SP)-1

 

 

 

 

 

 

 

 

 

 

 

2.3 Какие методы адресации используются в командах вашей программы?

Прямая адресация

Регистровая адресация

Косвенная адресация

Непосредственная регистрация

3

2.4 Как можно проверить нулевой результат выполнения арифметической операции?

Присвоение константе 0

Будет выполнена любая арифметическая операция

Сравнение выполненной операции с константой

2.5 При помощи каких команд можно организовать цикл?

Команда DJNZ (decrement jump if not zero) предназначена для организации программных циклов. Регистр Rn или байт по адресу ad, указанные в теле команды, содержат счетчик повторений цикла, а смещение rel — относительный адрес перехода к началу цикла. При выполнении команды содержимое счетчика уменьшается на 1 и проверяется на 0. Если значение содержимого счетчика не равно 0, то осуществляется переход на начало цикла, в противном случае выполняется следующая команда.

Для организации цикла предназначена команда LOOP. У этой команды один операнд — имя метки, на которую осуществляется переход. В качестве счётчика цикла используется регистр CX. Команда LOOP выполняет декремент CX, а затем проверяет его значение. Если содержимое CX не равно нулю, то осуществляется переход на метку, иначе управление переходит к следующей после LOOP команде. Метка должна находиться в диапазоне -127…+128 байт от команды LOOP (иначе будет ошибка).

2.6 На какие группы делятся команды МП MCS-51 по функциональным признакам

По функциональным признакам команды разделяются на пять групп:

пересылки данных;

арифметических операций;

логических операций;

операций над битами;

управления аппаратно-программными средствами МП.

2.7 Что называют командой, микрокомандой, системой команд?

4

Команда - это слово, которое извлекается микропроцессором из памяти программ, декодируется и им исполняется, таким образом, трансформируясь из информации в действие. Команда состоит из двух частей: кода операции (КОП) и операнда.

Микрокоманда - элементарное действие, обеспечивающее выполнение заданной операции. Совокупность микроопераций, выполняемых в одном такте, называется микрокомандой (МК).

Система команд - фиксированный набор команд конкретного микропроцессора. Система команд определяет не только список команд, поддерживаемых микропроцессором, но и методы адресации к данным.

2.8 Дайте определения понятиям микрооперация, структура команды, формат команды.

Микрооперация – элементарное машинное действие (элементарная операция), которое выполняется над содержимым операционных блоков (операндами).

Структура команды - последовательное выполнение операций. Структура команды определяется составом, назначением и расположением полей в команде.

Формат – определение длины команды и состава элементов, из которых она состоит.

Рисунок

4 - Форматы различных команд микропроцессора

2.9Какие методы адресации характерны для МП MCS-51?

5

Набор команд МП MCS-51 поддерживает следующие методы адресации для обращения к операндам:

Прямая адресация (Direct Addressing).Операнд определяется 8- битным адресом в инструкции. Эта адресация используется только для внутренней памяти данных и регистров.

Косвенная адресация (Indirect Addressing). Адрес регистра, содержащий адрес операнда, описан самой инструкцией и содержится в коде операции. Данный вид адресации может применяться при обращении как к внутренней, так и внешней памяти. Для указания 8-битных адресов могут использоваться регистры R0 и R1 или указатель стека SP. Для 16битной адресации используется только регистр (DPTR - Data Pointer - "указатель данных").

Регистровая адресация (Register Instruction).Данная адресация применяется для доступа к регистрам R0…R7. Команды с регистровой адресацией содержат в коде операции трехбитовое поле, которое определяет номер регистра.

Непосредственная адресация (Immediate constants).Операнд содержится в теле команды и следует за кодом операции. Размер операнда составляет один или два байта в котором содержится константа (#data8,

#data16).

Индексная адресация (Indexed Addressing). Индексная адресация используется при чтении памяти программ. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или PC) содержит базовый адрес требуемой таблицы, а аккумулятор содержит индекс, т.е. указывает на порядковый номер элемента таблицы. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора).

Неявная адресация (Register-Specific Instructions).Название «неявная адресация» подразумевает, что адрес к регистрам или памяти не указывается при помощи операнда. Адрес регистра определяется самой инструкцией и содержится в коде операции. Например, некоторые инструкции используют индивидуальные регистры, такие, как аккумулятор, или DPTR, но при этом, адрес этих регистров не объявлен в операнде, так как он уже определен командой и определяется микропроцессором из кода операции. Примером неявной адресации к памяти могут являться команды push, pop

6

2.10 Какие условия можно проверять в командах условного перехода МП MCS-51?

С помощью команд JZ и JNZ осуществляется переход, если содержимое аккумулятора соответственно равно или не равно нулю.

Команды CJNE (3–6) служат для реализации условного перехода по результату сравнения двух 8–разрядных операндов, расположение которых указано в командах. Если их значения не равны, осуществляется переход.

Командами условного перехода можно проверять следующие условия:

- JZ (jump if zero) — аккумулятор содержит нулевое значение;

- JNZ (jump if not zero) — аккумулятор содержит не нулевое значение;

- JC (jump if carry) — бит переноса С равен 1;

- JNC (jump if not carry) — бит переноса С равен 0;

- JB (jump if bit) — прямо адресуемый бит равен 1;

- JNB (jump if not bit) — прямо адресуемый бит равен 0;

- JBC (jump if bit and clear) — прямо адресуемый бит равен 1 и сбрасывается в нулевое значение при выполнении команды.

7

3Заключение

Впроцессе выполнения лабораторной работы были изучены принципы работы и системы команд микропроцессора на примере микропроцессоров семейства Intel mcs-51.

Был написан отчет согласно ОС ТУСУР 01-2013.