Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Соловьеву (Восстановлен).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.13 Mб
Скачать
      1. Ячейки памяти с битовой адресацией

Кроме прямого (побайтного) доступа к памяти данных 16 ячеек этой памяти с адресами 0x20 - 0x2F доступны также как 128 индивидуально адресуемых бит. Каждый бит имеет битовый адрес от 0x00 до 0x7F. Бит 0 байта 0x20 имеет битовый адрес 0x00, а бит 7 байта 0x20 имеет битовый адрес 0x07. Бит 7 байта 0x2F имеет битовый адрес 0x7F. Битовый доступ можно отличить от байтового доступа по типу используемой команды (операнды исходных данных и результата в первом случае являются битами, во втором – байтами).

Ассемблер MCS-51™ допускает альтернативную запись для режима битовой адресации в форме ХХ.В, где ХХ – адрес байта, а В – позиция бита внутри этого байта. Например, команда:

MOV C, 22h.3

присваивает значение бита 0x13 (бит 3 в ячейке с адресом 0x22) флагу переноса.

      1. Команда movx и память программ

Команда MOVX обычно используется для доступа к внешней памяти данных. В CIP-51 команда MOVX может обращаться к встроенной памяти программ, реализованной как перепрограммируемая Flash-память, используя управляющие биты в регистре PSCTL . Это позволяет ядру CIP-51 обновлять программный код и использовать область памяти программ для долговременного хранения данных. Для МК с ОЗУ, отображенным на внешнюю память данных, команда MOVX используется также для чтения/записи этой памяти с помощью регистра PSCTL, настроенного на доступ к внешней памяти данных.

Рисунок 1. Карта распределенияпамяти

ПАМЯТЬ ПРОГРАММ

0x10000

ЗАРЕЗЕРВИРОВАНО

FLASH

(возможно внутрисистемное программирование

секторами по 512 байт)

0xFC00

0x0000

Память данных

ВНУТРЕННЯЯ ПАМЯТЬ ДАННЫХ

Старшие128байтОЗУ

(только косвеннаяадресация)

Регистрыспециального назначение(только прямаяадресация)

(Прямой икосвенный режимы адресации)

Младшие128байтОЗУ (Прямой икосвенный режимы адресации)

Битовая адресация

Регистры общего назначения

0x100

0 x80

0x30

0x20

0x00

ВНЕШНЯЯ ПАМЯТЬДАННЫХ

0x10000

0x1000

0x0000

  1. Написание и отладка программ на лабораторном стенде.

    1. Основы ассемблера

Прежде чем пытаться что-то оттранслировать и отладить, это что-то надо иметь. В нашем случае этим чем-то является текст программы, написанной на языке ассемблер. Поэтому надо познакомиться с основными принципами программирования на языке ассемблер.

Текст программы состоит из строк, в каждой из которых может быть написана только одна команда. Строку можно условно разделить на четыре поля, которые отделяются друг от друга пробельными символами.Первое поле – поле метки. Метка должна начинаться с первой позиции и может состоят из набора латинских букв и цифр. Первым символом метки должна быть буква или символ подчеркивания. Размер метки не более 8 символов. В некоторых версиях ассемблера метка должна завершаться двоеточием, в других двоеточие не обязательно. Во втором поле пишется мнемоника команды или директива ассемблера. В некоторых версиях ассемблера директива должна начинаться с точки, в других версиях наличие точки не обязательно или недопустимо. В третьем поле указываются операнды команды. Если операндов несколько, они разделяются запятыми. Последнее четвертое поле – поле комментариев. Оно начинается с символа «точка с запятой». Данное поле может начинаться в любом месте строки.

Пример:

Label: mov R1,#0 ; запись ноля в регистр R1

jmp label

end

Последней строкой в программе должна быть директива END.

Константы в ассемблере могут быть указаны в разных системах счисления. В зависимости от конкретной реализации по умолчанию используется десятичная или шестнадцатеричная система счисления. Теперь по всем вышеописанным правилам пишем программу в любом текстовом редакторе и сохраняем его с расширением ASM. После этого можно переходить к отладке программы.