Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 4 - V-пр+.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
415.74 Кб
Скачать

4.5. Команды перемещения данных

Эта группа команд выполняет передачу данных из регистра в регистр, размещение данных в памяти, размещение извлеченных из памяти данных в устройствах ввода - вывода (УBB). Каждая команда перемещения содержит адреса источника и назначения данных. Способы адресации ориентированы на то, где и как осуществляется поиск данных. Команды МОV R1 , R2 обеспечивают передачу операнда из одного регистра РОН в другой, так как адресация регистровая, то команды однобайтовые, их символика (rs)→ (rd). У команд источником или приемником операнда при пересылках может быть ячейка памяти, косвенно адресованная содержимым регистровой пары HL (MOV M, R; MOV R, M с символикой (M) → ( R ) и (R) → M). Всего этих однобайтовых команд 64. Двухбайтные команды пересылки MVI производят загрузку регистра или косвенно адресованной ячейки памяти вторым байтом команды, их символика b2 → R или b2 → M. Пересылку операнда из ячейки памяти в аккумулятор и обратно выполняют трехбайтные команды с прямой адресацией LDА и SТА, имеющие символику ((b2 +b3)) → (А) и (А) → (адрес) и команды с косвенной адресацией LDAX RP и STAX RP с символикой (RP) → А и (А) → (RР). Анализ команд перемещения данных в табл. 4.1 показывает, что команды LXI RP, b3 b2 загружают вторым и третьим байтом регистровые пары В, D, Н и SР; команды PUSH RP и POP RP пересылают данные из регистровой пары В, D, Н и РS в стек и обратно; команды LНLD b3 b2 и SНLD b3 b2 пересылают данные из регистровой пары H в ячейки памяти, адресованные вторым и третьим байтами команд; команды SPHL и РCHL загружают указатель стека и программный счетчик содержимым регистровой пары НL (их символика (HL ) → SP и (HL) → PC); команды ХСНB и XCHL производят обмен данными между парами DЕ и HL стеком и парой HL. Все эти команды не меняют состояния регистра признаков. При выполнении трехбайтовых команд МП воспринимает второй байт как младший, а третий - как старший при определении адреса или порядка пересылки.

Рассмотрим порядок выполнения некоторых команд МП. В команде с регистровой адресацией MОV А, L (рис. 4.7, а) буква A , следующая за мнемоникой МОV, указывает источник данных, а буква L - регистр приемник, после пересылки данные в А остаются.

а

б

в

Рис. 4.7. Порядок выполнения команды МП: а – с регистровой адресацией MOV A,L; б – с непосредственной адресацией LXI H; в – с прямой адресацией STA

4.6. Команды операций перехода и передачи управления

Эти команды имеют еще термин «ветвление» и служат для организации раз­ветвлений и вложения подпрограмм. Команды этой группы бывают безуслов­ными и условными. Команды условных переходов приведены в табл. 4.4, из которой следует, что условные команды обеспечивают переход только при строго определенном значении одного из разрядов регистра признаков F.

В регистр F заносятся и хранятся признаки (см. рис. 4.1) Z, S, АС, Р, СY ре­зультата вычисления X7X6X5X4X3X2X1ХО в АЛУ. По значениям признаков выполняются условные переходы в программах, циклическое повторение одной и той же операции, т. е. условие передачи управления. Код указателя условия передачи управления отображается в коде команды трехразрядным указателем ССС в соответствии с табл. 4.5.

Признаки результата вычислений Таблица 4.4

Функция

Условия перехода Число

Z =1

Z=0

СY=1

CY=0

Р=1

Р=0

S=1

S=0

тактов

байт

Переход

IZ

INZ

JC

JNC

JPE

IPO

JM

JP

11/17

3

Вызов

СZ

CNZ

CC

CNC

СРЕ

СРО

СМ

СР

11/ 17

3

Возврат

RZ

RNZ

RNC

RРЕ

RPO

RM

RP

5/11

1

Признаки условий передачи управления Таблица 4.5

Результат АЛУ

Условия передачи управления

Код ССС

Х7+Х6+….+Х0 не=0

Х7+Х6+….+Х0 =0

Х7=1

Х7=0

Если результат не нулевой,

то бит Z=0

Если результат нулевой,

то бит Z=1

Если не было переноса / заёма,

то бит CY=0

Если был перенос / заём,

то бит CY=1

Если результат не чётный,

