Metoda_gramotnaya_po_protsessoru


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Оглавление



ВВЕДЕНИЕ
....................................................................................................................
...............

4

1.


ОСНОВНЫЕ ПРАВИЛА СОС
ТАВЛЕНИЯ ПРОГРАММ НА

АССЕМБЛЕРЕ
........

5

1.1. Коды
команд
.......................................................................................................................

5

1.2. Программная модель микропроцессорной
системы
..................
.....................................

6

1.3. Команды микропроцессора
КР580ВМ80
.........................................................................

9

2.

КРОСС
-
СРЕДСТВА
ОТЛАДКИ
..........................................................................................

13

2.1. Формат ассемблерной
строки
.........................................................................................

13

2.2.

Директивы
Ассемблера
......................................................................
.............................

14

2.2. Режим
ассемблирования
..................................................................................................

16

2.4. Режим симуляции прикладной
программы
...................................................................

16

3.

УЧЕБНЫЙ М
ИКРОПРОЦЕССОРНЫЙ КОМ
ПЛЕКТ
(УМК)
....................................

19

4.

ЛАБОРАТОРНЫЕ
РАБОТЫ
...............................................................................................

22

4.1. Изучение правил составления ассемблерных программ и их отладки с
помощью кросс
-
средств
(Л.Р.1)
...........................................................................................................................
........................

22

4.2. Изучение УМК и правил составления простых программ
(Л.Р.2)
..............................

23

ПРИЛОЖЕНИЕ 1. ПРОГРА
ММА ПЕРЕМНОЖЕНИЯ ДВУ
Х
ОДНОБАЙТОВЫХ ЧИСЕЛ Б
ЕЗ
ЗНАКА
.........................................................................................
...................................
...........................

32

ПРИЛОЖЕНИЕ 2.

СИСТЕМА КОМАНД МИКРО
ПРОЦЕССОРА
КР580ВМ80
.........

34

ВВЕДЕНИЕ


Применение микропроцессоров (МП) в

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


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


Язык Ассемблера относится к машинно
-
ориетированным языкам
низкого уровня. Каждой команде языка Ассемблера соответствует, как
правило, машинная коман
да. Каждый тип МП имеет свою систему команд и,
следовательно, свой язык Ассемблера. Команды, адреса и данные
записываются в виде буквенно
-
цифровых символов. Мнемонические
обозначения команд обычно легко ассоциируются с реально выполняемыми
действиями (в ан
глоязычном написании). Практика показывает, что
адаптация к языку Ассемблера происходит быстро. После составления
нескольких простых программ мнемонические обозначения наиболее
употребительных команд запоминаются. Написанная на Ассемблере
программа перевод
ится на машинный язык с помощью транслирующей
программы, называемой также Ассемблер. При этом проводится проверка
синтаксиса языка с указанием ошибок, которые необходимо исправить.
Программирование на Ассемблере позволяет создавать максимально
эффективные
с точки зрения быстродействия и потребного объема памяти
программы.


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

производится
трансляция с языка высокого уровня

на

язык Ассемблера и далее с помощью
Ассемблера
-

в машинные коды. Каждому оператору языка высокого уровня
соответствует 5
-

10 и более команд Ассемблера, что, очевидно, облегчает
программирование. Поскольку трансляторы создаются для широкого круга
программ,

то, естественно, осуществляемый ими перевод не позволяет
достичь той же эффективности, как при программировании на
Ассемблере.

Более того, окончательная отладка программы ведется обычно
на

Ассемблере. Из языков высокого уровня

последнее время широко
ис
пользуется язык СИ.

Теоретические основы использования микропроцессорных устройств
излагаются в курсе «Цифровые устройства и микропроцессоры».
Практические навыки составления программ на Ассемблере отрабатываются
студентами в процессе практических занятий
и лабораторных
работ.

Лабораторные работы предусматривают создание программ на языке
Ассемблера с последующей их отладкой.

Лабораторный практикум на кафедре РПУ организован в настоящее
время в двух вариантах либо на базе «Учебных микропроцессорных
компле
ктов» (УМК), либо программных средств отладки в дисплейном
классе кафедры.

Целью данного учебного пособия является методическое обеспечение
этих двух вариантов выполнения лабораторных работ.



1.

ОСНОВНЫЕ ПРАВИЛА СОС
ТАВЛЕНИЯ ПРОГРАММ НА

АССЕМБЛЕРЕ



1.1

. Коды команд



Микропроцессор работает только

с

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

Всего с помощью байта можно
формировать

2
8

=

256

различных кодо
вых комбинаций. Почти столько же
команд

(244)

имеет микропроцессор КР580ВМ80.

Естественно, что
запомнить

244

кода довольно трудно, и поэтому каждому коду ставится в
соответствие мнемоническое название (мнемоника) команды, которо
е
является сокращением от английских слов, описывающих ее действие.
Мнемонический код команд позволяет легче запомнить их функции и
значительно упрощает написание программ. Такой язык написания программ
называется Ассемблером
.

После того, как программа нап
исана на
Ассемблере, ее необходимо снова перевести на язык, понятный микро
-
процессору, т. е. перевести в последовательность двоичных восьмиразрядных
чисел. Перевод в последовательность двоичных цифр может происходить
автоматически с помощью специальных про
грамм
-
трансляторов (такие
программы носят название «кросс
-
ассемблер» или «ассемблер») или
вручную.

Для ручной трансляции можно использовать табл.1,

в которой
приведены все команды микропроцессора КР580ВМ80. С помощью этой
таблицы можно легко и быстро сопо
ставить мнемонику команды с ее кодом .
Код

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

STAX

D

имеет
код 12
Н
, команда

JZ

ADR



код

СА.



Таблица 1.



0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F



0

NОР







MO
V

B,B

MO
V

D,B

MO
V

H,B

MO
V

M,B

AD
D

B

SU
B

B

AN
A

B

DR
A

B

RNZ

RNC

RPO

RP

0

1

LXI

B

LXI

D

LXI

H

LXI

SP

MO
V

B,C

MO
V

D,C

MO
V

H,C

MO
V

M,C

AD
D

C

SU
B

C

AN
A

C

DR
A

C

POP

B

POP

D

POP

H

POP

RSW

1

2

STA
X

B

STA
X

D

SHL
D

STA

MO
V

B,D

MO
V

D,D

MO
V

H,D

MO
V

M,D

AD
D

D

SU
B

D

AN
A

D

DR
A

D

JNZ

JNC

JPO

JP

2

3

INX

B

INX

D

INX

H

INX

SP

MO
V

B,E

MO
V

D,E

MO
V

H,E

MO
V

M,E

AD
D

E

SU
B

E

AN
A

E

DR
A

E

JMP

OUT

XTH
L

D1

3

4

INR

B

INR

D

INR

H

INR

М

MO
V

B,H

MO
V

D,H

MO
V

H,H

MO
V

M,H

AD
D

H

SU
B

H

AN
A

H

DR
A

H

CNZ

CNC

CPO

CP

4

5

DCR

B

DCR

D

DCR

H

DCR

М

MO
V

B,L

MO
V

D,L

MO
V

H,L

MO
V

M,L

AD
D

L

SU
B

L

AN
A

L

DR
A

L

PUS
H

B

PUS
H

D

PUSH

H

PUS
H

PSW

5

6

MVI

B

MVI

D

MVI

H

MVI

М

MO
V

B,M

MO
V

D,M

MO
V

H,M

HTL

AD
D

M

SU
B

M

AN
A

M

DR
A

M

ADI

SUI

ANI

ORI

6

7

RLC

RAL

DAA

STC

MO
V

B,A

MO
V

D,A

MO
V

H,A

MO
V

M,A

AD
D

A

SU
B

A

AN
A

A

DR
A

A

RST

0

RST

16

RST

32

RST

48

7

8









MO
V

C,B

MO
V

E,B

MO
V

L,B

MO
V

A,B

AD
C

B

SB
B

B

XR
A

B

CM
P

B

RZ

RC

RPE

RM

8

9

DAD

B

DAD

D

DAD

H

DAD

SP

MO
V

C,C

MO
V

E,C

MO
V

L,C

MO
V

A,C

AD
C

C

SB
B

C

XR
A

C

CM
P

C

RET



PCH
L

SPH
L

9

A

LDA
X

B

LDA
X

D

LHL
D

LDA

MO
V

C,D

MO
V

E,D

MO
V

L,D

MO
V

A,D

AD
C

D

SB
B

D

XR
A

D

CM
P

D

JZ

JC

JPE

JM

A

B

DCX

B

DCX

D

DCX

H

DCX

SP

MO
V

C,E

MO
V

E,E

MO
V

L,E

MO
V

A,E

AD
C

E

SB
B

E

XR
A

E

CM
P

E



IN

XCH
G

EI

B

C

INR

C

INR

E

INR

L

INR

A

MO
V

C,H

MO
V

E,H

MO
V

L,H

MO
V

A,H

AD
C

H

SB
B

H

XR
A

H

CM
P

H

CZ

CC

CPE

CM

C

D

DCR

C

DCR

E

DCR

L

DCR

A

MO
V

C,L

MO
V

E,L

MO
V

L,L

MO
V

A,L

AD
C

L

SB
B

L

XR
A

L

CM
P

L

CAL
L







D

E

MVI

C

MVI

E

MVI

L

MVI

A

MO
V

C,M

MO
V

E,M

