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

4. Программирование микропроцессоров

Работа микропроцессорного устройства основана на обработке информа­ции, представляемой двоичными сигналами объемом в один, два или три байта, называемой машинной программой. Например, однобайтная команда загрузки данных в аккумулятор, имеет вид 0011 1010, а адрес ячейки памяти, имеющей номер 103, в двоичном коде имеет вид 0000, 0000, 0110 , 0111. Человеку практи­чески невозможно понять программу микропроцессора, представленную в такой форме.

Программа на машинном языке становится проще для восприятия, если она представлена в шестнадцатеричном коде (Н-коде).

При составлении программ, особенно сложных, неизбежны ошибки. Об­на­ружить их среди исходных по форме команд непросто, поэтому для удобства про­граммистов и пользователей разработан мнемокод (названный так по имени греческой богини памяти - Мнемозины). Он представляет собой последователь­ность букв, взятых из английского алфавита, заме­няющих полное слово или фразу, определяющую смысл команды. Например, команда сложения содержи­мого аккумулятора с операндом, размещенным в оче­редной ячейке памяти, за­писывается в мнемокоде буквами АDI(сокращение фразы add immediate - сло­жить непосредственно). Перечень команд для микро­процессора К580ВМ80 дан в табл. 4.1, которая содержит 16 строк и 16 граф. Каждая строка пронумеро­вана шестнадцатеричными числами старшей тетрады кода команды, а каждая графа числами младшей тетрады кода команды. Например, код команды АDI – С6. В двоичной системе счисления коду ADI соответствует число 11000110.

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

При составлении программ на ассемблере к мнемокодам команд добавляют метки, указывающие на ячейки памяти, с которыми оперирует программа. Следует напомнить, что в микропроцессорах операции сложения, сравнения, инкремента, декремента, отрицания, сдвига (перестановка), И, ИЛИ, ИЛИ ИСКЛЮЧАЮЩИЕ, дополнение, сброс, инициализация выполняет арифметическо-логическое устройство (АЛУ), состоящее из сумматора, регистра состояния и устройства сдвига. Данные (операнды) на сумматор АЛУ подаются из ак­кумулятора (регистр А) и регистра временного хранения (одного из регистров РОН), а результат из АЛУ пересылается обратно в аккумулятор посредством внутренней шины данных. В состав РОН входят восемь 8-разрядных регистров В, С, D, Е, Н, L , W и Z. Первые шесть могут объединяться в 16-разрядные пары В и С, D и Е, Н и L, и три 16-разрядных регистра-адреса (РА), указатель стека (УС или SP) и счета команд (СК или PC).

Для лучшего понимания системы команд MП K580BМ80 удобно поль­зоваться его программистской моделью (рис. 4.1), соответствующей упрощен­ной структуре МП и содержащей только узлы, наиболее важные для понимания программистом процесса его работы.

В верхней части (см. рис. 4.1) приведены все программно-доступные (адре­суемые в командах в явной или неявной формах) узлы микропроцессора и па­мяти, а в нижней части - программно-недоступные узлы МП.

Система команд микропроцессора Таблица 4.1

0

1

2

3

4

5

6

7

8

9

А

В

С

D

E

F

0

NOP

LXI

STAX

INX

INR

DCR

MVI

RLC

DAD

LDAX

DCX

INR

DCR

MVI

RRC

0

B,nnnn

B

B

B

B

B,nn

B

B

B

C

C

C,nn

1

LXI

STAX

INX

INR

DCR

MVI

RAL

DAD

LDAX

DCX

INR

DCR

MVI

RAR

1

D,nnnn

D

D

D

D

D,nn

D

D

D

E

E

E,nn

2

LXI

SHLD

INX

INR

DCR

MVI

DAA

DAD

LDAX

DCX

INR

DCR

MVI

CMA

2

H,nnnn

Nnnn

H

H

H

H,nn

H

nnnn

H

L

L

L,nn

3

LXI

STA

INX

INR

DCR

MVI

STC

DAD

LDAX

DCX

INR

DCR

MVI

CMC

3

SP,nnnn

