Как работает стек и указатель стека в мк51. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Как работает стек и указатель стека в мк51.

Поиск

12. Как работает стек и указатель стека в МК51?

Стек - специально организованная область ОЗУ, предназначенная для временного хранения данных или адресов. Число, записанное в стек последним, извлекается из него первым. Указатель стека SP хранит адрес последней ячейки стека, в которой записана информация. При вызове подпрограммы в стеке автоматически сохраняется адрес возврата в основную программу. Как правило, в начале каждой подпрограммы сохраняют в стеке содержимое всех задействованных при ее выполнении регистров, а в конце подпрограммы восстанавливают их из стека.

После сброса МК51 указатель стека устанавливается равным 7.

 

13. Разработайте программу перемещения (копирования) массива резидентной памяти данных МК51.

Поскольку адрес начала массива и его размер не заданы, выберем их самостоятельно. Выберем начальный адрес исходного массива 20Н, длина массива 48 байт (т.е.30Н). Скопируем массив на другое место, например с 60Н по 8FH ячейки РПД. Пример программы:

 

       MOV R7, #30H; присваиваем регистру R7        значение числа элементов массива

       MOV R1, #20H; присваиваем регистру R1        значение начальной ячейки исходного массива

       MOV R0, #60H; присваиваем регистру R0        значение начальной ячейки нового массива-копии

М1:      MOV A, @R1; копируем в аккумулятор (А) значение из ячейки с адресом R1

       МОV @R0, А; записываем значение из А в        ячейку с адресом R0

       INC R0    ; увеличение R0 на 1

       INC R1    ; увеличение R1 на 1

       DJNZ R7, M1 ; Цикл (уменьшение R7 на 1. пока не 0, идем на М1)

 

14. Определить содержимое аккумулятора после выполнения команд (два шестнадцатеричных символа )

Числа могут быть представлены в различном коде: двоичном (В), десятичном (без символа на конце), шестнадцатеричном(Н) и восьмеричном(Q). Для вычислительных операций необходимо привести все к одному виду, лучше к десятичному.

MOV  B, # N; запись в расширитель аккумулятора                                           числа N

MOV  A, # M; запись в аккумулятор числа M

ADD  A, B; сложение чисел А и В. Младший байт заносится в А, старший в В

DA     A; десятичная коррекция А

Команда DA всегда идет вслед за командами ADD или ADDC и используется для обработки чисел, представления их в двоично-десятичном коде. К примеру, надо привести число 9FH к двоично-десятичному виду. Находим десятичный код этого числа 9FH=159. Далее полученный код записываем как 16-ричное, т.е. 0159Н – именно это число и надо представить в ответе.



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 63; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.)