MO
V

L,M

MO
V

A,M

AD
C

M

SB
B

M

XR
A

M

CM
P

M

ACI

SBI

XRI

CPI

E

F

RRC

RAR

CMA

CM
C

MO
V

C,A

MO
V

E,A

MO
V

L,A

MO
V

A,A

AD
C

A

SB
B

A

XR
A

A

CM
P

A

RST

8

RST

24

RST

40

RST

56

F



0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F









1.2. Программная модель микропроцессорной системы



Система команд микропроцессора



это полный перечень
элементарных действий, которые может выполнить микропроцессор.
Управляемый
командами микропроцессор выполняет очень про
стые
действия, однако с помощью этих действий (команд) можно
запрограммировать

любую

сложную

операцию.

Проектировщику

необходимо запомнить весь перечень команд и
хорошо представлять действия, которые будет

в
ыполнять микропроцессор
при их обработке.

Программная модель системы, построенной на базе микропро
цессора
серии КР580, состоит из следующих элементов:

программно
-
доступных регистров и триггеров разрешения прерывания;

программно
-
доступных восьмиразрядных я
чеек памяти;

программно
-
доступных восьмиразрядных регистров.

Программно
-

доступные регистры

микропроцессора



это ре
гистры
общего

назначения, регистр указателя стека, регистр признаков и регистр
счетчика команд. Разряды регистров нуме
руются справа налев
о целыми
числами, начиная с нуля.

Регистр общего назначения

(РОН)



это один из шести восьми
-
разрядных регистров микропроцессора, обозначенных буквами

В,
С,

D
,

Е,

Н,

L
, или аккумулятор, обозначенный буквой А. Ре
гистры В и С,

D

и
Е, Н и

L

в некоторых кома
ндах рассматри
ваются как шестнадцатиразрядные
регистры, называемые реги
стровыми

парами. Регистры В,

D

и Н образуют
старшие восемь разрядов регистровых пар, а регистры С, Е и

L


младшие.

Регистр указатель стека


C
)



это шестнадцатиразрядный регистр,
ко
торый содержит адрес вершины стека.

Стек



это динамическая
последовательная структура данных в ОЗУ, орга
низованная таким образом,
что очередная запись данных всегда осуществляется в вершину (на
чало)
стека.

Максимальный размер стека равен адресуемой емко
сти памяти. В
вершину сте
ка могут записываться только шестнадцатибитные данные. При
записи данных в стек содержи
мое регистра указателя стека уменьшается
на

2,

а при считы
вании



увеличивается на

2.

Регистр признаков

(
F
)



это восьмиразрядный регистр, со
дер
жащий
признаки результата выполнения команды (рис.

1).




7

6

5

4

3

2

1

0



S

Z



O



V





S



признак знака;

Z



признак нуля;

V



признак дополнительного
переноса;

P



признак четности;

C



признак переноса.

O



P



1



C





Распределение признаков по разрядам





Рис.1. Регистр признаков



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

-

признак

S



единица, если седьмой разряд результата равен единице, в
противном случае



ноль;

-
признак нуля

Z



единица, если

во всех разрядах результата ноли, в
противном случае



ноль;

-

признак дополнительного переноса

V



единица при переносе из третьего
разряда или при

заеме

в третий разряд результата, в противном случае



ноль;

-

признак четности

Р



единица, если результа
т в двоичном коде содержит
четное количество единиц, в противном случае



ноль;

-

признак переноса

С



единица при переносе из седьмого раз
ряда или при
заеме в седьмой разряд результата, в противном случае



ноль.

Аккумулятор и регистр признаков образуют

слово
состояния

процессора,

обозначенное буквами

PSW
. Аккумулятору соответ
-
ствуют восемь старших разрядов, а регистру признаков


младшие.

Регистр счетчика команд

(СК)



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

Триггер разрешения прерывания

используется для управле
ния
прерываниями микропроцессора. Если триггер установлен в единицу, то
прерывание разрешается, если триггер установлен в ноль, то прерывание
запрещается.

Программно
-
до
ступные восьмиразрядные ячейки
памяти

используются в качестве памяти микропроцессорной системы
(МПС)

.

Разряды ячейки памяти нумеруются справа налево целыми числами,
начиная с ноля. Максимальная емкость памяти, реализуемой запоминающим
устройством, равна

6
5 536

байт.

Программно
-
доступные восьмиразрядные регистры

использу
ются
для ввода и вывода. Максимальное число регистров для ввода данных
составляет

256,

для вывода данных



столько же.

Команды микропроцессора ис
пользуют только те элементы данных,
обработ
ка которых

осуществляется

непосредственно микропроцессором,
т.

е.

восьми
-

и шестнадцатибитовые. Восьмибитовые данные



это восемь
би
т (один байт), которые хранятся в

РОН

или ячейке памяти и
обрабатываются микропроцессором как одно целое.

Шестнадцатибитовы
е данные



это

16

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

шестнадцатибитовых

данных указывается адрес младшей ячейки
памяти, содержащей эти данные.

Операнды команд могут храниться в программно
-
доступных регистрах
микропроцессора или в памяти

МПС.

Для указания операнд
а в регистре
используются: регистровая адресация и ре
гистровая неявная адресация.

При

регистровой адресации

в коде команды существует поле для
указания регистра, содержащего операнд. При

регистровой
неявной

адресации

специального поля в коде команды нет.

Для указания операнда в памяти используются адресации:
непосредственная, прямая, косвенная и стековая.

При

непосредственной адресации

операнд задается в команде.
При

прямой адресации

в команде указывается адрес операнда.
При

косвенной регистровой адресации

адрес операнда указывается в
регистровой паре или для команды

XTHL



в регистре указа
теля стека.



1.3. Команды микропроцессора КР580ВМ80



Команды микропроцессора делятся на группы: команды пересылки и
загрузки данных, команды обмена данными,
арифметические команды,
команды поразрядной обработки данных, команды передачи управления,
команды управления микропроцессором. Команды могут быть длиной один,
два или три байта. При описании команд (ниже) байты разделены штрихами.



Команды пересылки и за
грузки

данных
:

-

MOV

R
1,
R
2



пересылка из регистра в регистр;

-

LDAX

B
(
D
)



пересылка из ячейки памяти, адрес которой записан
в

регистровой паре ВС (
DE
), в аккумулятор;

-

STAX

В(
D
)



пересылка из аккумулятора в ячейку памяти, адрес которой
записан в
регистровой паре

BC

(
DE
);

-

LDA_B2_B3



пересылка из ячейки памяти, адрес

которой записан во
втором и третьем байтах команды, в аккумулятор;

-

STA_B2_B3



пересылка из аккумулятора в ячейку памяти, адрес которой
указан во втором и третьем байтах команды;

-

SPHL



пересылка данных из регистровой пары

HL

в указатель стека;

-

PCHL



пересылка данных из регистровой пары

HL

в счетчик команд;

-

LHLD
_
B
2_
B
3



пересылка данных из ячеек памяти с адресами, записанным

во втором и третьем байтах команды и на единицу большем, в регистровую
пару

HL
;

-

SHLD
_
B
2_
B
3



пересылка данных из регистровой пары

HL

в ячейки
памяти с адресами, записанными во втором и третьем байтах команды и на
единицу большем;

-

MVI

R
_
B
2



загрузка

второго байта команды в регистр

R
;

-

LXI

B

(
D
,
H
)_
B
2_
B
3



загрузка второго и третьего байтов команды в
регистровую пару

B
С (
D
Е,
HL
).



Команды обмена данными:

-

XCHG



обмен данными между парами регистров

HL

и

DE
;

-

XTHL



обмен данными между парой
регистров

HL

и вершиной стека
(
L
)


C
], (
H
)


C
+1].



Группа арифметических команд.

Команды сложения :

-

ADD

R



сложение содержимого аккумулятора с
содержимым

регистра

R

(
A
)



(
A
) + (
R
);

-

ADI
_B2



сложение содержимого аккумулятора со вторым

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

(
A
)



(
A
) +

B
2;

-

ADC

R



сложение содержимого аккумулятора с содержимым регистра

R

и
признаком (С)

(А)


(
A
) + (
R
)

+ (С);

-

ACI
_B2



сложение содержимого аккумулятора со вторым байтом команды
и признаком (С)

(
A
)



(
A
) +

B
2 +(С);

-

DAD

B

(
D
,

H
,

SP
)



сложение содержимого пары регистров

HL

с
содержимым пары регистров

BC

(
DE

или

HL

или указателем стека) и запись
результата в пару

HL
.



Команды вычитания

:

-

SUB

R



вычитание из содержимого

аккумулятора содержимого регистра
R

(
A
)



(
A
)


(
R
);

-

SUI
_
B
2



вычитание из содержимого аккумулятора

второго байта
команды

(
A
)



(
A
)


B
2;

-

SBB

R



вычитание из содержимого аккумулятора содержимого
регистра

R

и признака (С)

(А)


(
A
)


(
R
)



(С);

-

SBI
_
B
2



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

(
A
)



(
A
)


B
2


(С).



Операции инкремента и декремента:

-

INR

R



увеличение

содержимого

регистра на 1

(
R
) +1



(
R
);

-

INX

B

(
D
,

H
,

SP
)



увеличение содержимого пары регистров

BC

(
DE
), (
HL
),
(
SP
) на 1 ;

-

DCR

R



уменьшение содержимого регистра

