No2
.pdfМинистерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
СИСТЕМА КОМАНД МИКРОПРОЦЕССОРОВ СЕМЕЙСТВА
INTEL MCS-51
Отчет по лабораторной работе №2
по дисциплине «Организация ЭВМ и вычислительных систем»
Выполнили Студенты группы 730-2
_______ Астра Г.А.
07.11.2020
_______ Похила Е.Ю. 07.11.2020
_______ Фатеев А.В.
07.11.2020
Принял Старший преподаватель
кафедры КИБЭВС
_________ Пехов О.В. 07.11.2020
2020
|
2 |
Оглавление |
|
Введение................................................................................................................... |
3 |
Ход работы............................................................................................................... |
4 |
Ответы на вопросы:................................................................................................. |
7 |
Заключение ............................................................................................................ |
12 |
3
Введение
Цель работы: изучение принципов работы и системы команд микропроцессора на примере микропроцессоров семейства Intel MCS-51.
4
Ход работы
Вариант 9. Используя систему команд процессора 8051, составьте алгоритм и напишите программу циклического вычисления суммы чисел от 50
до 0. Результат вычислений выводить в порт P1. Оцените период выполнения цикла. Проверьте правильность работы программы на симуляторе.
5
Программа:
Start:
mov r1, #50 mov r2, #50
Plan:
dec r1, mov A, r2, addc A, r1, mov p1, A,
cjne r1, #0, Plan,
Exit:
nop
jmp Exit
Рисунок 1 - Симулятор «edsim51»
6
Пояснения:
1)mov r1, #50 (mov r2, #50) – присваивание регистру значения «50»
2)dec r1, – уменьшение значения регистра на единицу
3)mov A, r2, – перенос значения регистра 2 в аккумулятор
4)addc A, r1, – сложение значений аккумулятора и регистра 1 с сохранением результата в аккумуляторе
5)mov p1, A, – вывод значения аккумулятора в порт 1
6)cjne r1, #0, Plan, – сравнение значения регистра 1 с нулем
7)nop – пустая команда
8)jmp Exit – окончание программы
7
Ответы на вопросы:
1) Какие команды МП MCS-51 предназначены для передачи данных?
Команда MOV копирует данные из операнда-источника в операнд-
получатель. Она от носится к группе команд передачи (пересылки) данных (data transfer) и используется в любой программе.
Команда MOVZX (Move With Zero-Extend, или Переместить и дополнить нулями) копирует содержимое исходного операнда в больший по размеру регистр получателя данных.
Команда MOVSX (Move With Sign-Extend, или переместить и дополнить знаком) копирует содержимое исходного операнда в больший по размеру регистр получателя данных, также как и команда MOVZX.
Команда XCHG (Exchange Data, или Обмен данными) позволяет обменять содержимое двух операндов.
2) Какие команды МП MCS-51 предназначены для организации
подпрограмм?
Команда CALL обеспечивает вызов подпрограмм. При этом вызов может осуществляться по прямому и косвенному адресу.
Команда RET обеспечивает возврат из подпрограммы в точку вызова. Эта команда должна завершать любую процедуру. При этом она может находиться
ине в конце процедуры, но исполняться будет последней.
3)Какие методы адресации используются в командах вашей программы?
Регистровая адресация
8
4) Как можно проверить нулевой результат выполнения
арифметической операции?
Проверить нулевой результат выполнения арифметической операции можно с помощью флага ZF, который отражает и беззнаковый, и знаковый нулевой результат.
5) При помощи каких команд можно организовать цикл?
Организовать цикл можно с помощью команды Loop, с помощью команд условного или безусловного перехода и регистра ecx/cx (выполняет роль
счетчика).
6) На какие группы делятся команды МП MCS-51 по
функциональным признакам?
−пересылки данных;
−арифметические операции;
−логические операции;
−операции над битами;
−управление аппаратно-программными средствами МП.
7) Что называют командой, микрокомандой, системой команд?
Команда – слово, которое извлекается микропроцессором из памяти программ, декодируется и им исполняется, таким образом, трансформируясь из информации в действие.
Микрокоманда – это набор одной, двух или более микроопераций,
которые могут быть выполнены одновременно.
Система команд определяет не только список команд, поддерживаемых микропроцессором, но и методы адресации к данным. Большинство команд выполняются за один или два машинных цикла «выборка-исполнение», за исключением команд умножения и деления, которые выполняются за четыре
9
машинных цикла. В качестве операндов команд МП могут использоваться биты, четырехбитные цифры (ниблы), байты и двухбайтные слова.
8) Дайте определения понятиям микрооперация, структура команды,
формат команды.
Микрооперация – элементарное машинное действие (элементарная операция), которое выполняется над содержимым операционных блоков
(операндами).
Структура команды определяется составом, назначением и расположением полей в команде.
Формат команды – это структура команды с разметкой номеров разрядов,
определяющих границы отдельных полей команды.
9) Какие методы адресации характерны для МП MCS-51?
−Прямая адресация (Direct Addressing). Операнд определяется 8-битным адресом в инструкции. Эта адресация используется только для внутренней памяти данных и регистров.
−Косвенная адресация (Indirect Addressing). Адрес регистра,
содержащий адрес операнда, описан самой инструкцией и содержится в коде операции. Данный вид адресации может применяться при обращении как к внутренней, так и внешней памяти. Для указания 8-битных адресов могут использоваться регистры R0 и R1 или указатель стека SP. Для 16-битной адресации используется только регистр (DPTR - Data Pointer - "указатель данных").
− Регистровая адресация (Register Instruction). Данная адресация применяется для доступа к регистрам R0…R7. Команды с регистровой адресацией содержат в коде операции трехбитовое поле, которое определяет номер регистра.
10
− Непосредственная адресация (Immediate constants). Операнд содержится в теле команды и следует за кодом операции. Размер операнда составляет один или два байта в котором содержится константа (#data8,
#data16).
− Индексная адресация (Indexed Addressing). Индексная адресация используется при чтении памяти программ. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или PC)
содержит базовый адрес требуемой таблицы, а аккумулятор содержит индекс,
т.е. указывает на порядковый номер элемента таблицы. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора).
− Неявная адресация (Register-Specific Instructions). Название «неявная адресация» подразумевает, что адрес к регистрам или памяти не указывается при помощи операнда. Адрес регистра определяется самой инструкцией и содержится в коде операции. Например, некоторые инструкции используют индивидуальные регистры, такие, как аккумулятор, или DPTR, но при этом,
адрес этих регистров не объявлен в операнде, так как он уже определен командой и определяется МП кода операции. Примером неявной адресации к памяти могут являться команды push, pop (команды для работы со стеком,
позволяют заносить значения регистров и ячеек памяти в стек и извлекать их оттуда).
10) Какие условия можно проверять в командах условного перехода
МП MCS-51?
−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;