Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пампам.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
219.72 Кб
Скачать

19. Форматы данных и команд в мпс.

Команды на выполнение МП определенных операций хранят в памяти в виде 8-ми разрядных слов в соседних ячейках. Сами данные всегда 8-ми разрядные, причем младший бит обозначается - D0 , а старший - D7 (см. рис. 2.11). Байт данных можно условно разделить на старший полубайт (4 старших разряда) и младший полубайт (4 младших разряда). Каждый полубайт при написании программы представляется шестнадцатеричным числом, так что байт, изображенный на рис. 2.11 можно записать в виде Е716. Диапазон представления чисел таким форматом 0…25510.

Представленный на рис. 2.11 формат данных называется двоичным числом без знака. Это основной формат чисел для данного МП. Однако есть возможность использовать другой формат – двоичное число со знаком. В нем самый старший бит называется знаковым: если D7= 1, то число отрицательное, представленное в дополнительном коде, если D7=0 – то положительное. Остальные семь младших разрядов представляют собой собственно число. Естественно, диапазон представления чисел байтом будет –128…+128.

Команды МП могут быть однобайтовыми (рис. 2.12А), двух байтовыми (рис. 2.12Б), трехбайтовыми (рис. 2.12В). В однобайтовой команде указывается код операции, в котором зашифрованы коды регистров, с которыми работает МП. В двухбайтовых командах байт В1 представляет собой код операция, а байт В2 - данные которые непосредственно загружаются в регистры МП или ячейку памяти. В трехбайтовых командах первый байт представляет собой код команды, а второй и третий байт - информация об адресе перехода (в операциях перехода) или данные, которые записываются в две соседние ячейки памяти (при оперировании с 16-ти разрядными числами).

Рис. 2.11. Обозначение байта данных

Рис. 2.12. Формат команд в МП

20. Способы адресации.

Набор команд MCS-51 поддерживает следующие режимы адресации.

Прямая адресация

Операнд определяется 8-битным адресом в инструкции. Эта адресация используется только для внутренней памяти данных и регистров SFR.

Косвенная адресация

В этом случае инструкция адресует регистр, содержащий адрес операнда. Данный вид адресации может применяться при обращении как к внутреннему, так и внешнему ОЗУ. Для указания 8-битных адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP.

Для 16-битной адресации используется только регистр "указатель данных" (DPTR - Data Pointer).

Регистровая адресация

Данная адресация применяется для доступа к регистрам R0...R7 выбранного банка. Команды с регистровой адресацией содержат в байте кода операции трехбитовое поле, определяющее номер регистра. Выбор одного из четырех регистровых банков осуществляется программированием битов селектора банка (RS1, RS0) в PSW.

Непосредственная адресация.

Операнд содержится непосредственно в поле команды вслед за кодом операции и может занимать один или два байта (data8, data16).

Индексная адресация

Индексная адресация используется при обращении к памяти программ и только при чтении. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или PC) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора).