Дудко алексей львович захаров валерий николаевич




НазваниеДудко алексей львович захаров валерий николаевич
страница5/22
Дата26.12.2012
Размер3.11 Mb.
ТипДокументы
1   2   3   4   5   6   7   8   9   ...   22

4.6. СИСТЕМА КОМАНД И СПОСОБЫ АДРЕСАЦИИ


Система команд микропроцес­сора КР580ИК80А представлена 244 кодами операций, которые могут быть расклассифицированы по разным признакам. Наибо­лее существенными для ознакомления с особенностями их ис­пользования являются следующие три признака: длина коман­ды, или число занимаемых байтов, функциональный признак, или выполняемые командой операции, и способ адресации. Полный перечень команд приведен в приложении 1. В таблице приведены символическая запись (мнемокод) команды, описа­ние выполняемых ею функций, длина в байтах, обозначения изменяемых флагов и число машинных тактов, занимаемых при ее выполнении. Из 256 возможных кодов (при восьми двоичных разрядах) не используются следующие 12 кодовых комбинаций (в восьмеричной записи): 010, 020, 030, 040, 050, 060, 070, 313, 331, 335, 355 и 375. Этим и объясняется коли­чество всех команд: 244. Команды в таблице разбиты на три группы по числу занимаемых байтов: все команды делятся на однобайтовые, двухбайтовые и трехбайтовые. При этом первый байт всегда отводится под код команды, а второй и третий байты содержат либо данные, либо адрес, по которому они находятся в памяти (рис. 4.6).

Восьмеричные коды всех однобайтовых, двухбайтовых и трехбайтовых команд приведены соответственно в табл. 4.1, 4.2 и 4.3. При этом в табл. 4.1 наряду с обычными указаны обобщенные коды, т. е. коды, содержащие кроме восьмерич­ных цифр кодовые переменные S, D и А. В табл. 4.1 если код команды содержит только цифры, это означает, что существует единственная команда с соответствующим кодом. Некоторые коды кроме цифр содержат буквы: S (первые И команд), D (третья команда) и А (последняя команда). Таким кодам соответствуют множества команд. При этом каждой команде из первых 11 команд, кроме третьей, соответствует группа конкретных команд, мнемокод которых вместо символа г (регистр) содержит обозначения конкретных регистров (В, С, D, Е, Н, L), либо символ памяти (М), либо символ аккуму­лятора (А). Соответствующий конкретный восьмеричный код команды вместо символа S должен содержать одну из цифр: О, 1, 2, 3, 4, 5, 6, 7 соответственно, т. е. символу В в мнемо­коде соответствует цифра 0 в восьмеричном коде, символу С в мнемокоде — цифра 1 в восьмеричном коде и т. д,. . ., симво­лу М в мнемокоде — цифра 6 в восьмеричном коде и, наконец, символу А в мнемокоде — цифра 7 в восьмеричном коде. Для третьей команды в табл. 4.1 точно такая же аналогия соблюда­ется для пар символов гь г2 и D, S. Последняя команда табли­цы содержит символ А в мнемокоде и в восьмеричном коде. Она соответствует группе из восьми конкретных команд, в каж­дой из которых символ А принимает одно из значений: О, 1, ... ...,7.




Рис. 4.6. Форматы команд: однобайтовой (а), двухбайтовой (б), трехбай­товой (в)



Таблица 4.1

Код

Команда

Код

Команда





Код

Команда

OS4

INR

r



051

DAD

H



370

RM



OS5

DCR

r



071

DAD

SP

311

RET



1DS

MOV

r1r2

301

POP

В



007

RLC



20S

ADD

r



321

POP

D



017

RRC



21S

ADC

r



341

POP

H



027

RAL



22S

SUB

r



361

POP

PSW

037

RAR



23S

SBB

r



305

PUSH

В



353

XCHG

24S

ANA

r



325

PUSH

D



343

XTHL

25S

XRA

r



345

PUSH

H



371

SPHL

26S

ORA

r



365

PUSH

PSW

351

PCHL

27S

CMP

r



002

STAX

В



166

HLT



003

INX

в



022

STAX

D



000

NOP



023

INX

D



012

LDAX

В



363

DI



043

INX

H



032

LDAX

D



373

El



063

INX

SP

300

RNZ





047

DAA



013

OCX

В



310

RZ





057

CMA



033

OCX

D



320

RNC





067

STC



053

OCX

H



330

RC





077

CMC



073

DCX

SP

340

RPO





3A7

RST

A

011

DAD

В



350

RPE











031

DAD

D



360

RP











Таблица 4.2

Код

Команда

Код

Команда

306

ADI







323

OUT





316

ACI







006



MVI

В





326

SUI







016



MVI

С





336

SBI







026



MVI

D





346

ANI







036



MVI

E





356

XRI







046



MVI

H





366

ORI







056



MVI

L





376

CPI







066



MVI

M





333

IN







076



MVI

A





Таблица 4.3




Код

Команда

Код

Команда




302

JNZ

<В2><ВЗ>

344

СРО






312

JZ

<В2><ВЗ>

354

СРЕ






322

JNC

<В2><ВЗ>

364

СР






332

JC

<В2><ВЗ>

374

СМ






342

JPO

<В2><ВЗ>

315

CALL






352

JPE

<В2><ВЗ>

001

LXIB






362

JP

<В2><ВЗ>

021

LXI D






372

JM

<В2><ВЗ>

041

LXIH






303

JMP

<В2><ВЗ>

061

LXISP






304

CNZ

<В2><ВЗ>

062

STA






314

CZ

<В2><ВЗ>

072

LDA






324

CNC

<В2><ВЗ>

042

SHLD






334

СС

<В2><ВЗ>

052

LHLD







Как видно из табл. 4.2, микропроцессор КР580ИК80А может выполнять всего 18 двухбайтовых и 26 трехбайтовых команд, приведенных в табл. 4.3.

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

Для МП КР580ИК80А существуют следующие четыре воз­можных способа адресации: непосредственная, прямая, регист­ровая и косвенная.

Непосредственная адресация является наиболее экономичным способом хранения и поиска информации, поскольку необходи­мые данные содержит сама команда. Эти данные содержатся во втором и третьем байтах трехбайтовой команды или во вто­ром байте двухбайтовой команды. В случае трехбайтовой коман­ды младшие разряды 16-битового числа содержатся во втором байте команды, а старшие - в третьем (рис. 4.7,а).

Менее экономичной, но также довольно простой является прямая адресация. В этом случае во втором и третьем байтах команды содержится полный 16-разрядный адрес памяти. Млад­шим байтом адреса является <В2>, старшим — <ВЗ) (рис. 4.7,6). Таким способом можно адресоваться к любой ячейке адресного пространства памяти.

При регистровой адресации код команды содержит указание на регистр или пару регистров, в которых содержатся данные. Используемые в регистровой адресации команды являются однобайтовыми (рис. 4.7,в). Возможность указания пары ре­гистров в однобайтовой команде реализуется за счет того, что адреса регистров являются трехразрядными двоичными кодами.

Косвенная адресация отличается от регистровой лишь тем, что в регистровой паре, определяемой кодом команды, содержатся не данные, а полный 16-разрядный адрес ячейки памяти,в кото­рой имеются эти данные (рис. 4.7,г). Старший байт адреса за­писывается в первом регистре пары, а младший байт — во вто­ром. Обычно указателем адреса при косвенной адресации явля­ются пара регистров Н, т. е. регистры Н, L, но иногда использу­ются и пары В и D.

При всевозможных пересылках данных из регистров в регист­ры или из памяти в регистры или обратно различают регистры — источники данных и регистры — приемники данных. Первые обо­значаются символом S (source — источник), вторые — симво­лом D (destination — место назначения). В регистровых парах В, С; D, Е и Н, L старшими являются первые регистры пар, т. е. регистры В, D, Н соответственно. Коды регистров общего назначения, пар регистров и флагов строго фиксированы (табл. 4.4).