R

на 1

(
R
)
-
1



(
R
);

-

DCX

B

(

D
,

H
,

SP
)



уменьшение содержимого пары регистров

BC

(
DE
),
(
HL
), (
SP
) на 1 .



Группа

команд поразрядной обработки данных.

Логические команды

:

-

ANA

R



операция ―И‖ между содержимым аккумулятора и содержимым
регистра

(
A
)



(
A
)



(
R
);

-

ANI
_
B
2



операция ―И‖ между содержимым аккумулятора и вторым
байтом команды

(
A
)



(
A
)



B
2;

-

ORA

R



операция
―ИЛИ‖ между содержимым аккумулятора и
содержимым регистра

R

(
A
)



(
A
)

V

(
R
);

-

ORI
_
B
2



операция

―ИЛИ‖ между содержимым аккумулятора и вторым
байтом команды

(
A
)



(
A
)

V

B
2;

-

XRA

R



операция ―ИЛИ
-
НЕ‖ между содержимым
аккумулятора и
содержимым регистра

R

(
A
)



(
A
)



(
R
);

-

XRI
_
B
2



операция

―ИЛИ
-
НЕ‖ между содержимым аккумулятора и
вторым байтом команды

(
A
)



(
A
)



B
2.





Команды сравнения:

-

CMP

R



операция

(
A
)


(
R
); если (
A
) = (
R
), то

Z

=
1; если


(А) <(
R
), то С=1;

-

CPI
_
B
2



операция

(А)


B
2; если (
A
) =

B
2, то

Z

= 1; если


(
A
)

B
2, то С=1.



Команды сдвига:


-

RLC



сдвиг влево (каждый бит сдвигается на один разряд влево, а 7 бит
переносится в 0 и одновременно записывается в
признак
(С))

Dm

Dm
+1,

D
7

D
0,

D
7

C
;

-

RRC



сдвиг вправо (каждый бит сдвигается на один разряд вправо, а 0 бит
переносится в 7 и одновременно записывается в признак
(С))

Dm
+1

Dm
,

D
0


D
7,

D
0

C
;

-

RAL



сдвиг влево через перенос (каждый бит сдвигается на один

разряд
влево, 7 бит записывается в признак (С), а бит из (С) записывается в 0
бит)

Dm

Dm
+1,

D
7

C
,

C

D
0;

-

RAR



сдвиг вправо через перенос (каждый бит сдвигается на один разряд
вправо, 0 бит записывается в признак (С), а бит из (С) записывается в 7
бит)

Dm
+1

Dm
,

D
0

C
,

C

D
7.



Команда инверсии содержимого аккумулятора

-

СМА

(А)



(Ā).



Команды безусловного перехода:

-

JMP
_ В2_ В3



записать информацию из второго и третьего байта команды
в счетчик команд;

-

PCHL



записать содержимое пары регистров

HL

в счетчик команд.



Команды условного перехода:

JNC



если

признак

c

= 0

JC



если

признак

c

= 1

JNZ



если

признак

z

= 0

JZ



если

признак

z

= 1

JPO



если

признак

p

= 0

JPE



если

признак

p

= 1

JP




если

признак

s

=

0

JM




если

признак

s

= 1

то

перейти по адресу,
записанному во втором и третьем
байтах команды,


иначе

перейти к следующей
команде.





Команда безусловного вызова подпрограммы

:

-

CALL
_В2_ В3



вызов подпрограммы с начальным адресом, записанным
во
втором и третьем байтах команды.











Команды условного вызова подпрограммы:

-

CNZ



если

z

= 0

-

CZ



если

z

= 1

-

CNC



если

c

= 0

-

СС



если


c

= 1

-

СРО



если

p

= 0

-

СРЕ



если

p

= 1

-

СР




если

s

= 0

-

CM




если


s

= 1

то

перейти к подпрограмме с начальным
адресом, указанном во втором и третьем
байтах команды,

иначе

перейти к следующей команде





Команда безусловного возврата из
подпрограммы



RET
.



Команды условного возврата из подпрограмм:

-

RNZ



если


z

= 0

-

RZ



если

z

= 1

-

RNC



если

c

= 0

-

R
С




если

c

= 1

-

R
РО



если

p

= 0

-

R
РЕ



если

p

= 1

-

R
Р




если

s = 0

-

RM



если

s = 1

то

возвратиться к команде, следующей за
командой вызова подпрограммы,


иначе

продолжить выполнение
подпрограммы.





Команды операций со стеком:

-

PUSH

B
(
D
,
H
)



запись содержимого
регистровой пары

BC

(
DE
,
HL
) в
стек

(
B
,
D
,
H
)


[ УС
-
1 ], (
C
,
E
,
L
)


[ УС
-
2 ], (УС)=(УС)
-
2;

-

PUSH

PSW



запись слова состояния в
стек

(
A
)


[УС
-
1], (
F
)


[ УС
-
2 ],
(УС)=(УС)
-
2;

-

POP

B
(
D
,
H
)



запись из стека в регистровую пару

BC
(
DE
,
HL
)


[УС]



(
C
,
E
,
L
), [УС+1]


(
B
,
D
,
H
),

(УС)=(УС)+2;


-

POP

PSW



запись слова состояния из стека


[УС]



(
F
), [УС+1]


(

A
),

(УС)=(УС)+2.




Команды управления микропроцессором:

-

CMC



инверсия признака (С) (С)



(С);

-

STC



запись 1 в признак (С) 1



(С);

-

EI




разрешение прерываний;

-

DI




запрет прерываний;

-

NOP




команда «нет операции»;

-

Н
L
Т



останов.

Ввод
-
вывод через порты

МПС

осуществляется специальными
командами микропроцессора:

IN

ADDR

и

OUT

ADDR
, где

ADDR



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

256

внешними у
строй
ствами.

Число различных команд микропроцессора составляет

78,

и для них
зарезервировано

78

имен команд, перечисленных выше. Многие базовые
команды из числа

78

порождают несколько раз
личных кодов операций,
поэтому общее число кодов команд составляет

244

(см. табл.

1).

Время выполнения команды, оцениваемое числом тактов микро
-
процессора, составляет

4


18

тактов. Для подавляющего числа команд время
выполнения команды (число тактов) есть величина постоянная, однако
существуют команды, для которых это вр
емя может меняться. Такими
командами являются команды условного вызова

и

возврата из подпрограмм.
Время выполнения команды зависит от того, выполняется условие или
нет.

Если условие выполняется, время выполнения команды

увеличивается.

Программирование на

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

число байтов в команде , число тактов, выполняемые действия,
характер изменения битов регистра признаков.



2.

КРОСС
-
СРЕДСТВА ОТЛАДКИ

2.1. Формат ассемблерной строки



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

-

ассемблирование исходного файла;

-

моделирование на программном уровне (симуляция) исходного файла;

-

моделирование на

аппаратном уровне (эмуляция) исходного файла.

В лабораторном практикуме плата с МП отсутствует, поэтому
обучение проводится на программном уровне.

Исходный файл прикладной программы пишется в любом текстовом
редакторе и ему присваивается расширение

.
asm
.
Запись программы на
Ассемблере требует соблюдения определенных правил. Программа пишется
в виде последовательности команд. Каждая команда записывается в одной
строке и имеет четыре поля:



МЕТКА

ОПЕРАЦИЯ

ОПЕРАНД

КОММЕНТАРИЙ



Не
обязательно использовать все поля, но они должны быть в
указанном порядке.

МЕТКА

-

это символическое имя адреса команды, находящейся в
данной строке; обычно метки придаются командам, к которым
предусматривается обращение в процессе выполнения программы. Ме
тка
начинается с буквы и ее длина неограниченна, но различаются только первые
восемь символов. Нельзя внутри метки использовать пробел. Нельзя в
качестве меток записывать имена регистров, коды команд и другие
зарезервированные сочетания (например, А, М, СМ
Р и т.п., но А2, ММ,
СМР9 можно). В одной программе не должно быть двух и более одинаковых
меток. Разделителем между меткой и операцией является

двоеточие.

ОПЕРАЦИЯ

-

в этом поле содержатся мнемокоды

команд или
директивы ассемблера, которые описываются ни
же. Разделителем между
кодом команды и операндами является пробел.

ОПЕРАНД

-

это символические имена регистров, адресов, меток или
константы. Целочисленные константы могут быть определены в двоичной
(префикс

b
,

b
‘11101101), шестнадцатеричной (префикс

h
,

h

2
a
3
f
) или
десятеричной (префикс отсутствует) системах счисления. При наличии двух
операндов разделителем служит

запятая.

У некоторых команд операнды
отсутствуют (
RRC
,
NOP

и др.) и поле операндов остается пустым. Операнд
может быть выражением. На начальном э
тапе обучения программированию
на Ассемблере их можно не использовать. С правилами составления
выражений можно познакомиться в литературе.

КОММЕНТАРИЙ

начинается с

точки с запятой.

Если строка
начинается

с

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

В приложении 1 приведен пример записи программы на Ассемблере.





2.2.

Директивы Ассемблера



Директивы Ассемблера (или псевдокоманды) управляют работой
транслятора и не переводятся в машинные коды.
Используемый в
лаборатории транслятор распознает 15 директив. В табл. 2 приведены
правила записи некоторых наиболее употребительных директив. Метки,
заключенные в квадратные скобки, необязательны. Все директивы могут
иметь метки и комментарии.