nnnn

SP

M

M

M,nn

SP

nnnn

SP

A

A

A,nn

4

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

4

B,B

B,C

B,D

B,E

B,H

B,L

B,M

B,A

C,B

C,C

C,D

C,E

C,H

C,L

C,M

C,A

5

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

5

D,B

D,C

D,D

D,E

D,H

D,L

D,M

D,A

E,B

E,C

E,D

E,E

E,H

E,L

E,M

E,A

6

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

6

H,B

H,C

H,D

H,E

H,H

H,L

H,M

H,A

L,B

L,C

L,D

L,E

L,H

L,L

L,M

L,A

7

MOV

MOV

MOV

MOV

MOV

MOV

HLT

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

MOV

7

M,B

M,C

M,D

M,E

M,H

M,L

M,A

A,B

A,C

A,D

A,E

A,H

A,L

A,M

A,A

8

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADD

ADC

ADC

ADC

ADC

ADC

ADC

ADC

ADC

8

B

C

D

E

H

L

M

A

B

C

D

E

H

L

M

A

9

SUB

SUB

SUB

SUB

SUB

SUB

SUB

SUB

SBB

SBB

SBB

SBB

SBB

SBB

SBB

SBB

9

B

C

D

E

H

L

M

A

B

C

D

E

H

L

M

A

A

ANA

ANA

ANA

ANA

ANA

ANA

ANA

ANA

XRA

XRA

XRA

XRA

XRA

XRA

XRA

XRA

A

B

C

D

E

H

L

M

A

B

C

D

E

H

L

M

A

B

ORA

ORA

ORA

ORA

ORA

ORA

ORA

ORA

CMP

CMP

CMP

CMP

CMP

CMP

CMP

CMP

B

B

C

D

E

H

L

M

A

B

C

D

E

H

L

M

A

C

RNZ

POP

JNZ

JMP

CNZ

PUSH

ADI

RST

RZ

RET

JZ

CZ

CALL

ACI

RST

C

B

nnnn

nnnn

nnnn

B

nn

0

nnnn

nnnn

nnnn

nn

1

D

RNC

POP

JNC

OUT

CNC

PUSH

SUI

RST

RNC

JC

IN

CC

SBI

RST

D

D

nnnn

nn

nnnn

D

nn

2

nnnn

nn

nnnn

nn

3

E

RPO

POP

JP

XTHL

CPO

PUSH

ANI

RST

RPO

PCHL

JPE

XCHG

CPE

XRI

RST

E

H

nnnn

nnnn

H

nn

4

nnnn

nnnn

nn

5

F

RP

POP

JP

DI

CP

PUSH

ORI

RST

RM

SPHL

JM

EI

CM

CPI

RST

F

PSW

nnnn

nnnn

PSW

nn

6

nnnn

nnnn

nn

7

0

1

2

3

4

5

6

7

8

9

А

В

С

D

E

F

Программно-доступные узлы

СК (РС)

15 0

УС (SР)

15 0

Н L

15 87 0

В С

Д Е

15 87 0

А

7 0

ПЗУ

7 0

ОЗУ

стек

S

Z

O

AC

O

P

I

F

2 0

7 6 5 4 3 2 1 0

Внешнее устройство

Программно-недоступные узлы

РА

15 0

W

7 0

Z

7 0

АЛУ

7 0

7 0

7 0

7 0

БР

Устройство управления

Рис. 4.1. Программистская модель МП

Трехбайтные команды

1 байт

2 байт

3 байт

rp

ccc

Двухбайтные команды

1 байт

2 байт

DDD

Поле кода операции

а

в

Однобайтные команды

DDD

SSS

7 5 3 2 0 0

SSS

DDD

2 0

2 0

5 4 3 0

б

д

е

ж

з

Рис. 4.2. Форматы команд

Программно дос­тупны регистры РОН с именами А, В, С, Д, Е, Н, L , PC, SP, регистр признаков F и память (постоянная, оперативная, стек).

К программно-недоступным относятся регистры РОН с именами W, Z и РА, АЛУ, устройство управления (УУ) и буферный регистр (БР).

