Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Адресное пространство и режимы адресации




 

Адресное пространство микропроцессора – множество адресов оперативной памяти, доступной для программ, выполняемых микропроцессором. Под размером адресного пространства понимают мощность этого множества, т.е. количество программно-доступных адресов основной памяти. Размер адресного пространства определяется максимальной длиной адреса и может выражаться либо в единицах минимальных адресуемых элементов (ячеек) памяти, либо в более крупных единицах (словах). Например, если исполнительный адрес в микро-ЭВМ формируется в виде 16-разрядного слова, то при минимальном адресуемом элементе, равном 1 байт, максимальный размер адресного пространства этой микро-ЭВМ составит 216 = 65535 байт = 64К байт или 32К слов (если в каждом слове содержится 2 байта).

Поскольку МП КР580ВМ80А имеет размер слова, равный минимальному размеру ячейки памяти – 1 байт, а шина адреса микропроцессора состоит из 16 линий, то его адресное пространство составляет 64К байт (или, что то же самое, слов).

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

Необходимость формирования исполнительного адреса операнда в адресной команде обусловлена несколькими причинами. Одна из них заключается в том, что из-за ограниченной длины команды в ней нельзя записать полный физический адрес операнда, а можно разместить лишь некоторую вспомогательную величину, с помощью которой вычисляется исполнительный адрес по какому-либо правилу. Другая причина заключается в необходимости осуществления различных способов (режимов) адресации операндов – процедур, или логических схем, позволяющих преобразовать адресную информацию об операнде в исполнительный адрес операнда в оперативной памяти.

Для микропроцессора КР580ВМ80А характерны четыре режима адресации памяти:

· прямой;

· непосредственный;

· косвенный режим адресации через пару регистров;

· использование указателя стека.

При режиме прямой адресации памяти длина команды равна 3 байт, причем в первом (левом) байте находится код операции, а в двух следующих байтах – адрес операнда. Микропроцессор КР580ВМ80А имеет ту особенность, что вслед за кодом операции в следующем байте записывается содержимое младшего байта адреса, а за ним – содержимое старшего байта адреса.

При режиме непосредственной адресации памяти длина команды составляет 2 байт, из которых первый байт хранит код операции, а второй – сам операнд. Следовательно для команды с непосредственной адресацией нет нужды отыскивать операнд в памяти, так как он входит в состав команды.

Если в команде используется режим косвенной адресации через пару регистров, то адрес операнда берется из двух регистров общего назначения. Чаще всего для этой цели применяются регистры H (для старшего байта адреса) и L (для младшего байта адреса). Сама команда при этом занимает всего 1 байт. Для ссылки на регистры H и L в команде на языке ассемблера записывается имя M. При режиме адресации памяти через указатель стека адресация выполняется с помощью 16-разрядного регистра SP, содержимое которого, в данном случае, является адресом ячейки памяти, откуда необходимо взять или куда поместить операнд. Команда с таким способом адресации либо помещает данное в стек, либо извлекает его. Данное, подлежащее занесению в стек, извлекается либо из пары 8-разрядных регистров общего назначения, либо из счетчика команд. По адресу, который на единицу меньше исходного значения указателя стека, в стек сначала записывается старший байт данного, а затем младший байт данного по адресу на два меньшему исходного значения указателя стека (рис. 2). Операция извлечения данного из стека осуществляется в обратном порядке по отношению к операции занесения. Предполагается, что программа, использующая стек, в самом начале своей работы выполняет инициализацию стека, т.е. установку исходного значения указателя. Здесь следует отметить следующую особенность рассматриваемого микропроцессора: во время инициализации стека его вершина располагается в верхней части оперативной памяти микро-ЭВМ; при заполнении стека его вершина смещается в направлении меньших адресов памяти, тогда как программа размещается в памяти начиная с младших адресов. Таким образом, области памяти, занятые программной и стеком, растут навстречу друг другу, что необходимо учитывать при разработке программ больших размеров.

 

 

Система команд

 

Система команд МП КР580ВМ80А содержит 78 базовых команд. Всего же, с учетом модификации команд за счет применения различных режимов адресации общее количество команд равно 244.

По функциональному назначению команды можно разделить на следующие группы:

· команды пересылки данных между оперативной памятью и регистрами микропроцессора;

· команды для выполнения арифметических и логических операций;

· команды управления;

· команды связи с подпрограммами;

· команды сдвига данных в регистрах;

· команды ввода/вывода;

· специальные команды.