Директива

.
ORG

определяет начальный адрес размещения в памяти
следующих далее команд. Директив

.
ORG

в программе может быть
несколько. При отсутствии директивы

.
ORG
программа начинается с
нулевого адреса.



Директива

.
END


располагается на последней строке и указывает

транслятору на завершение программы. В программе может быть только
одна Директива

.
END
.



Директива

.
EQU

(эквивалентность) ставит в соответствие константам,
адресам, регистрам и т.п. символические имена. В случае изменения ,

например,

адресов достаточно отредактировать только директиву

.
ORG
.



Директива

.


действует также как директива

.
EQU
, однако в
отличие от

.
EQU

может употребляться в программе неоднократно,
переопределяя значение символического имени. Это позволяет ис
пользовать
одно и то же символическое имя

в разных значениях.





Таблица 2





Дирек
-
тива

Синтаксис

Пример


.
ORG

.
ORG

<выражение>

.
ORG

h
‘800; Установить
адрес

h
‘800

END

.END



EQU

.
EQU
<имя> ,<выражение>

.
EQU

POR
,

H
‘ 20; Уровень порога
равен 32 вольтам

SET

.
SET
<имя> ,<выражение>

.
SET

A
_
TAB
,

H
‘8
D
0; Начальный
адрес таблицы 8
D
0

DB

.
DB

,

<список выражений>

AT
: .
DB

23,
h

ab
,‘
stop
‘; В память
заносятся 23, 16
-
ричное число

ab

и
4символа в КОИ 8. Метка АТ
соответствует адресу числа 23.

DW

.
DW

, <список
выражений>

.DW h‘3de7,1999,‘a‘

RS

.
RS

, <выражение>

matrica
:.
RS

9 ; Резервирует 9 ячеек
памяти для матрицы 3*3



Директива

.
DB

резервирует ячейки памяти и помещает в них
представленные выражения. В качестве выражения может присутствовать
цепочка
символов, заключенная в кавычки, например, ‗
STOP
‘. На каждое
выражение или символ отводится один байт.


Директива

.
DW

действует аналогично директиве

DB


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


Директива

.
RS

только резервирует ячейки памяти, в качестве
выражения обычно записывается просто число резервируемых ячеек. Часто
эта директива обозначается как

DS
.





2.2

. Режим ассемблирования




Вызов транслятора с

языка Ассемблера
осуществляется

командой

IASM
85
NAME

, где <
NAME

-

имя
прикладной программы, написанной согласно изложенным выше правилам.
Расширение

asm

можно не указывать. Ассемблирование выполняется сразу и
выдается сообщение:


000
XXX

lines

assembled

-

проассемблировано 000ХХХ строк,


0

-

ошибок

нет.


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

сообщение:

(тип ошибки )

in

line

xx

column

xx

-

в строке хх,

колонке хх,

(тип ошибки )

in

line

xx

column

xx

-

в строке хх,

колонке хх,

000ХХХ

lines

assembled

-

проассемблировано 000ХХХ строк,

2

Errors

-

обнаружено 2 ошибки.(2 ошибки взято для примера).

В ходе ассемблирования создаются еще файл листинга с тем же именем
и расширением


lst

и

объектный файл

с расширением

obj
. Причем оба файла
создаются как при отсутствии, так и при наличии ош
ибок. Места ошибок
отмечаются в листинге символом

^
. Ошибки в исходном файле исправляются
в текстовом редакторе с повторным ассемблированием. Редактирование
текста выполняется по правилам текстового редактора. Файл листинга кроме
исходного текста содержит
дополнительно номера строк, адреса ячеек
памяти и содержимое этих ячеек, т.е. машинные коды (см. приложение 1).

Объектный файл в формате

INTEL
, который в реальных условиях с
помощью программатора записывается в ПЗУ, в данном случае используется
симулятором
.



2.4. Режим симуляции прикладной программы



Программа симуляции (моделирования) вызывается
командой

AVSIM
85

или командой

AV
.
bat
. В появляющемся меню следует
выбрать режим

А
, т.е. режим моделирования только одного МП.
Раскрывается экран, вид которого
показан на рис.2. Нижняя часть экрана
содержит меню команд управления режимом симуляции

(режим команд)
.
Каждая из команд имеет свое подменю. В остальной части экрана отражается
состояние МП, содержимое блоков памяти, ввод/вывод и

текст программы
на Ассемб
лере

(режим экрана)
. Переключение режимов производится
клавишей
Esc
.

Для управления симулятором задействованы горячие клавиши

F
1
-

F
10
:

F
1
-
пуск отлаживаемой программы пользователя в непрерывном
режиме;

F
2
-

перемещение указателя точки останова вверх;

F
3

-

фи
ксация точки останова (точки останова сбрасываются после их
прохода и при повторном выполнении программы их следует
при

необходимости переустановить);

F
4

-

перемещение указателя точки останова вниз;

F
5

-

выбор скорости симуляции (
HI
,

MID
,

LOW
),

HI

-

основной
режим

быстрой симуляции,

MID

и

LOW

-

медленное пошаговое
выполнение программы при удерживании клавиши

F
1
;

F
6

-

управление дисплеем (
ON

-

обновление после каждой
команды,


OFF

-

по завершению программы);

F
9

-

пошаг
овое выполнение программы назад);

F
10

-

-

пошаговое выполнение программы вперед.

Горячие клавиши активны в обоих режимах. Ниже приводится
описание наиболее употребительных команд меню и подменю.
Дополнительные сведения можно получить по команде

HELP

.




Рис.2.

Экран симулятора



D
ump

-

определение отображаемых участков памяти (
Memory

Space
).


E
xpression

-

ввод выражения (числа) в регистр или ячейку памяти,
отмеченные курсором в
режиме экрана. Вводимые данные отображаются
также справа в виде кода КОИ8. Если ввод производится в память, то они
одновременно отображаются в левой части экрана как коды

МП.


L
oad

-

загрузка файла данных (
D
ata
), программы (
P
rogram
), таблицы
симво
лов (
S
ymbol
-
table
). При загрузке программы и данных

обязательно
указывается расширение

obj
!


I
O

-

подсоединение файла входных данных.


M
emory

-

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


P
atch

(
P
atch

code
)
-

вставка мнемокода команды МП в ячейку памяти,
адрес которой находится в РС.

S

-

установка:

M
emory

map

-

определение областей ОЗУ (
R
A
M
) и
ПЗУ (
R
O
M
);

c
Y
cles

-

включение счетчика циклов выполняемой
программы;



P
asspoint

-

отметка команд, помеченные команды подсчитываются в
ходе выполнения программы; в отличие от точек останова, эти пометки не
сбрасываются автоматически.

U
p

-

установка числа команд, исполняемых в пошаговом режиме
назад.

R

-

сброс,

C
pu

-
обну
ление счетчика команд и регистра флагов,
состояние других регистров не изменяется; c
Y
cles

-

выключение счетчика
циклов.

e
X
ecute

-

выполнение команд МП, результат отражается на экране

Q
uit

-

выход из программы симулятора (следует нажать подряд

Q

и

E
).



Вызов команд производится нажатием выделенных клавиш.

Например, загрузка программы:

L
,

P

<имя программы с расширением
.
obj
�,

Enter
. Можно также пользоваться клавишами управления курсором
для выделения выбранной команды.

Возвращение из подменю в
меню производится нажатием клавиш

Ctrl
/
C

Если в отлаживаемой программе имеются команды ввода/вывода
(
IN
/
OUT
), то адресам в этих командах следует присвоить
значения

0,1,2

или

3.

Вводимое значение набирается в «режиме экрана».

Массивы данных, если они предус
мотрены в программе, вводятся в
зарезервированную область памяти также, как и программа, только с
использованием команды

DATA
.

Эти же данные можно ввести
непосредственно в память в «режиме экрана» в шестнадцатеричной форме.

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

-

распределить память (
S
,

M
,

A
<начальный и конечный адреса >;

O

начальный и конечный адреса >; в учебных программах можно всю область
памяти определять как ОЗУ);

-

загрузить программу, не забывая расширение

obj

(
L
,

P

<имя>);

-

загрузить массив данных и вводимое число, если это предусмотрено в
программе;

-

установить начальный адрес программы (
E

<адрес>;

курсор должен
указывать на программный счетчик РС); можно воспользоваться командой
сброса (
R
,

C
);

-

выполнять

программу в пошаговом режиме, отмечая изменения
содержимого регистров и памяти;


-

для режима непосредственного выполнения программы использовать точки
останова на наиболее характерных командах.

3.

УЧЕБНЫЙ МИКРОПРОЦЕСС
ОРНЫЙ КОМПЛЕКТ (УМК)





УМК состоит из следующих составных частей: микроЭВМ, пульта
оператора, блока питания.



ОУ



МИКРОЭВМ












































Блок питания




+ 5 В


220 В


+12В


-

5 в

-
5 В





Рис.3. Структурная схема УМК



МикроЭВМ

является основной

составной

частью и управляет работой
всего

УМК.

Все обращения к памяти, операции

ввода


вывода,

вычисления

выполняются

микроЭВМ или ею же инициируются.

Пульт
оператора

предназначен для взаимодействия операто
ра
с

микроЭВМ.

Блок питания

обеспечивает
постоянными

стабилизированными

напряжениями

микроЭВМ,

пульт, а
также макетную плату..