Шестнадцатиразрядный счетчик команд PC указывает адрес ячейки памя­ти, в которой записана требуемая команда или данные. После выполнения МП команды значение счетчика увеличивается на единицу, что обеспечивает после­довательное выполнение программы.

Регистров общего назначения (РОН) восемь, шесть из них программно дос­тупны для временного хранения. B регистрах ВС, ДЕ и НL можно производить операции над адресами и двоичными числами.

Аккумулятор А восьмиразрядный, выполняет больше функций, чем РОН, так как часть команд МП работает только с ним.

Регистр признаков F предназначен для занесения пяти признаков резуль­тата выполнения операций в АЛУ, имеющих определенный смысл и свое мне­моническое обозначение (отрицательного результата, переполнения разрядной сетки, переноса из 3-го в 4-й разряд, четности и нулевого результата). С помо­щью соответствующих команд, заложенных в программу, можно читать и час­тично изменять его содержимое.

Указатель стека SР используется для указания адреса некоторой области оперативной памяти, называемой стеком. Последовательность считывания дан­ных из стека обратна последовательности их записи.

Основная память МП состоит из двух частей: ПЗУ и ОЗУ. МП может об­рабатывать только те данные команды программы и операнды, которые нахо­дятся в основной памяти. Данные из внешней памяти (например, на НГМД) необходимо переносить в ОЗУ.

Первые 16 Кбайт с адресами от 0000 до 4000 используются для загрузки и выполнения системных и прикладных программ. Если для их работы требуется больший объем памяти, то для них можно использовать буферную область ОЗУ с адресами от 4000 до 8000, так называемую буферную область памяти. Область ОЗУ объемом 16 Кбайт с адресами от 8000 до С000 называется экранной и используется для занесения программ и данных. Ячейки памяти с адресами от С000 до FFFF относятся к буферной области программ и данных, в которой 7 Кбайт старшей области отведены для обслуживания устройств ввода - вывода и программы "Монитор",

Внешние устройства МП - клавиатура, дисплей, различные датчики и исполнительные устройства подключаются к МП с помощью блоков ввода - вывода, которые работая под управлением программы МП, обеспечивают ввод и вывод информации. Блок ввода - вывода, называемый интерфейсным блоком, обеспечивает соединение МП и ВУ, имеющих различный уровень и форму сигналов, различные шины. К МП KP580 можно подключать 2 * 8 = = 512 устройств ввода - вывода, выбор которых обеспечивается специальной командой по восьми младшим разрядам шины адреса.

Полный перечень операций, которые может выполнять МП, называют системой команд. Содержание команды может занимать один, два или три байта. Совокупность сведений, которые для каждой команды MП задают ее длину, со­став и взаимное расположение частей, называют форматом команды. Форматы команд приведены на рис. 4.2. Каждая команда содержит в первом байте поле кода операции, но многие команды имеют еще одно или несколько полей, указы­вающих условия передачи управления (ССС), адрес вектора прерывания (NNN), ре­гистр приемник (DDD), регистр передатчик (SSS), адрес пары регистров (RP). Во втором и третьем байтах находятся поля адреса операндов в памяти компью­тера или адреса ввода - вывода данных.

При описании команд в ее мнемонике используют следующие условные обозначения:

1) R, R1, R2 - один из восьмиразрядных регистров МП, включая А (акку­мулятор);

2) RP - регистровая пара В, D, Н или указатель стека SP;

3) HR, 1R - старший и младший регистры регистровой пары, например Н и L ;

4) М - ячейка памяти, адрес которой хранится в регистрах Н и L;

5) F - регистр признаков или флагов;

6) b2 и b3 - второй и третий байты команды;

7) PC - счетчик команд или программный счетчик;

8) → направление передачи операнда;

9) ( ) - содержимое регистра или ячейки памяти, имя которых указано в скобках;

10) [ ] - символы в скобках означают адрес;

11) Z, S, AС, СY, Р - биты регистра признаков;

12) PSW - соединение регистров А и F, содержащее слово состояния про­цессора.

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