Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Режимы адресации и система команд



Система команд МП КР580ВМ80А состоит из 78 базовых команд и 111 кодов операции. Синтаксис большинства команд ассемблерного языка состоит из мнемонического обозначения функций команды, вслед за которым могут размещаться операнды, указывающие методы адресации и типы данных. Формат команды МП зависит от типа выполняемой операции и может быть одно-, двух- и трехбайтовым. Код операции любой команды размещается в первом байте, а второй и третий байты, если они являются частью команды, могут содержать адрес операнда в памяти или сам операнд. В качестве операндов могут использоваться байты и 16-битные слова, при этом большинство операндов команд являются байтами. Для адресации используют следующие типы адресации: прямую, регистровую, непосредственную, неявную и косвенную.

Прямая адресация, при которой в коде команды указывается 16-битный адрес, используется в командах пересылок для задания адреса операнда в памяти. Для обозначения прямого адреса операнда в памяти в мнемониках команд применяется аббревиатура addr.

Регистровая адресация применяется для адресации регистров блока РОН (8‑разрядных регистров B, C, D, E, H, L, A и 16-разрядных регистровых пар B, D, H). Адреса регистров и регистровых пар приведены в табл. П1 прил. 1.

Операндом команд с непосредственной адресацией может быть только источник непосредственных данных. Непосредственные данные - это 8- или 16-битные константы или прямые адреса, для представления которых используется второй или второй и третий байт команды.

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

Косвенную адресацию применяют для обращения к операндам в памяти. Выше отмечено, что указателями адреса при косвенной адресации могут выступать регистровые пары BС, DЕ, HL и указатель стека SP.

Систему команд МП КР580ВМ80А по функциональному признаку удобно подразделить на нескольких групп:

- команды пересылок;

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

- команды передачи управления.

Рассмотрим общие закономерности кодирования различных групп команд. Поскольку выделено три группы команд, то для их идентификации достаточно всего двух бит. Пусть команды пересылок имеют код 01, команды арифметических и логических операций — код 10, команды передачи управления — код 11, а для команд других типов, в частности, с непосредственной адресацией зарезервируем код 00.

Группа команд пересылок (передачи данных). В нее включены команды с мнемониками MOV (собственно пересылки), PUSH, POP (загрузки в стек и извлечения из стека), команды ввода-вывода IN, OUT и некоторые другие, в том числе команды обмена, загрузки и запоминания содержимого регистровых пар. Команды пересылок не модифицируют флаги результата.

Наиболее представительной группой команд являются команды пересылок с мнемоникой MOV D,S, которые обеспечивают передачу данных из регистра‑источника (source) в регистр‑приемник (destination). В командах MOV двухбитный код 01 в принципе полностью идентифицирует код операции. Оставшиеся шесть бит первого байта команды, выделяемого для кода операции, можно использовать для указания адреса источника и приемника данных. Кроме регистров блока РОН (B, C, D, E, H, L) приемником и источником данных в командах пересылок с этой мнемоникой могут выступать аккумулятор и ячейка памяти М, адресуемая косвенно.

В обобщенном виде команды пересылок МП КР580ВМ80А с мнемоникой MOV можно представить восьмеричным кодом 1DS, где 1 — код команд пересылок с мнемоникой MOV; D (DDD) — код регистра приемника; S (SSS) — код регистра источника. Коды (адреса) регистров D и S указаны в поле адреса регистра регистровой модели МП (рис. 2.2). Например, команда MOV B,L (переслать содержимое регистра L в регистр В) имеет восьмеричный код 105, а команда MOV А,М (переслать содержимое ячейки памяти М, адрес которой указан в регистровой паре НL, в регистр А) — восьмеричный код 176. Пересылки из памяти/в память в МП КР580ВМ80А запрещены. По этой причине из 64 возможных пересылок, определяемых кодом 1DS8, разрешенными являются 63 пересылки между любыми регистрами, а также регистрами и памятью (код 166 зарезервирован для команды останова HLT).

Поскольку для кодирования многочисленных команд пересылок двухбитного кода 01 оказывается недостаточно, команды пересылок с мнемоникой, отличной от MOV, размещаются в группах команд, идентифицируемых кодами 00 и 11. В частности, двухбайтовые команды непосредственной загрузки регистров с мнемоникой MVI RD,B2 имеют восьмеричный код 0D6 В2, где 0х6 — тип команд загрузки 8-битных регистров с непосредственной адресацией; D (DDD) — код регистра приемника; В2 — непосредственный операнд (данные), содержащийся во втором байте команды. Коды (адреса) регистров D указаны в поле адреса регистра регистровой модели МП (рис. 2.2). Другие команд группы пересылок менее однородны по составу, кодирование этих команд труднее поддается формализации.

Двухбайтные команды ввода IN port и вывода OUT port осуществляют внешние обмены байтом данных между аккумулятором и регистром данных периферийного устройства. Адрес внешнего регистра указывается во втором байте команд. Наличие специальных команд ввода/вывода позволяет отделить адресное пространство ввода/вывода от адресного пространства памяти.

Обмен данными между памятью и аккумулятором также может осуществляться с помощью команд загрузки с мнемоникой LDA и запоминания с мнемоникой STA. Соответствующие команды с прямой адресацией операнда в памяти LDA addr и STA addr являются трехбайтными. Они выполняются за четыре машинных цикла. Однобайтные команды загрузки и запоминания с косвенной адресацией операнда в памяти имеют мнемоники LDAX и STAX. В качестве указателей памяти в этих командах используют пары регистров В и D.





Дата публикования: 2014-11-02; Прочитано: 1633 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...