Коды всех команд микропроцессора представлены в таблице 3. С помощью этой таблицы можно легко и быстро сопоставить мнемонику команды с ее кодом операции. Мнемоника каждой команды располагается на пересечении строк и столбцов таблицы, причем строка определяет в шестнадцатеричном виде старшую часть кода операции, а столбец – младшую.

 

Команды пересылки данных можно разделить на две группы: команды однобайтовых пересылок – наиболее многочисленная группа команд. С их помощью осуществляется обмен данными между внутренними регистрами МП, а также между внутренними регистрами и ячейками памяти. Внутренние межрегистровые пересылки осуществляются командами MOV R1, R, где R1 и R – любые внутренние 8-разрядные регистры микропроцессора. При выполнении этих команд содержимое регистра R пересылается в регистр R1, причем в регистре R сохраняется прежнее значение данных. Например, после выполнения команды MOV C, A данные из регистра A будут переписаны в регистр C. Содержимое регистра A при этом сохранится.

В качестве операнда этой команды может быть также определена ячейка памяти, адрес которой находится в регистровой паре HL. Например по команде MOV C, M произойдет пересылка данных из ячейки памяти M, адрес которой содержится в регистровой паре HL во внутренний регистр микропроцессора. Содержимое ячейки памяти при этом не изменится. Другой пример: по команде MOV M, E данные из регистра E запишутся в ячейку памяти M, адрес которой содержится в регистровой паре HL, а данные в регистре E останутся неизменными.

Для пересылок данных между аккумулятором и ячейками памяти адрес ячейки может задаваться также содержимым регистровых пар BC или DE. Тогда для записи в память данных из аккумулятора используют однобайтовые команды STAX B или STAX D, а при обратной пересылке – LDAX B или LDAX D. Адрес ячейки памяти для обмена с аккумулятором можно задать также с помощью трехбайтовых команд с непосредственной адресацией. В этом случае для записи данных из аккумулятора в память служит команда STA ADR, для обратной пересылки – LDA ADR.

С помощью двухбайтовой команды MVI R, D8 можно записать операнд D8 (байт) в любой 8-разрядный регистр МП. Запись операнда D8 можно также осуществить в ячейку памяти, адресуемую содержимым регистровой пары HL, командой MVI M, D8. Операндом здесь является второй байт команды.

В группу команд двухбайтовых пересылок входят трехбайтовые команды LXI B, D16, LXI D, D16, LXI H, D16, которые служат для непосредственной записи операнда D16 в регистровые пары BC, DE, HL.

Используя команды SHLD ADR, LHLD ADR, можно организовать пересылки данных между регистровой парой HL и ячейкой памяти, непосредственно адресуемой по содержимому второго и третьего байта команды. Остальные команды этой группы осуществляют пересылки с адресацией по указателю стека SP. С помощью команд PUSH B, PUSH D, PUSH H содержимое регистровых пар BC, DE, HL засылается в стек. По команде PUSH PSW в стек засылаются данные из аккумулятора и регистра признаков. Команды POP B, POP D, POP H служат для пересылки 16-разрядного слова из ячеек памяти, адресуемых указателем стека SP в соответствующую пару регистров. Командой POP PSW данные из стека пересылаются в аккумулятор и регистр признаков F. Таким образом, команда POP PSW может изменить все биты регистра признаков F. Команда SPHL позволяет занести адрес из регистровой пары HL в указатель стека SP.

 

Команды ввода/вывода Микропроцессор КР580ВМ80А имеет всего две команды для ввода/вывода данных.

С помощью команды ввода IN N можно переписать байт данных в регистр A микропроцессора из одного из 256 портов ввода. Номер порта ввода определяется вторым байтом команды.

Аналогично по команде вывода OUT N байт данных из регистра A микропроцессора буде переписан в любой из 256 портов вывода, адресуемых вторым байтом команды.

Группа команд обмена. В этой группе также всего две команды: XTHG – команда обмена содержимым между регистровыми парами HL и DE и команда XTHL – команда обмена содержимым между регистровой парой HL и SP.

Группа команд арифметических и логических операций с одним операндом. С помощью команды CMC можно изменять значение бита переноса на противоположное, т.е. инвертировать признак переноса. Команда STC позволяет установить значение признака переноса в 1. Значение всех битов регистра A можно инвертировать, применив команду CMA.

 

 

Таблица 3





Поделиться с друзьями:


Дата добавления: 2015-10-19; Мы поможем в написании ваших работ!; просмотров: 1288 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2266 - | 2091 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.