то бит P=0

Если результат чётный,

то бит Р=1

Если результат положительный,

то бит S=0

Если результат отрицательный,

то бит S=1

000

001

010

011

100

101

110

111

Если соответствующее условие не выполнено, то передачи управления не происходит и выполняется следующая по порядку команда. Длительность услов­ных команд зависит от того, выполнены условия перехода или нет, поэтому в графе «число тактов» в числителе указана длительность выполнения команды при отсутствии перехода, а в знаменателе - при выполнении перехода.

Из анализа табл. 4.1 и 4.4 видно:

1. Команды перехода загружают счетчик команд PC вторым и третьим бай­том (b3 b2 →PC) и позволяют организовать циклы и разветвления путем пе­рехода к новой последовательности команд. Однако команды перехода не допус­кают возврата в то место программы, откуда был осуществлен переход. В таб­л. 4.1 все восемь команд перехода (под номером 64) имеют мнемонику JCON b3 b2.

2. Команды вызова дают возможность заполнить текущее значение адреса в счетчике команд и возвратиться к прерванной последовательности после вы­полнения подпрограммы. Эти команды при реализации перехода заносят в стек содержимое счетчика команд, который, в свою очередь, заполняется вторым и третьим байтами команды, указывающей начальный адрес подпрограммы. В табл. 4.1 все восемь команд вызова (под номером 66) имеют мнемонику Сcon b3 b2 . Восемь однобайтовых команд возврата в табл. 4.1 имеют мнемонику Rcon. Команды возврата извлекают из стека содержимое двух ячеек и загружают им счетчик команд, при этом заканчивается выполнение подпрограммы. На сле­дующем шаге МП обращается к тому месту программы, из которого произошел пере­ход к подпрограмме. Команды вызова и возврата дают возможность сокра­тить объем разрабатываемых программ за счет неоднократного использования их частей.

Условные команды определяют способность МП анализировать ситуацию и принимать решения. Команды обработки денных формируют признаки, кото­рые проверяются при выполнении условных команд и определяют последующий ход выполнения программы.

Команда безусловного перехода JМP (перейти) является трехбайтовой не­посредственной адресацией. Используется она для изменения адреса в счетчике команд МП (ее символика b3 b2 →РС). Пример использования такой команды приведен на рис. 4.8.

Рис. 4.8. Команда безусловного перехода JМP

Здесь адрес 2000 Н загружен в счетчик команд, информа­ция о нем следует непосредственно за КОП, младшая часть адреса находится во 2-й байте памяти, а старшая в 3-м байте. Эта команда будет использована для запуска счетчика команд в момент начала выполнения новой программы, т. е. команду безусловного перехода можно рассматривать как способ загрузки новой информации об адресе в счетчик команд.

Особое место среди команд передачи управления занимают однобайтовые ко­манды повторного старта RST. Они представляют собой команды вызова с фиксированными адресами перехода, причем точка перехода задается кодом команды и используется для обеспечения ввода в подпрограммы обработки пре­рывания. В этом случае код команды RSТ формируется аппаратными средствами и запрашивается MП с помощью сигнала обслуживания прерывания. Команды RST, как и команды вызова, перегружают содержимое счетчика команд (СК) в стек, но счетчик загружается иначе: в старший байт CК заносится 00, а в младший - вектор прерывания, задаю­щий начальный адрес подпрограммы. Вектор прерывания задает один из восьми ареалов в первых 64 байтах памяти (табл. 4.6).

Объем каждого ареала составляет 8 байт. Если подпрограмма обработки прерывания превышает этот объем, то по адресу вектора прерывания записыва­ется команда JМР, вызывающая переход к остальной части подпрограммы. От­личием команд РSТ от команд вызова является также сброс внутреннего триг­гера разрешения прерывания (РП =0). Этим обеспечивается запрет на обработку очередных запросов в ходе выполнения данной подпрограммы.

Адреса ареалов прерывания Таблица 4.6

Мнемоника

Код команды

Начальный адрес ареала

Мнемоника

Код команды

Начальный адрес ареала

RST0

С7

0000

RS T4

Е7

0020

RSТ1

CF

0008

0010

RS Т5

RS Т6

EF

0026

RST2

D7

F7

0030

RST3

DF

0018

RS T7

FF

0038

К командам передачи управления относят команду PCHL, которая осу­ществляет передачу управления по адресу, содержащемуся в паре регистров HL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]