3. Задания для самостоятельной работы
Запишите и выполните программу, которая заносит в стек содержимое регистров R1, R3 и R5 1-го банка, аккумулятора и DPTR, а затем восстанавливает их содержимое. Стек организуйте с адреса 60H памяти данных.
Напишите и выполните программу, которая определяет минимальное число в массиве ячеек памяти данных (числа двоичные целые без знака). Начальный адрес массива вводится из порта P1, а конечный – из порта P2. Найденное число выводится в порт P0. Процедуру нахождения минимального числа оформите как подпрограмму. Стек организуйте с адреса 70H.
Напишите и выполните программу, которая делает преобразование однобайтных целых двоичных чисел со знаком в прямом коде, находящихся в памяти данных с адреса 20H по 30H, в дополнительный код и помещает их во внешнюю память данных, начиная с адреса 0000H. Напомним, что для положительных чисел прямой код совпадает с дополнительным. Процедуру преобразования кодов оформите как подпрограмму. Стек определите с адреса 65H. При проверке работы программы по указанным адресам занесите произвольные значения (положительные и отрицательные числа).
Напишите и выполните программу, которая выполняет преобразование двухбайтного целого двоичного числа со знаком в прямом коде в двухбайтное число в дополнительном коде. Исходное число поступает в микроконтроллер через порты P0 (младший байт) и P1 (старший байт). Число в дополнительном коде выводится через порты P2 (младший байт) и P3 (старший байт). Напомним, что знаковый разряд числа находится в старшем байте, а для положительных чисел прямой и дополнительный коды одинаковы. Процедуру преобразования в дополнительный код оформите как подпрограмму. Стек определите с адреса 50H. Выполните проверку работы программы для положительных и отрицательных чисел.
Содержание отчета
Наименование и цель работы. Краткое описание изучаемых команд. Программы и содержимое области стека, исследуемые в п.3.1.1, 3.1.2. Программы к заданиям для самостоятельной работы (комментарии обязательны!). Hex-файлы для демонстрации разработанных программ.
Контрольные вопросы
Где размещается стек в МК51 после сброса микроконтроллера
Как можно задать область памяти, отведенную под стек
Необходимо сохранить в стеке содержимое регистров PSW, DPTR, A. Какими командами их поместить в стек, а затем извлечь из него
Укажите порядок выполнения микроконтроллером команды CALL.
Укажите порядок выполнения микроконтроллером команды RET.
Как можно сохранить в стеке содержимое регистров общего назначения