МикроЭВМ

состоит из операционного устройства

(ОУ) посто
янного
запоминающего ус
тройства (ПЗУ), оперативного запоминаю
щего устройства
(ОЗУ) и устройства пошаговоговыполнения прог
рамм.

Пульт

оператора

состоит из клавиатуры,

шестиразрядного

дисплея,
световой индикации и управляющих
кнопок

сброс

СБ
,

прерывание

ПР
,

шаг

ШГ
,

а такж
е
переключателей

работа/шаг

РБ/ШГ

и команда/цикл

КМ/ЦК

(см.
рис.

1).

Основой

микроЭВМ является ОУ, реализованное на базе МП
КР580ВМ80, которое производит все операции по
обработке

информации

Исходным состоянием ОУ является чтение
информации по нулев
ому адресу ПЗУ. ОУ прини
мает

это состояние после
нажатия управляющей кнопки

СБ

на пульте оператора.

Информация о состоянии ОУ фиксируется в регистре состоя
ния в
начале

каждого

машинного

цикла.

В ПЗУ записана программа
Монитор,

обеспечивающая

ввод

инф
ормации с клавиатуры пульта
оператора и вывод ее на дисплей.

Программа

Монитор

занимает

1

кбайт
ПЗУ

и

использует

последние

54

ячейки ОЗУ,
еще

1

кбайт

зарезервирован

з
a

пользователем.

ОЗУ используется для
хранения программ пользователя

иимеет

емкость

1

кбайт.

Устройство

пошагового

выполнения

программ

переводит

ОУ

в
состояние

Ожидание

после выполнения очередного шага.

Возможны
два

пошаговых

режима

работы:

покомандный шаг ипоцикловый

шаг.

Вызов
пошагового

режима

работы

осуществляется

пере
-
ключ
ателем

РБ/ШГ
,

выбор

величины

шага



переключателем

КМ/ЦК
.

Для

последующего

шага

необходимо

нажатькно
пку

ШГ
,

при этом после выполнения очередного
шага

на

световой

индикации

отображается

состояние адресной

шины,
шины

данных и регистра состояния ОУ в дв
оичном коде.

Выполнение

программы может быть остановлено

нажатием
управляющей

кнопки

ПР
.

При этом состояния всех регистров

ОУ
сохраняется в ОЗУ, откуда они опять могут быть загружены в ОУ и
выполнение программы продолжится, начиная с

точки

останова.

Внеш
ний вид

лицевой

панели

УМК

отображен

на

p
ис.

4.















































































































Рис. 4. Передняя панель УМК



1


индикация шины адреса; 2


индикация шины данных; 3


индикация
регистра состояний; 4


СБ

( сброс); 5


ПР ( прерывание); 6


ШГ (
шаг);

7


РБ/ШГ ( работа / шаг); 8


КМ/ЦК ( команда / цикл); 9


разъѐм
для подключения макетной платы.



















4.

ЛАБОРАТОРНЫЕ РАБОТЫ



4.1. Изучение правил составления ассемблерных программ и их
отладки с помощью кросс
-
средств (Л.Р.1)



Цель работы
-

изучение правил записи прикладных программ с
использованием
директив Ассемблера, ознакомление с программами
Ассемблера и симулятора и приобретение навыков работы

с кросс
-
средств
отладки.



Подготовка к работе






1.

Изучите

по рекомендованной литературе правила записи программ
на языке Ассемблера, назначение и испо
льзование директив Ассемблера, их
ввод и отладку с помощью кросс
-
средств, обратив особое внимание
на

формальный синтаксис языка Ассемблер, запись директив Ассемблера,
команды симулятора.

2.

Пользуясь системой команд, составьте программу сложения двух
одно
байтовых чисел без знака:

а) числа последовательно вводятся с внешнего устройства

с адресом 2;

б) числа находятся в ОЗУ по выбранным адресам.

В обоих случаях предусмотрите вывод результата на внешнее
устройство с адресом 3

и сохранение в ячейке ОЗУ


Зап
ишите в шестнадцатеричной системе счисления вводимые числа и
результат, а также содержимое используемых РОН, аккумулятора и регистра
флагов по завершении программы. Рассмотрите два случая: сумма не
превышает значения 255 и сумма превышает 255. Программу оф
ормите в
виде табл.1.


Таблица 1





Работа в лаборатории



1.

Создайте свой каталог и скопируйте в него
программы

av
.
bat
,

a
85.
com
,

avsim
85.
exe
,

avsim
85.
hlp

и подкаталог

error
.

Данную

и все последующие лабораторные работы проводите
только в своем каталоге!

2.

В подкаталоге

error

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

3.

В текстовом редакторе (
Shift
/
F
4) н
аберите подготовленную дома
программу. Проассемблируйте ее и исправьте возможные ошибки.

4.

Вызовите моделирующую программу

Avsim
85, загрузите
прикладную программу и выполните ее в пошаговом режиме, отмечая
изменения содержимого регистров МП и памяти. Загр
узку и выполнение
прикладной программы проведите для всех рассмотренных дома вариантов.

Содержание отчета


Отчет должен содержать домашнюю подготовку согласно пункту 2
подготовки к работе, результаты исправления примеров с ошибками
(ошибочная и
исправленная строка), результаты отладки и моделирования
составленных программ.



4.2.

Изучение УМК и правил составления простых программ
(Л.Р.2)

Цели работы:

1.

Изучение устройства и принципов функционирования УМК.

2.

Освоение базовых
рабочих процедур.

3.

Закрепление навыков программирования на языке Ассемблер.

1. Устройство и принцип работы УМК

Устройство и принцип работы УМК описаны в разделе 3. Подробнее
рассмотрим только функционирование устройства пошагового выполнения
програ
ммы. Устройство пошаговоговыполнения программы переводит ОУ в
состояние ожидания после выполнения очередного шага. Вызов пошагового
режима

работы осуществляется переключателем

РБ/ШГ,

выбор величины
шага

переключателем

КМ/ЦК.

Для последующе
го шага

нео
бходимо
нажать кнопку

ШГ.

При

этом после выпол
нения очередного шага на
светодиодном индикаторе отображается сос
тояние адресной вины, шины
данных и регистра состояния

ОУ

в двоичном коде.

Команды выполняются по машинным циклам

(1



5

циклов в команде).
Имеется десять типов машинных циклов и

соответственно десять слов
состояния (см. табл.1).


Таблица 1.

Состояние ОУ

Разряды регистра состояния ОУ

MEM

INR

MI

OUT

HLTA

STACK

WO
/

INTA

Выбор команды

1

0

1

0

0

0

1

0

Чтение памяти

1

0

0

0

0

0

1

0

Запись в память

0

0

0

0

0

0

0

0

Чтение стека

1

0

0

0

0

1

1

0

Запись в стек

0

0

0

0

0

1

0

0

Ввод

0

1

0

0

0

0

1

0

Вывод

0

0

0

1

0

0

0

0

Прерывание

0

0

1

0

0

0

1

1

Останов

1

0

0

0

1

0

1

0

Прерывание в останове

0

0

1

0

1

0

1

1



Перечислим органы управления
.



Директивные

клавиши

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

П

(Память)



чтение и изменение

содержимого

ячеек памяти,

РГ

(Регистр)



чтение и изменение содержимого регистров МП,

СТ

(Старт)


запуск программы пользователя,

КС

(Контрольная сумма)



определение

контрольной суммы массива
памяти: используется для контроля правильности ввода ранее отлаженной
программы,

ЗК

(
Заполнение

константой)



заполнение массива памяти
константой,

ПМ

(Перемещение массива)



перемещение массива в адресном
пространстве памяти,

ВП

(Выполнить)



означает конец работы с директивой,

"

"

(Пробел)



разделитель при вводе нескольких переменны
х.

Информационные

клавиши

служат для ввода адресов и данных
в

шестнадцатеричном

коде и содержат

шестнадцатеричные

символы.
Одновременно часть из них используется для
вводаиндентификаторов

регистров МП:

А



аккумулятор,

В, С

,

D
,

Е



одноименные регистры,

8/Н



регистр

H
,

9/
L



регистр

L,

F



регистр

флагов (признаков),

4/РН



старший байт счетчика команд,

5/PL



младший байт счетчика команд,

6/SН



старший байт указателя стека,

7/SL



младший байт указателя стека.

На лицевой панели находятся пять кнопок у
правления
:

~



включение/выключение УМК,

СБ

(Сброс)



устанавливает нулевой адрес в счетчике команд,

ПР

(Прерывание)



позволяет прервать выполнение

программы,

РБ/ШГ

(Работа/Шаг)



используется для перевода выполнения
программы в пошаговом режиме,

ШГ

(Шаг)


каждое

нажатие на кнопку ведет к выполнению одного
шага,

КМ/ЦК



переключатель дискреты шага (КМ



шаг соответствует
выполнению одной команды, ЦК



шаг соответствует выполнению одного
машинного цикла).

Дисплей

содержит 6 разрядов: четыре левых
отображают адрес, два
правых

информацию (в шестнадцатеричном коде).

При неправильной работе с клавиатурой в крайней левой позиции
дисплея высвечивается символ ―
?
‖. Нажмите кнопку


СБ


для возвращения в
исходное состояние.

Светодиодная индикация состоит из

набора светодиодов (0


светодиод
не горит, 1


горит).

Верхний ряд отображает состояние адресной шины (16 бит).