В табл. 4.4 обозначение условия в мнемокоде команды в зависимости от значения флагов расшифровывается следую­щим образом: NZ — результат ненулевой; Z — результат нуле­вой; NC — нет переноса; С — есть перенос; РО - нет четности; РЕ — есть четность; Р — результат положительный (плюс) ; М -результат отрицательный (минус).



Рис. 4.7. Способы адресации: непосредственная (а), прямая (б), регист­ровая (в) и косвенная (г)


Все команды по функциональному признаку могут быть разбиты на следующие пять групп: группа команд пересылки данных, арифметические команды, логические команды, коман­ды переходов и команды управления и работы со стеком. Рас­смотрим работу наиболее типичных представителей этих групп команд, многие из которых вошли в описываемую ниже про­грамму-монитор (см. § 7.4).


4.6.1. ГРУППА КОМАНД ПЕРЕСЫЛКИ ДАННЫХ


В этой группе встречаются команды, пересылающие содержащиеся в них данные в регист­ры и в память, а также команды пересылки данных между ре­гистрами и между регистрами и памятью. Рассмотрим команды пересылки данных из одного регистра МП в другой, из регистра МП в ячейку ОЗУ и из ячейки ОЗУ в регистр МП. В мнемо­нике команд, используемых в данной книге, порядок пересыл­ки данных всегда предполагается в направлении от крайнего правого операнда к следующему слева операнду, отделенному от первого запятой.

Команда MOV rt, r2. Эта команда предназначена для пересыл­ки данных из регистра S (источник, или г2) в регистр D (прием­ник, или rt). В качестве регистра-источника и регистра-прием­ника может выступать любой из регистров В, С, D, H, L или аккумулятор А. Содержимое регистра-источника при этом не меняется. В регистре-приемнике просто появляется копия содержимого регистра-источника. На рис. 4.8,а приведен формат этой команды. Чтобы получить конкретную команду, необхо­димо вместо символов D и S в формате команды рис. 4.8,я проставить из табл. 4.4 коды соответствующих регистров. На­пример, команда 01 010 000 В пересылает данные из регист­ра В в регистр D (в регистре D после выполнения команды бу­дут содержаться т© же данные, что и в регистре В). В восьмерич­ной системе это число (код команды) будет представлено как 120Q (см. список команд в приложении 1).

Команда MOV М, г. Эта команда может быть получена из пре­дыдущей заменой символов D кодом М из табл. 4.4. Команда пересылает данные из регистра-источника в ячейку памяти по адресу, указанному в регистровой паре Н, L. Регистром-источ­ником может служить любой регистр В, С, D, H, L или аккуму­лятор А. После выполнения команды в ячейке памяти появится копия содержимого регистра-источника. Содержимое самого регистра не изменится. Код конкретной команды получается фиксацией кода регистра-источника (рис. 4.8,6).




Рис. 4.8. Примеры размещения некоторых команд пересылки данных в байтах




Рис. 4.9. Примеры размещения некоторых арифметических команд в байтах


Команда MOV г, М. Команда также получается из первой за­меной символов S кодом М из табл. 4.4. Команда пересылает данные из ячейки памяти по адресу, указанному в регистровой паре Н, L, в регистр-приемник, в качестве которого может использоваться любой регистр В, С, D, H, L или аккумулятор А. После выполнения команды в регистре-приемнике появляется копия содержимого ячейки памяти (рис. 4.8,в).

На этом закончим рассмотрение примеров команд этой груп­пы. Отметим лишь, что все команды из группы пересылки дан­ных на значения флагов влияния не оказывают.


4.6.2. ГРУППА АРИФМЕТИЧЕСКИХ КОМАНД


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

