Лабы / Лабораторная работа №2
.odtМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
СИСТЕМА КОМАНД МИКРОПРОЦЕССОРОВ СЕМЕЙСТВА INTEL MCS-51 Отчет по лабораторной работе №2 по дисциплине “ОЭВМ и ВС”
Введение
Целью лабораторной работы является изучение принципов работы и системы команд микропроцессора на примере микропроцессоров семейства Intel mcs-51.
1 ХОД РАБОТЫ
1.1 Создание кода согласно варианту
Согласно варианту 9 необходимо используя систему команд процессора 8051, составить алгоритм и написать программу циклического вычисления суммы чисел от 50 до 0. Результат вычислений вывести в порт P1. Оценить период выполнения цикла. Проверить правильность работы программы на симуляторе. Согласно заданию была создана следующая блок-схема отображающая алгоритм. (рисунок 1.1)
Рисунок
1.1 — Блок схема алгоритма
По данной блок схеме был написан следующий код. (рисунок 1.2)
Р
исунок
1.2 — Реализация блок-схемы в виде кода
MOV R0, #50 ;Установить R0 = 50
MOV A, #0 ;Инициализировать A = 0
LOOP:
ADD A, R0 ;Сложить значение R0 с A
DJNZ R0, LOOP;Уменьшить R0 на 1 и повторить цикл, если не равно 0
MOV P1, A ;Отправить результат на порт P1
Данный код выводит значение равное FB=251, что не является суммой чисел от 50 до 0, данная запись является младшими битами от записи ответа, а именно от 16-ричной записи 1275=4FB, было принято решение переписать код, чтобы считались и старшие биты, которые будут выводится в порт P2.
Был написан следующий код (рисунок 1.3), с исправлением данного недочета, теперь код выводит старшие биты в порт P2, а младшие в порт P1, тем самым на выводе мы получаем 4 в P2 и FB в P1, тем самым у нас получается ответ равный 4FB=1275, что является ответом на данное задание.
Р
исунок
1.3 — Код с использованием переноса
MOV R0, #50 ; Установить R0 = 50
MOV A, #0 ; Инициализировать A = 0
MOV B, #0 ; Инициализировать старшие биты суммы в B = 0
LOOP:
ADD A, R0 ; Сложить значение R0 с A
JNC NEXT ; Если нет переноса, пропустить следующий шаг
INC B ; Увеличить старший байт суммы
NEXT:
DJNZ R0, LOOP;Уменьшить R0 на 1 и повторить цикл, если не равно 0
MOV P1, A ; Отправить младшие 8 бит результата на порт P1
MOV P2, B ; Отправить старшие 8 бит результата на порт P2
Заключение
В процессе выполнения лабораторной работы была достигнута поставленная цель: изучение принципов работы и системы команд на симуляторе микропроцессора на примере микропроцессоров семейства Intel mcs-51.