Второй ряд отображает состояние шины данных (8 бит).

Третий ряд отображает разряды регистра состояний (8 бит).



2.

Подготовка УМК к работе

Ус
тановите кнопку


~″

в отжатое состояние.

1.

Подключите УМК к сети переменного тока

220

В.

2.

Переключатель РБ/ШГ установите в отжатое состояние ″
РБ″
.

3.

Включите УМК, нажав кнопку


~″
.

4. Нажмите кнопку

СБ.

При этом в крайней левой позиции
дисплея должен появиться знак

"

".

После этого УМК готов к работе.



3.

Базовые рабочие процедуры



Внимание! Перед заданием директив с помощью управляющих
кла
виш необходимо нажать ″СБ″.



Индикация и изменение содержимого памяти

Если необходимо узнать со
держимое ячейки памяти ОЗУ с
определенным адресом, то последовательно нажимают клавиши:

П

АДРЕС

ВП,


где

АДРЕС


адрес в шестнадцатерич
ном коде. При этом в левых
четырех разрядах дисплея высвечивается адрес, а в двух правых содержимое
ячейки
памяти.

Внимание! Пользователю доступен массив ОЗУ с адресами

0800


ОВ
FF
.

Если необходимо посмотреть

содержимое следующей

ячейки, то надо
нажать клавишу



″.

Если информацию,

хранящуюся

в

просматриваемой ячейке памяти
надо изменить, то новые данные
вводят с

помощью инфор
-
мационных

клавиш.

При этом новые значения высвечиваются в двух правых
разрядах дисплея. После этого нажимают клавишу

ВП

или для перехода к
следующей ячейке клавишу

"

".

Директива завершается нажатием клавиши
″ВП″.

Пример 1:



просмотрите и измените содержимое ячеек памяти:

0800

на

0801



0802



0803



0804



0805



0806



0807



3A

00

0B

2F

32

01

0
B

76






Индикация и изменение содержимого регистров

Если надо узнать содержимое
регистра, то последовательно нажимают
клавиши:

РГ

"X"

ЗП,

где Х

-

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

Идентификаторы регистров:

А



аккумулятор;

В, С, Д, Е, Н,

L



регистры общего назначения (РОН),

F



регистр условий,

SL

-

младший байт указателя стека,

S
Н

-

старший байт указателя стека,

PL

-

младший байт счетчика команд,

РН

-

старший байт счетчика команд.

Все регистры по

8

бит.Если содержимое прос
матриваемого регистра
изменять не надо, то нажимают





и

набирают идентификатор другого
регист
ра. Если содержимое регистра надо изменить, то набирают новые
данные в шестнадцатеричном коде (два символа) и нажимают клавишу

"

".

После этого можно набирать и
дентификатор следующе
го регистра.

Для завершения директивы нажимают клавишу

ВП.

Пример 2:



просмотрите содержимое регистров общего назначения.

.


Заполнение массива памяти константой

Константа представляется в шестнадцатеричном коде двумя
символами,
адреса ячеек ОЗУ четырьмя символами.

Последовательность нажатия клавиш:

ЗК АДРЕС

1" "

"

АДРЕС

2" "

"

К

ВП
,

где АДРЕС

1



адрес первой ячейки массива памяти;

АДРЕС

2



адрес последней ячейки массива памяти;

К

-

константа в шестнадцате
ричном
коде(00



FF
)

Внимание! Заполнять только массив

0800



ОВ
FF
.

Пример 3
:



заполните массив с адреса 0В00 до адреса 0В
FF

числом

F
8.




проверьте содержимое соответствующих ячеек памяти.




Перемещение массива памяти в адресном

пространстве

Последовательность нажатия клавиш:

ПМ АДРЕС

1"

"

 АДРЕС

2"

"

 АДРЕС

3"

ВП
,

где АДРЕС

1


начальный адрес перемещаемого массива;

АДРЕС

2



конечный адреса перемещаемого массива;

АДРЕС

3


новый начальный адрес

массива.

Старый

и новый массивы не
должны перекрываться, иначе теряется
информация.

Пример 4:



заполните массив с адреса 0800 до адреса 082
F

числом 1С,



переместите массив на начальный адрес 0900,



проверьте содержимое соответствующих ячеек.




Определение контрольной
суммы массива памяти



Последовательность нажатия клавиш:


КС АДРЕС

1"

"

"

АДРЕС

2"

ВП,

где АДРЕС

1


началь
ный адрес массива памяти,

АДРЕС

2



конечный адрес массива памяти.

После выполнения директивы на дисплее

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

сумму содер
жимого ячеек массива

по
модулю

256.

Пример 5
:



заполните массив с адреса 0В00



0В10 константой 01



вычислите контрольную сумму массива,



заполните массив 0В00




FF

константой 02



вычислите контрольную сумму массива




Запуск программы пользователя



Последовательность нажатия клавиш:

СТ АДРЕС

1"

"

"

АДРЕС

2"

"

"

АДРЕС

3"

ВП,


где АДРЕС

1


начальный

ад
рес программы,

АДРЕС

2

и АДРЕС

3


адреса выполнения пре
рывания
программы
(могут отсутствовать)

Состояние регистров

микропроцессора

при достижении адре
-
сов

2

и

3

сохраняется в ОЗУ, и управление
передается

программе

Монитор.

Пользователь может задать любую
директиву. Продол
жение программы

последует после
повторного

н
ажатия

клавиши ВП.

Внимание! Программа должна умещаться в пределах массива

0800



0
AFF

(1

кбайт).




Пошаговое выполнение программы


Имеются две разновидности пошагового выполнения програм
мы:
поцикловый режим ЦК и покомандный режим КМ.

Для вызова

п
ошагового

режима:

-

установите переключатель РБ/ШГ в положение ШГ (кнопка утоплена),
при которой происходит подключение световой ин
дикации;

-

переключателем КМ/ЦК выберите один из режимов работы;

-

передайте управление выполняемой

программе.

После
этого световая индикация отобразит начальный
адрес

программы, данные по этому

адресу и содержимое регистра сос
тояния.
Программа выполняется путем

нажатия

кнопки

ШГ.Для выхода из
пошагового режима установите переключатель

РБ/ШГ в
состояние

РБ

(кнопка

отжата) и

нажмите

кнопку

ШГ.

Пример 6
:

запустите программу находящеюся в памяти ОЗУ(адреса
0800

0807) в пошаговом режиме. Следите за световой
индикацией.






Прерывание

выполнения программы



Для прерывания выполнения программы необходимо нажать
клав
ишу

ПР.

После этого пользователь может вызвать

выполне
ние любой
из существующих директив. Выполнение прерванной программы возможно,
начиная с адреса останова

или любого дру
гого адреса.



4.

Запись и

выполнение

программы

4.

Микропроцессор БИС КР5
80ВМ80

имеет фиксированный набор
команд. Программа записывается последовательно в массив памяти
ОЗУ

0800




FF
. Для записи данных исследуемых программ используют
ячейки ОЗУ с адресами

0
B
00



0
BFF
.

Система

команд

микропроцессора

КР580ВМ80А

приведена
в

П
риложении

1.

Время выполнения

команды

измеряют в машинных тактах, рав
ных
периоду синхронизации

(0,5

мкс

при ƒ
т

= 2

МГц).

Рассмотрим
простейшую

программу

(программа

1),

извлекающую

число из ячейки
памяти с адресом 0В00, инвертирующую его и записывающую рез
ультат в
адрес памяти 0В01.

Программа

1



мнемокодах)

Мнемокод

Комментарий

LDA

0
B
00

Получить число из

ячейки с адресом 0
B
00

CMA

Инвертировать число

STA

0
B
01

Записать результат по адресу

0В01

HTL

Прервать выполнение программы

При записи
программ все числа представляются в шестнад
цатеричной
системе счисления.

Для записи программы в память необходимо перевести мне
-
мокоды

команд в машинные коды. Команды в программе могут быть одно

,

двух


или

трехбайтные

и должны в памяти

занимать
соответственно один,
два или три адреса.

Программа

1

(размещение по адресам памяти)

Адрес

Число

Комментарий

0800

3
A

Код команды

LDA

0801

00

Младший байт адреса

0802

0
B

Старший байт адреса

0803

2
F

Код команды

CMA

0804

32

Код команды

STA

0805

01

Младший байт адреса

0806

0
B

Старший

байт адреса

0807

76

Код команды

HLT



В

программе

1

используется прямой
способ

адресации.

Приведем

аналогичную программу с
косвенной

адресацией

(программа 2).



Программа

2

(общий вид записи)

Адрес

Машинный код

Мнемокод

Комментарий

0800

21

00

0
B

LXI H

0B00

Записать в регистры

H
,

L

число
0В00.

0803



MOV

A, M

Получить число из адреса
указанного в регистрах

H
,

L
.

0804

2
F

CMA


Инвертировать число в
аккумуляторе.

0805

23

INX

H

Увеличить на 1 число в
регистрах

H
,
L
.

0806

77

MOV

M, A

Записать число из аккумулятора
по адресу указанному в
регистрах

H
,

L
. (0В01)

0807

76

HLT

Прервать выполнение программы.



5.

Задание для

домашней

подготовки

1.

Изучите устройство УМК и порядок работы

с ним.

2.

Ознакомьтесь с языком программирования и

структурой

команд
МП

БИС

КР58ОВМ80.

