OTVETY_NA_VOPROSY_LAB2
.pdf2 Ответы на контрольные вопросы
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.