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

Команда перемещения данных микропроцессора К580

Микропроцессор К580. Прямая, непосредственная и косвенная адресация. Команды перемещения данных, загрузки аккумулятора, запоминания данных, непосредственной загрузки пары регистров, обмена содержимого пар регистров. Команды операции со стеком.

Дон ГТУ

Лабораторная работа № 2

Команда перемещения данных микропроцессора К580


Цель лабораторной работы - изучить форматы команд микропроцессора К580, методы адресации, команды перемещения данных.


1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

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

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

Методы адресации

Прямая адресация - это такой метод адресации, когда каждая команда состоит из кода операции (первый байт) и адреса операнда, содержащегося во втором и третьем байтах (например, рассмотренная выше команда LDA). Прямая адресация - самая простая, но зато и самая неэкономичная с точки зрения объёма памяти и времени выполнения (13 машинных тактов).

Непосредственная адресация - когда команда состоит из кода операции (первый байт) и байта данных (второй байт), который подлежит обработке микропроцессором. Таким образом, данные непосредственно содержатся в самой команде.

Косвенная адресация позволяет компактно адресоваться ко всем ячейкам памяти микропроцессора. В этом случае в поле операнда указывается код пары регистров, содержащих адрес памяти, по которому расположен байт данных. Адрес может содержаться в парах регистров HL(основной указатель адреса), а также в парах регистров ВС, DE.

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

Команды перемещения данных MOVR1, R2 предназначены для перемещения байта данных из регистра R2 в регистр R1. При выполнении этой команды содержимое регистра R2 не изменяется. Формат команды - одно машинное слово вида 01 dddSSS, гдеddd- код регистра приемника R1, SSS- код регистра источника R2 (см. таблицу).

Таблица 1.1 – Форматы команд

Обозначение Двоичные коды Обозначение Двоичные коды
B 000 C 001
D 010 E 011
H 100 L 101
M 110 A 111
(память) (аккумулятор)

Если на месте R1 или R.2. стоит М (память), то происходит перемещение данных в ячейку или из ячейки памяти, адрес которой записан в паре регистров HL. Поэтому перед выполнением этих команд необходимо занести в пару регистров HLнужный адрес ячейки памяти.

Команда перемещения данных с непосредственной адресацией MVIRпредназначена для перемещения байта данных, записанного во втором байте команды, в регистр R (или ячейку памяти М с адресом, содержащимся в регистровой паре HL). Формат команды 000ddd <байт данных>, где ddd– код R (см. таблицу).

Команда загрузки аккумулятора LDR – 3-байтная команда, предназначенная для загрузки в аккумулятор А содержимого ячейки памяти, адрес которой записан во втором и третьем байтах команды.

Команда запоминания данных STA- 3-байтная команда, предназначенная для передачи содержимого аккумулятора в ячейку памяти с адресом, записанным во втором и третьем байтах команды.

Команды загрузки и запоминания с косвенной адресацией LDAXRи STAXRпредназначены для загрузки в аккумулятор содержимого ячейки памяти, адрес которой содержится в паре регистров, и занесения содержимого аккумулятора в ячейку памяти, адрес которой содержится в паре регистров. Операнд Rкоманды содержит код первого регистра регистровой пары, в которой содержится адрес ячейки памяти (ВС или DE). Длина - один байт, двоичные коды – 00rr010 и 00rr0010, где rr- первые две цифры кода первого регистра регистровой пары.

Команды непосредственной загрузки пары регистров LXIR - 3-байтовая команда загрузки пары регистров ВС, DЕ , HLили указателя стека SР адресом, находящимсяво втором и третьем байтах команды.

Команды загрузки пары регистров HLи записи содержимого HLв память LHLDи SHLDзагружают регистры HLиз пары ячеек памяти и записывают содержимое регистров HLв пару ячеек памяти. Адрес первой ячейки, из которой или в которую загружается регистр L, указывается во втором и третьем байтах команды. Из следующей ячейки или в нее загружается регистр H.

Команда обмена содержимого пар регистров XCHG: H – D, L – E. Формат команды - одно машинное слово.

Команда обмена XTHLпары регистров HLи двух верхних ячеек стека, т.е. последних загруженных в стек данных L - (SP), H - (SP+1).

Формат команды - один байт, содержимое указателя стека SP- не изменяется.

Команда SPHLпередает содержимое пары регистров HLв указатель команды - один байт.

Команда PCHLпередает содержимое пары регистров HLв счетчик адреса. Таким образом, следующая команда программы выбирается микропроцессором из ячейки с указанным адресом. Формат команды - один байт.

Команды операции со стеком. Команда PUSHRзасылает в стек содержимое пары регистров. Содержимое старшего регистра (В, D, H ) пересылается в ячейку памяти, адрес которой на один меньше содержимого указателя стека SP, младший регистр (С, Е, L) пересылается в ячейку памяти, на два меньше содержимого указателя стека SP. Со­держимое указателя стека уменьшается на два. Формат команды - один байт.

Команда POPRзасылает в пару регистров содержимое двух последних ячеек стека (в младший регистр - ячейку с адресом, равным содержимому указателя стека SP, в старший регистр - ячейку с адресом на 1 больше), затем указатель стека увеличивается на два. Формат команды - один байт.

ОТКРЫТЬ САМ ДОКУМЕНТ В НОВОМ ОКНЕ

ДОБАВИТЬ КОММЕНТАРИЙ [можно без регистрации]

Ваше имя:

Комментарий