3.

Изучите

команды пересылки и загрузки, команды арифметических
и логических операций.

4.

Определите результат

выполнения

программы

1

при записи
различных однобайтовых ком
анд по адресу

0803,

и занесите

их
в

табл.2

.




Таблица

2

Команда записанная
по адресу

0803

Число записанное

по
адресу

0В00.

Число записанное по
адресу

0В01.

CMA

ADD

A

SUB

A

ANA

A

XRA

A

ORA

A

CMP

A

INR

A

DCR A







Примечание



по

адресу

0В00

запишите

число

соответствующее
вашему порядковому номеру в журнале.


Разработайте

программы:


Программа

3
:

увеличение

на 5
числа,

записанного

по

адресу

0В00,

и

з
аписи

результата по адресу
0В01

(программа

3);


Программа

4
:

сложение

чисел, записанных по адресам 0В00 и 0В01,
и

запись результата

по адресу

0В02

(программа

4);

Программа 5
: сравнение чисел,

записанных по адресам 0В00 и 0В01,
и

записи

большего

из них в
ячейку по адресу 0В02

(программа

5).



6. Экспериментальная

часть


Работа

с

массивом

данных

1.

Запишите по адресу

0В00

число

1.

2.

Запишите по адресу

0В01

число

2.

3.

Вычислите контрольную

сумму и

записать

ее по адресу

0В02.

4.

Вычислите

новую

контрольную

сумму и запишите

ее по
адресу

0В0З

и

т. д.

4.Последняя

контрольная

сумма

вычисляется для

массива
0В00



0В06.

Чему

она равна?

5.

Перенесите

сформированный

массив в область

памяти

с

начальным
адресом

0В50.

6.

Определите

контрольную

сумму

сформированного

массива.

7.

Запишите

константу

(14)
10

в область памяти 0В07



0В0
F
.

8.

Определите

контрольную

сумму этого массива.

9.

Запишите

полученную контрольную

сумму

в регистр В.




Запись и выполнение

простых

программ

Задание

1.

Исследуйте

программу

1.

Порядок

выполнения

задания:

1.

Запишите

программу

1

в ОЗУ.

2.

Запишите по адресу

0В00 число.

3.

Осуществите

пуск программы с адреса

0800.

4.

Проверьте результат выполнения программы

путем вывода

на
дисплей числа,

за
писанного

по адресу 0В01
(предварительно

нажмите

кнопку

СБ).

5.

Исследуйте процесс
выполнения

команд

в

программе

1

по

машиным

циклам. Заполните
таблицу.

Адрес

Команда

Циклы

1

2

3

4

5

















6.

Заменяя в программе

1

команду

СМА

на

команды,

приведенные в
п.4 домашнего задания, исследуйте результаты их выпол
нения.

Задание

2.

Исследуйте

программу

2.

Порядок выполнения,

задания тот
же.

Задание

3.

Исследуйте программу

3.

Порядок выполнения

задания:

1.

Введите

программу.

2.

Осуществите

пуск и

проверьте

результат ее

выполнения
по

числу,

записанному

по

адресу

0В01 при

числе

F
Е,

записанному
по

адресу

0В00.

Задание

4.

Исследуйте

программу

4.

Порядок

выполнения

задания:

1.

Введите программу.

2.

Проверьте

результат выполнен
ия

программы
по

числу,

записанному

по

адресу

0В02,

записав по

адресам 0В00
и

0В01 соответственно числа 0В и В0.

Задание 5.

Исследуйте

программу

5.

Порядок выполнения задания:

1.

Введите программу.

2.

Запишите по адресам 0В00 и 0В01 исследуемые

чис
ла.

3.

Осуществите

пуск

и

проверьте результат выполнения

программы.



7.

Содержание

отчета

Отчет должен содержать:

1.

Результаты выполнения задания

для домашней подготовки.

2.

Результаты

выполнения и

проверки

пунктов экспериментальной
части.



8.

Контрольные

вопросы



1.

Какие машинные

циклы Вы знаете?

2.

Как

определить время выполнения

программы?

3.

Какие способы адресации

операндов

в памяти

Вы знаете?

4.

Преобразуйте число

79

из десятичной системы счисления
в

двоич
ную,

а затем в

шестнадцатеричную.

5.

Как

выполняются основные

рабочие

процедуры

в

УМК?

6.

Как исследовать процесс выполнения

команды

по

циклам,
используя

УМК?

7.

Определите время выполнения программы 1.

8.

Преобразуйте число

34

из десятично
й системы счисления в
двоичную, а затем в шестнадцатеричную.

9.

Определите время выполнения программы 2.

10.

Преобразуйте число

84

из десятичной системы счисления в
двоичную, а затем в шестнадцатеричную.

11.

Определите время выполнения программы 3.

12.

Преобразуйте число

63

из десятичной системы счисления в
двоичную, а затем в шестнадцатеричную.

13.

Определите время выполнения программы 4.

14.

Составьте программу записи числа 17 в регистр В и пересылки
числа из регистра В в регистр С.





ПРИЛОЖЕНИЕ 1.

ПРОГРАММА ПЕРЕМНОЖЕН
ИЯ ДВУХ
ОДНОБАЙТОВЫХ ЧИСЕЛ Б
ЕЗ ЗНАКА




Реализуется умножение «в столбик». Множимое вводится с внешнего
устройства с адресом 0 и помещается в регистровую пару

DE
. Множитель
вводится с внешнего устройства с адресом 1 и остается в аккумуляторе.
Счетчик числа разрядов выполнен на регистре С. Произведение получается в
регистровой паре

HL

и побайтно выводится на внешние устройства с
адресами 2 и 3.

Программа умножения

UMN
.
ASM




jmpumn

; безусловный переход на начало программы умножения




.org h'10

; адрес начала программы 16

umn:

lxi d,0

; обнуление регистров множимого


in 0

;

ввод множимого с внешнего устройства 0


move,a

; ввод множимого в DE


in 1

; ввод множителя с внешнего устройства 1


lxi h,0

; обнуление регистров произведения H


mvi c,8

; загрузка счетчика числа
циклов

m1:

dad h

; логический сдвиг на разряд влево частного произведения


rlc

; сдвиг влево на разряд множителя


jnc m2

; пропуск сложения, если бит равен 0


dad d

; получение частного про
изведения

m2:

dcr c

; декрементирование счетчика


jnz m1

; повторение операций частных произведений


mova
,
h

;


out 2

; вывод старшего байта произведения


mova
,
l

;


out 3

; вывод младшего байта произведения


hlt


.end



Листинг программы умножения после ассемблирования

UMN
.
LST




адрес

строка

код

текст исходной программы

000001 0000 C31000

jmpumn

000002
0003


000003 0010

.org h'10

000004 0010


000005 0010 110000

umn:

lxi d,0

; обнуление регистров множимого

000006 0013 DB00

in 0

; ввод множимог
о с внешнего
устройства 0

000007 0015 5F

move,a

; ввод множимого в DE

000008 0016 DB01

in 1

; ввод множителя с внешнего
устройства 1

000009 0018 210000

lxi h,0

; обнул
ение регистров произведения
HL

000010 001B 0E08

mvi c,8

; загрузка счетчика числа циклов

000011 001D 29

m1: dad h

; логический сдвиг на разряд влево

000012 001E

; ч
астного произведения

000013 001E 07

rlc

; сдвиг влево на разряд множителя

000014 001F D22300

jnc m2

; пропуск сложения, если бит равен 0

000015 0022 19

dad d

; п
олучение частного произведения

000016 0023 0D

m2: dcr c

; декрементирование счетчика

000017 0024 C21D00

jnz m1

; повторение операций частных
произведений

000018 0027 7
C

mova
,
h


000019 00
28 D302

out 2

; вывод старшего байта произведения

000020 002
A

7
D

mova
,
l

000021 002B D303

out 3

; вывод младшего байта произведения

000022 002D 76

hlt

000023 0
02E

.end

M1

=001D


M
2

=0023


UMN

=0010





Примечание: последние 3 строки отражают адреса, которым
соответствуют метки



Объектный файл

UMN
.
OBJ



:0300
0000
C
31000
2
A

:1000
1000
110000
DB
005
FDB
012100000
E
082907
D
2
80

:0
E
00
2000
2300190
DC
21
D
007
CD
3027
DD
30376
90

:00000001
FF




Подчеркнуты адреса ячеек памяти (каждая строка имеет по 16 адресов).


Жирным шрифтом выделено содержимое ячеек памяти.


Остальное является служебной информацией для работы программатора.

ПРИЛОЖЕНИЕ 2.

СИСТЕМА КОМАНД МИКРО
ПРОЦЕССОРА
КР580ВМ80



Обозначени
е

Содержание

Обоз
-
начение

Содержание

























B
2



B
3


DDD

SSS

Код

Обозначен
ие
регистра.

C

Z

S

P

V

(R)

[(Di
Di+1)]







V

(Am)

CK

УC



Признак наличия переноса из 7
-
го
разряда.

Признак нулевого результат.

Признак старшего разряда результата
Признак четности.

Признак наличие переноса из 3
-
го разряда.


000

001

010

011

100

101

110

111

В

C

D

E

H

L

M

(памят
ь)

A
(аккумул
ятор)


Содержимое регистра

Содержимое ячейки
памяти с адресом

(
Di

Di
+1)

Логическое «И»

Исключение «ИЛИ»

Логическое «ИЛИ»

m
-
й бит содержимого аккумулятора (
m
=0

7)

Счетчик команд

Указатель стека

Пересылка


Второй байт
команды

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

Код регистра
приемника

Код регистра
источника


Регистр признаков

Разряды

7

6

5

4

3

2

1

0


Признаки

S

Z

0

V

0

P

1

C


Груп
-
па

Мнемо
код

Код
команды


в


т

Выполняемые действия

Признаки


Z

S

C

P


Арифмети
ческие и
логически
е
операции.

ADD

R

10000SSS

1

4/7

(A)



(A) + (R)

+

+

+

+


ADC R

10001SSS

(A)



(A) + (R) + (C)

+

+

+

+


SUB R

10010SSS

(A)



(A)


(R)

+

+

+

+


SBB R

10011SSS

(A)



(A)


(R)


(C)

+

+

+

+


ANA R

10100SSS

(A)



(A)



(R)

+

+

0

+


XRA R

10101SSS

(A)



(A)



(R)

+

+

0

+


ORA R

10110SSS

(A)



(A) V (R)

+

+

0

+


CMP R

10111SSS

(A)

(R);
если
(A)=(R),
то

z=1;

если
(
A)(R),
то

c=1

+

+

+

+


ADI

11000
110

C
6

2

7

(A)



(A) + B
2


+

+

+

+


ACI

11001
110

C
E

(A)



(A) + B
2
� + (C)

+

+

+

+


SUI

11010
110

D
6

(A)



(A)




B
2


+

+

+

+


SBI

11011
110

D
E

(A)



(A)


B
2



(C)

+

+

+

+


ANI

11100
110

E
6

(A)



(A)



B
2


+

+

0

+


XRI

11101
110

E
E

(A)



(A)



B
2


+

+

0

+


ORI

11110
110

F
6

(A)



(A) V B
2


+

+

0

+


CPI

11111
110

F
E

(A)

B
2
�;
если
(A)=
B
2
�,
то

z=1;
если
(A)


B
2
�,
то

c=1

+

+

+

+


DAD B

00001
001

09

1

10

(H)(L)



(B)(C) + (H)(L)





+




DAD D

00011
001

19

(H)(L)



(D)(E) + (H)(L)





+




DAD H

00101
001

39

(H)(L)



(H)(L) + (H)(L)





+




DAD
SP

00111
001

49

(H)(L)



(H)(L) + (
У
C)





+




CMA

00101
111

29

1

4

(A)



(A)










































Группа

Мнемо
код

Код
команды


в


т

Выполняемые
действия

Признаки

Z

S

C

P

Команд
ы
сдвига.

RLC

00000
111

07

1

4

D
m

D
m+1
, D
7

D
0
,
D
7

C





+



RRC

00001
111

0F

D
m+1

D
m,

D
0


D
7
,
D
0

C





+



RAL

00010
111

17

D
m

D
m+1
, D
7

C,
C

D
0





+



RAR

00011
111

1F

D
m+1

D
m
, D
0

C,
C

D
7





+



Команды
обмена

XCHG

11101
011

EB

1

4

(H)

(D),
(L)

(E)

НЕ

МЕНЯЮТ

ПРИ
ЗНАКОВ

XTHL

11100
011

E3

1

18

(L)

[
У
C],
(H)

[
У
C+1]

Операции
пересылк
и и
загрузки.

STA

00110
010

32

3

13

(A)



[B
3
�B
2
�]

LDA

00111
010

3A

[B
3
�B
2

]



(A)

LHLD

00101
010

2A

3

16

[B
3
�B
2
�]



(L)
[B
3
�B
2
�+1]



(H)

SHLD

00100
010

22

(L)



[B
3
�B
3
�],

(H)



[B
3
�B
2
�+1]

MVI R

00DDD110

2

7/1
0

B
2




(R)

LXI
(B,D,H
)

00DDD001

3

10

B
2




(C,E,L),

B
3




(B,D,H)

PCHL

11101
001

E9

1

5

(H)(L)



(CK)

SPHL

11111
001

F9

(H)(L)



(
У
C)

MOV
R1,R2

01DDDSSS

1

5/7

(R
2
)



(R
1
)

STAX

B

000000
10

02

1

7

(A)



[(B) (C)]

STAX

D

000100
10

12

(A)



[(D) (E)]

LDAX


B

000010
10

0A

[(B) (C)]



(A)

LDAX


D

000110
10

1A

[(D) (E)]



(A)

Операци
и
инкреме
нта
декреме
нта.

INR R

00DDD100

1

5/1
0

(R) +1



(R)

+

+



+

DCR R

00DDD101

(R)

1



(R)

+

+



+

INX
(B,D,H
)

00DDD011

(B,D,H) (C,E,L)
+1



(B,D,H)
(C,E,L)

НЕ

МЕНЯЮТ

ПРИЗНАК
ОВ

DCX
(B,D,H)

00DDD011

(B,D,H)(C,E,L)
-
1




(B,D,H)(C,E,L)

Операц
ии
перехо
дов.

JMP

110000
11

C
3

3

10

B
3
�B
2


(CK)

JNZ

110000
10

C
2

Если

z
=0

ТО

[
B
3

B
2
�]


(
CK
)

ИНАЧЕ

(
CK
) = (
CK
)
+3

JZ

110010
10

C
A

Если

z
=1

JNC

1
10100
10

D
2

Если

c
=0

JC

110110
10

D
A

Если

c
=1

JPO

111000
10

E
2

Если

p
=0

JPE

1
11010
10

E
A

Если

p
=1

JP

111100
10

F2

Если

s
=0

JM

111110
10

F
A

Если

s
=1























Груп
-
па

Мнемо
код

Код
команды


в


т

Выполняемые действия

Признаки

Z

S

C

P

Операци
и

вызова
подпрог
рамм

CALL

110011
01

C
D

3

17

(
CK
)




C
-
1][У
C
-
2],

B
3

B
2


(
CK
),

(
У
C)=(
У
C)
-
2

НЕ

МЕНЯЮТ

ПРИЗ
НАКОВ

CNZ

110001
00

C
4

3

11/
17

Если

z
=0


ТО

(
CK
)



С
-
1][УС

2];

B
2�
B
�3


(

CK
);

(УС)=(У
С)


2;

иначе

(
CK
)=(
CK
)+3


т =11 при
отсутствии
перехода и


т=17 при
переходе

CZ

110011
00

C
C

Если

z
=1

CNC

110101
00

D
4

Если

c
=0

CC

110111
00

D
C

Если

c
=1

CPO

111001
00

E
4

Если

p
=0

CPE

111011
00

E
C

Если

p
=1

CP

111101
00

F4

Если

s
=0

CM

111111
00

F
C

Если

s
=1

Возврат
из
подпрог
рамм


110010
01

C
9

1

10


C
][У
C
+1]



(
CK
),



C
)= (У
C
) + 2

НЕ

МЕНЯЮТ


ПРИЗНАКОВ

RNZ

110000
00

C
0

Если

z
=0


ТО


C
][У
C
+1]


(
CK
),

C
)=(У
C
) +
2,

ИНАЧЕ

(
CK
)=(
CK
)+1;


T

=
11 при
возврате из
подпрограммы

RZ

1100
10
00

C
8

Если

z
=1

RNC

110100
00

D
0

Если

c
=0

RC

110110
00

D
8

Если

c
=1

RPO

111000
00

E
0

1

5/1
1

Если

p
=0

RPE

111010
00

E
8

Если

p
=1

RP

111100
00

F0

Если

s
=0

RM

111110
00

F8

Если

s
=1

Операц
ии со
стеком.

PUSH

(B,D,H
)

11SSS101

1

11

(
B
,
D
,
H
)


C

1],
(
C
,
E
,
L
)



C
-
2]

C
)=(У
C
)
-
2

НЕ

МЕНЯЮТ

ПРИЗ
НАКОВ

PUSH

PSW

111101
01

F5

(A)

[
У
C
-
1],
(F)



[
У
C

2] (
У
C) =
(
У
C)


2

POP
(B,D,H
)

11DDD001

1

10


C
]

(
C
,
E
,
L
);[У
C
+1]

(
B
,
D
,
H
); (У
C
) =
(УС)+2

POP

PSW

11110
001

F1



[
У
C]



(F),
[
У
C+1]



(A)
(УC) =
(
УС
)+2

+

+

+

+

Ввод
-

вывод

IN

11011
011

DB

2

10

(
УВ
B)

(A),B2눔

номер(
У
BB)

НЕ

МЕНЯЮТ

ПРИЗНА
КОВ

OUT

11010
011

D3



(A)

(
У
BB),B2눔

номер
(
У
BB)

Операции
управлен
ия

STC

00110
111

37

1



4

1



(C)





1



CMC

00111
111

3F



(Ĉ)



(
C
) инверсия С





+



EI

11111
101

FD



Разрешение
прерываний

НЕ

МЕНЯЮТ

ПРИЗНА
КОВ

DI

11110
011

F
3



Запрет прерываний

NOP

00000
000

00



Холостая операция

HLT

01110
110

76

7

Остановка

RST N

11AAA111

1

11

(CK)


C
-
1][УС

2],



C
)




C
)


2
0000000000ААА000



(
CK
)









Приложенные файлы

  • pdf 18363310
    Размер файла: 881 kB Загрузок: 0

Добавить комментарий