Команда ADD r. Эта команда выполняет сложение содержимо­го регистра-источника S с содержимым аккумулятора А. Резуль­тат сложения помещается в аккумулятор. Чтобы получить кон­кретную команду, необходимо в формате команды вместо сим­волов S проставить код регистра-источника из табл. 4.4. Напри­мер, команда 10 000 001 производит сложение содержимого регистра С с содержимым аккумулятора А. Двоичный код этой команды 10 000 001 В; в восьмеричной системе это число пред­ставляется кодом 201Q. Это представление является восьмерич­ным кодом команды ADD С, выполняющей указанное выше сложение (см. список команд в приложении 1). Размещение команды ADD г в байте приведено на рис. 4.9,д.

Команда SUB r. Команда выполняет вычитание содержимого регистра-источника S из содержимого аккумулятора. Результат заносится в аккумулятор (рис. 4.9,6). Например, команда 10 010 ОН В выполняет вычитание содержимого регистра Е из содержимого регистра А и помещает результат в аккумулятор. Код этой команды SUB Е — 223 Q.
1   2   3   4   5   6   7   8   9   ...   22

Похожие:

Дудко алексей львович захаров валерий николаевич iconРазвитие высших форм запоминания 1 Леонтьев Алексей Николаевич
Леонтьев Алексей Николаевич (5 февраля 1903 — 21 января 1979) — советский психолог, доктор психологических наук, профессор, академик...
Дудко алексей львович захаров валерий николаевич iconСвидетельство о государственной регистрации программы для ЭВМ регистрационный номер: 2011618 693 ( 08. 1 2011) Заявка: 2011616 954 ( 19. 0 2011)
Алексеевич, Липов Денис Игоревич, Петрик Алексей Николаевич, Лобанов Павел Сергеевич, Семенов Роман Александрович, Киселев Алексей...
Дудко алексей львович захаров валерий николаевич iconРеферат Авторы: Захаров Михаил Юрьевич, Виноградов Кирилл Евгеньевич, Кренев Александр Николаевич
Образования "Ярославский государственный университет имени П. Г. Демидова" 150000, г. Ярославль, ул. Советская, 14
Дудко алексей львович захаров валерий николаевич iconАлексей Николаевич Толстой Гиперболоид инженера Гарина
Этот роман написан в 1926–1927 годах. Переработан, со включением новых глав, в 1937 году
Дудко алексей львович захаров валерий николаевич iconЛекции по общей психологии
Алексей Николаевич Леонтьев (1903-1979) выдающийся советский психолог, действительный член апн рсфср, доктор педагогических наук,...
Дудко алексей львович захаров валерий николаевич iconРазработка принципов однопроходной прокатки изделий из волокнистых композиционных материалов
Мануйлов Виталий Федорович, Соколов Алексей Викторович, Нуждин Виталий Николаевич, Преображенский Евгений Владимирович
Дудко алексей львович захаров валерий николаевич iconВасилий Александрович Токарев П. Михайлов Игорь Львович Андреев Вячеслав Николаевич Козляков День народного единства: биография праздника
Книга посвящена драматичным событиям российской истории XVII в. – Смутному времени. На основе широкого круга источников и литературы...
Дудко алексей львович захаров валерий николаевич iconКонтрольная работа по литературе в 7 классе
Мать, Надежда Осиповна, была правнучкой Ганнибала. Александр Львович литературой не увлекался, а вот его брат, Сергей Львович,- был...
Дудко алексей львович захаров валерий николаевич iconПроисхождение Александра Сергеевича Пушкина
Сергей Львович (1767—1848), светский острослов и поэт-любитель, дядя по отцу, Василий Львович (1766—1830), был известным поэтом круга...
Дудко алексей львович захаров валерий николаевич iconАлексей Николаевич Толстой Гиперболоид инженера Гарина
«Аэлита. Гиперболоид инженера Гарина»: Гос уч пед из во Министерства просвещения бсср; Минск; 1959
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница