Так как адрес операнда и тип преобразования неизменны, то Коп имеет характер константы – 3Fh.
Код операции после считывания из программной памяти фиксируется в регистре IR.
После дешифрации, команда опознается, идентифицируется операнд и тип преобразования над ним. Исполнительная фаза – внутренняя.
Команда выполняется за один цикл и 4 такта.
Формат неявно адресуемого операнда в командахCMC, STC – один бит.
Преобразованию в таких командах подлежит бит переноса CY регистра флагов процессора. Расположение операнда и тип преобразования предопределены и неизменны. Поэтому Коп имеет характер константы и равны, соответственно –
Все команды неявной адресации – однобайтные. Выполняются за один цикл.
Команд неявной адресации – немного. Выполняемые ими преобразования – специфичны.
Однако, неявная адресация используется очень широко на уровне команды в целом. Например, все команды преобразования операндов используют этот тип адресации.
Стековая адресация данных. Адресация называется стековой, если для сохранения данные/адреса используется специальная область оперативной памяти, адресуемая указателем стека (SP). Указателем служит специальный внутренний 16-ти разрядный регистр – SP.
Такая адресация является частным случаем косвенной регистровой адресации.
Стековая адресация применяется в 1-байтных командах загрузки в стек PUSH PSW и PUSH rp и извлечения из стека POP PSW и POP rp. Кроме того, стековая адресация используется в 3-байтных командах безусловного CALL addr и условного вызова Ccond addr, безусловного RET и условного возврата Rcond.
При выполнении команд стековой адресации выполняются следующие принципы.
Первое. Стековая адресация означает, что содержимое указателя стека SP является адресом ячейки памяти для хранения данных, причем этот адрес в неявном виде подразумевается в кодах соответствующих однобайтовых команд.
Второе. Оперируют эти команды с двумя байтами данных (словами). В командах PUSH rp и PUSH PSW источником операндов являются регистровые пары ВС, DЕ, НL, А и F, а приемником— ячейки памяти ((SP) – 1) и ((SP) – 2). Декремент указателя стека SP при выполнении этих команд производится автоматически. В командах POP rp и POP PSW источником операндов являются ячейки памяти (SP) и {SP)+1, а получателем — пары регистров ВС, DЕ, Н L , А и F.
Третье. При выполнении этих команд инкремент указателя стека SP производится автоматически с установкой окончательного его значения (SP) + 2 или (SP) – 2.
В соответствии с этими принципами стековая адресация называется иногда непрямой с автоиндексацией.
Реализация стековой адресации на примере команды загрузки в стек PUSH rp иллюстрируется рисунком 21.
Процедура выполнения команды PUSH rp может быть описанатак.
В стеке требуется сохранить содержимое BCh, BCl – т.е. старший и младший байт регистровой пары BC.
Для этого выполняются следующие шаги
Шаг1. (SP) ← (SP) –1
Шаг2. ((SP)) ← (BCh)
Шаг3. (SP) ← (SP) –1
Шаг4. ((SP)) ← (BCl)
Указатель стека после выполнения команды содержит адрес (SP)–2.
Более детально процедуру реализации команды PUSH HLможно описать так.
Программа однобайтная и обеспечивает сохранение содержимого старшего и младшего байта регистровой пары HL (источника) в последовательных ячейках стека, адресуемых указателем стека.
В первом машинном цикле OFпо адресу, содержащемуся в PC, из программной памяти выбирается КК. Структура КК очевидна из Рис.21 . В КК в явном виде указан код регистровой пары – источника шестнадцатиразрядного операнда,
По коду операции процессором осуществляется
§ идентификация команды
§ определяется источник операнда
§ определяется источник адреса вершины стека – (SP)вер.
В следующем цикле MW(исполнительная фаза) реализуются процедуры
Шаг1. (SP) ← (SP)вер –1
Шаг2. ((SP)) ← (HLh)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.