Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

литература / Пухальский Проектирование микропроцессорных систем 2001

.pdf
Скачиваний:
330
Добавлен:
12.11.2017
Размер:
21.12 Mб
Скачать

30

Глава 1. Микропроцессоры 8080 и 8085

регистра признаков F), 8-разрядные ячейки памяти М, 8- и 16-разрядные данные dS и d 16, ко­ торым пользователем могут присваиваться символические имена, 8-разрядный адрес port внешнего устройства, 16-разрядный адрес памяти addr.

Команда

MOV

rl, r l

MOV

r, M

MOV

M, r

MVI

r, d&

MVI

M, d8

LXI

rp, d 16

LDA

addr

STA

addr

LHLD

addr

SHLD

addr

LDAX

rp

STAX

rp

XCHG

 

ADD

r

ADI

d&

ADD

M

ADC

r

ADC

M

ACI

dS

SUB

r

SUI

dS

SUB

M

SBB

r

SBI

d8

SBB

M

INR

r

INR

M

DCR

r

DCR

M

INX

rp

DCX

rp

DAD

rp

DAA

 

ANA

r

ANI

dS

ANA

M

XRA

r

XRI

dS,

XRA

M

Таблица 1.5. Команды микропроцессоров 8080/4 и 8085/1

 

 

 

 

Описание операции

B /M

 

 

 

 

Группа команд передачи данных

 

rl

<— rl

 

 

{M ove}

1/1

r <r- M(rp H)

 

 

1/2

M(rp H)

r

 

 

1/2

r <— d&

 

 

{Move immediate}

2/2

M(rp H)

d.%

 

 

2/3

rp

<— d l 6, rp = B, D, H или SP

{Load immediate}

3/3

A

<— M(addr)

 

{Load direct accumulator)

3/4

M(addr)

<r- A

 

{Store direct accumulator)

3/4

L

<- M(addr), H

M(addr + 1)

{Load H and L direct}

3/5

M(addr)

<— L, M(addr + 1) <— H

{Store H and L direct}

3/5

A

<— M(rp), rp = В или D

{Load accumulator indirect j

1/2

M(rp)

<— A, rp = В или D

{Slore accumulator indirect}

1/2

H

о

D, L <-» E

 

{Exchangej

1/1

 

 

 

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

 

A

<— A + r

 

{Add)

1/1

A

<^A + d8

 

(Add immediate}

2/2

A

<— A + M(rp H)

 

 

1/2

A

<— A + r + CY

 

{Add with carry)

1/1

A

<—A + M(rp H) + CY

 

1/2

A

<- A + dS + CY

 

{Add with carry Immediate}

2/2

A

<— A -

r

 

{Subtract}

1/1

A

< - A - r f8

 

(Subtract immediate}

2/2

A

<— A -

M(rp H)

 

 

1/2

A

<— A -

r - CY

 

{Subtract with borrow }

1/1

A

<— A -

- CY

 

{Subtract immediate}

2/2

A

<— A - M(rp H) - CY

 

1/2

r

<— r +

1

 

{bicrement}

1/1

Л/(гр H)

<- M(rp H) + 1

 

1/3

r

^— r —1

 

{Decrement}

1/1

M(rp H)

<r- M(rp H) - 1

 

1/3

rp

<— rp + 1, rp = B, D, H или SP

{Increment rp]

1/1

rp

<— rp - 1, rp = B, D, H или SP

{Decrement rp)

1/1

rp H

<— rp H + rp, rp = B, D, H или SP {Double precision add)

1/1

Десятичная коррекция

Decimal adjust accumulator}

1/1

 

 

 

Группа команд логических операций

 

A

<— A & r

{And register with accumulator}

1/1

A

<— A & d8

{And immediate with accumulator}

2/2

A

4—A & M(rp H)

1And memory with accumulator}

1/2

A

<—A © r

{Exclusive or register with”accumulator}

1/1

A

<—A © dS

{Exclusive or immediate with accumulator j

2/2

A

<— A ® M (r p H )

{Exclusive or memory with accumulator)

1/2

ОС О

^ 85

F

4

 

5

4

-

7

7

-

7

7

-

7

7

-

10

10

-

10

10

-

13

13

-

13

13

-

16

16

-

16

16

-

7

7

-

7

7

-

4

4

-

4

4

+

7

7

+

7

7

+

4

4

+

7

7

+

7

7

+

4

4

+

7

7

+

7

7

+

4

4

+

7

7

+

7

7

+

5

4

Д

10

10

Д

5

4

Д

10

10

A

5

6

-

5

6

-

10

10

V

4

4

+

4

4

*

7

7

*

7

7

*

4

4

#

7

7

#

7

7

#

B /M
1/1 2 /2 1 /2 1/1 2 /2 1 /2
1/1

1.6. Система команд микропроцессоров 8080 и 8085

31

Продолжение табл. 1.5

Команда

 

 

 

Описание операции

ORA

г

А

<— A v г

 

{Or register with accumulator]

ORI

d.%

A

<— A v d S

 

{Or immediate with accumulator]

ORA

М

A <— A v M(rp H)

{Or memory with accumulator]

СМР

г

д

\ Z

=

1 при A = r, d8, M

{Compare)

CPI

d8

 

f

СY = 1 при A < r, d 8, M

{Compare unmediate}

СМР

М

A - M(rp H ) J

 

 

 

RLC

 

---- ----

 

---- ---- ----

{Rotate accumulator

 

 

CY f j - A ,

 

A2 t- Aj f- A 0^

lefi .n carfyj

у 80

^ 85

F

 

 

4

4

#

7

7

#

7

7

#

4

4

+

7

7

+

7

7

+

4

4

V

RRC

 

 

A7

 

A2

A)

A 0 -*-> CY

{Rotate accumula,or

1/1

4

4

V

 

 

1 —

 

с

 

 

 

right in carry]

 

 

 

 

 

 

 

 

 

 

 

RAL

 

|- CY <— A-; «-•*•«- Aj <r- A;

Aq <-|

 

{Rotate accumulator

1/1

4

4

V

 

'-------------------------- >------------------------>

 

left through carry]

 

 

 

 

 

 

 

RAR

 

 

|-> A-j ->

-> A2 -» A [

-> A q rCY-j

[R0taie accumulator

1/1

4

4

V

 

 

 

 

<

 

 

 

П£/гг through саггу]

 

 

 

 

 

 

 

 

 

 

 

 

СМА

 

A <— /4

 

 

 

{Complement accumulator]

1/1

4

4

-

СМС

 

CY <— СУ

 

 

 

 

 

{Complement carry]

1/1

4

4

V

STC

 

CY

1

 

 

 

 

 

{Sef carry!

1/1

4

4

V

 

 

 

 

 

Группа команд передачи управления

 

 

 

 

JMP

addr

PC <— addr

 

 

 

 

 

 

jJum p}

3/3

10

10

-

]cond

addr

PC <— addr

 

 

 

 

 

{Jump conditional]

3/3

10

7/10 1

-

PCHL

 

PC <— HL

 

 

(Load Program Counter with H and L]

1/1

5

6

-

CALL

addr

Л

SP <- SP -

1, M SP)

PC/!,

 

 

{Call]

3/5

17

18

-

Сcond

addr

J

SP <— SP -

1, M(SP) <- P Q ; PC <r- addr

{Call conditional]

■—,

11/17 1 9/18 1

-

RET

 

1

P C /< ~ M S P ), S P < - S P + 1,

 

{Return}

1/3

10

10

-

Rcond

 

J

PC/i <—M(SP), SP <—SP + 1

 

{Return conditional]

1/1/32

5/11 1

6/12 1

-

RST

n

f

SP <- SP -

1, M(SP) <- PC/i,

 

{R eport}

1/3

11

12

 

1 S P ^ - S P -

l,M ( S P ) < - P a ;P C < - 8 x n

(n = 0 . . . 7)

 

 

 

 

 

 

 

 

 

 

 

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

вводом-выводом и состоянием М П

 

 

PUSH

rp

SP f - SP -

1. M S P ) 4 - rph, SP <- SP -

1, M S P ) <- m l

{Push]

1/3

11

12

-

PUSH

PSW

S P ^ S P -

1, M SP) <— A, S P ^ - S P - 1, M(SP) <— F

 

1/3

11

12

-

POP

rp

rpl <- M (SP), SP <— SP + 1, rph <- M(SP), SP <- SP + 1

{Pop]

1/3

10

10

-

POP

PSW

F <- M SP), SP <—SP + 1, A <—M SP), SP f - SP + 1

 

1/3

10

10

+

XTHL

 

L <-> M(SP),H <-» M(SP+1) {Exchange Top o f Stack with H and L]

1/5

18

16

-

SPHL

 

SP

HL

 

 

 

{Load Stack Pointer with H and L }

1/1

5

6

-

IN

port

A <r—HOiport)

 

 

 

 

 

[Input]

2/3

10

10

-

OUT

port

IIO(port) <—A

 

 

 

 

{Output]

2/3

10

10

-

El3

 

INTE = 1 после следующей команды

 

(Enable Interrupts]

1/1

4

4

-

DI3

 

INTE = 0 после данной команды

 

{Disable Interrupts]

1/1

4

4

-

HLT

 

Останов процессора; PC

 

PC + 1

 

 

{H ah)

1/1

7

5

-

NOP

 

Пустая операция

 

 

 

{No-operation}

1/1

4

4

-

SIMJ

 

Установка маски прерываний

 

{Set Interrupt Mask]

l/l

-

4

-

RIM4

 

Чтение маски прерываний

 

{ReadInterrupt M ask}

1/1

-

4

-

 

П р и м е ч а н и е :

1X ю X/Y при невыполнении условия cond и Y при выполнении условия cond; 2 X из

Ъ'X/Y при невыполнении условия cond и Y при выполнении условия cond;

в МП 80854 вместо триггера 1NTE

данные команды управляют флагом (триггером) IE (см. рис. 1.16); только для МП 8085Л.

 

 

 

32

МК

хО

Ох

NOP

RIM

Зх

SIM

MOV

в , в

 

MOV

D, В

 

MOV

н, в

 

MOV

м, в

 

ADD

В

 

SUB

В

 

Ах

ANA

В

 

Вх

ORA

В

 

Сх

RNZ

Dx

RNC

Ex

RPO

Fx

RP

МК

xO

 

Глава 1. Микропроцессоры 8080 и 8085

 

 

Таблица 1.6. М аш инные коды команд МП 8080А и 8085А

 

xl

x2

x3

x4

x5

x6

x7

LXI

STAX

INX

INR

DCR

MVI

RLC

B ,d l6

В

В

В

В

B,</8

 

LXI

STAX

INX

INR

DCR

MVI

RAL

D, d l 6

D

D

D

D

D, dS

 

LXI

SHLD

INX

INR

DCR

MVI

DAA

H, d l6

addr

H

H

H

H, d8

 

LXI

STA

INX

INR

DCR

MVI

STC

SP, d l6

addr

SP

M

M

M,rf8

 

MOV

MOV

MOV

MOV

MOV

MOV

MOV

В, С

B, D

В, E

B, H

B, L

в , M

B, A

MOV

MOV

MOV

MOV

MOV

MOV

MOV

D, С

D, D

D, E

D, H

D, L

D, M

D, A

MOV

MOV

MOV

MOV

MOV

MOV

MOV

H ,C

H, D

H, E

H, H

H, L

H, M

H, A

MOV

MOV

MOV

MOV

MOV

HLT

MOV

M, с

M, D

M, E

M, H

M, L

M, A

 

ADD

ADD

ADD

ADD

ADD

ADD

ADD

С

D

E

H

L

M

A

SUB

SUB

SUB

SUB

SUB

SUB

SUB

С

D

E

H

L

M

A

ANA

ANA

ANA

ANA

ANA

ANA

ANA

С

D

E

H

L

M

A

ORA

ORA

ORA

ORA

ORA

ORA

ORA

С

D

E

H

L

M

A

POP

JNZ

JMP

CNZ

PUSH

ADI

RST

В

addr

addr

addr

В

d8

0

POP

JNC

OUT

CNC

PUSH

SUI

RST

D

addr

port

addr

D

rf8

2

POP

JPO

XTHL

CPO

PUSH

ANI

RST

H

addr

addr

H

dS

4

 

POP

JP

CP

DI

PUSH

ORI

RST

PSW

addr

addr

PSW

rf8

6

 

xl

x2

x3

x4

x5

x6

x7

MK

Ox

lx

2x

3x

4x

5x

6x

7x

8x

9x

Ax

Bx

Cx

Dx

Ex

Fx

MK

Символическое обозначение типа rl г 2 означает передачу содержимого регистра г2 в регистр r l. Адреса памяти М и внешних устройств I/O указываются в круглых скобках, напри­ мер: M(addr), M(rp), I/0(port) (addr — адрес памяти, port — адрес внешнего устройства, гр — содержимое регистровой пары В, D или Н, являющееся адресом памяти). Адресация некоторых операндов производится в неявном виде самим кодом операции команды. Двухбайтовые опе­ ранды и адреса при их описании иногда маркируются буквами I (low — младший байт операн­ да или адреса) и h (high — старший байт). В табл. 1.5 дано описание команд: их назначение, число байт и машинных циклов (В/М), число тактов Т выполнения команды 80, Т 85) и воз­ действие на флаги (F). Машинные коды команд (МК) приведены в табл. 1.6 (например, МК команды MOV D, В равен 010100002 = 50i6 — см. рис. 1.13).

Регистр признаков. При выполнении некоторых команд используются биты (флаги F) регистра признаков F (узел FFF на рис. 1.3). Содержимое регистра признаков может изменять­ ся командами, так как в нем фиксируются некоторые результаты выполнения команд. Формат регистра признаков F показан на рис. 1.14.

МК

х8

Ох

Зх

MOV

с , в

 

MOV

Е, В

 

MOV

L, В

 

MOV

А, В

 

ADC

В

 

SBB

в

 

Ах

XRA

В

 

Вх

СМР

В

 

Сх

RZ

Dx

RC

Ex

RPE

Fx

RM

МК

х8

1.6. Система команд микропроцессоров 8080 и 8085

33

х9

 

хА

xB

DAD

 

LDAX

DCX

В

 

В

В

DAD

 

LDAX

DCX

D

 

D

D

DAD

 

LHLD

DCX

Н

 

addr

H

DAD

 

LDA

DCX

SP

 

addr

SP

MOV

 

MOV

MOV

С, С

 

С, D

С, E

MOV

 

MOV

MOV

Е, С

 

E, D

E, E

MOV

 

MOV

MOV

L, С

 

L, D

L, E

MOV

 

MOV

MOV

А, С

 

A, D

A, E

ADC

 

ADC

ADC

С

 

D

E

SBB

 

SBB

SBB

С

 

D

E

XRA

 

XRA

XRA

С

 

D

E

СМР

 

CMP

CMP

С

 

D

E

RET

 

JZ

 

addr

 

 

 

 

JC

IN

 

addr

port

 

 

PCHL

 

JPE

XCHG

 

addr

 

 

 

SPHL

 

JM

EI

 

addr

 

 

 

х9

 

xA

xB

D7

D6

D5

0 4

xC

xD

INR

DCR

С

С

INR

DCR

E

E

INR

DCR

L

L

INR

DCR

A

A

MOV

MOV

с, H

C, L

MOV

MOV

E, H

E, L

MOV

MOV

L, H

L, L

MOV

MOV

A, H

A, L

ADC

ADC

H

L

SBB

SBB

H

L

XRA

XRA

H

L

CMP

CMP

H

L

cz

CALL

addr

addr

CC

addr

 

CPE

addr

 

CM

 

addr

 

xC

xl)

xE

xF

MVI

RRC

C, dS

 

MVI

RAR

E, dS

 

MVI

CM A

L,rf8

 

MVI

CMC

A, dS

MOV

MOV

с , M

C, A

MOV

MOV

E, M

E, A

MOV

MOV

L, M

L, A

MOV

MOV

A, M

A, A

ADC

ADC

M

A

SBB

SBB

M

A

XRA

XRA

M

A

CMP

CMP

M

A

ACI

RST

d8

1

SBI

RST

dS

3

XRI

RST

dS

5

CPI

RST

dS

7

xE

xF

D3

D2

D l

DO

MK

Ox

lx

2x

3x

4x

Sx

6x

7x

8x

9x

Ax

Bx

Cx

Dx

Ex

Fx

MK

s

z

0

AC

0

P

1

CY

 

 

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

 

 

Флаг Z (zero — нуль) идентифицирует нулевой результат выполнения в АЛУ команды:

[О - результат операции не равен О, 1 - результат операции равен 0.

Флаг CY (Carry — перенос) идентифицирует перенос/заем, возникающий при выполнении в АЛУ операций над операндами:

3 Г. И. Пухальский

34

Глава 1. Микропроцессоры 8080 и 8085

0 - нет переноса (заема) из разряда Dn, 1 - есть перенос (заем) из разряда D7.

Флаг Р (Parity — паритет) идентифицирует четное или нечетное число единиц, содержа­ щихся в байте результата выполнения команды (Even/Odd Parity — четный/нечетный паритет):

0 - число единиц в байте нечетное,

1 - число единиц в байте четное

(Р = A 7® A(,®As®A4® Ai ® A2 ® A l® A0, Л,- — разряды аккумулятора, / = 0 ... 7).

Флаг S (Sign — знак) идентифицирует знак числа результата выполнения команд арифме­ тических операций в дополнительном коде:

0 - разряд D-j = 0 (число положительное), 1 - разряд D-j = 1 (число отрицательное)

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

Флаг АС (Auxiliary Carry — вспомогательный перенос) идентифицирует наличие переноса из разряда £>3 в разряд D4 при выполнении команд арифметических операций:

[О - нет переноса из разряда D3,

АС —s

[1 - есть перенос из разряда D 3.

Этот флаг используется при выполнении команд десятичной арифметики, когда числа представляются в упакованном двоично-десятичном коде, например: 95ш = 1001 01012 — один байт представляет двухразрядное десятичное число. В тетрадах байта нельзя использовать чис­ ла от Ah = 10102 до Fh = 11112Десятичную коррекцию числа выполняет команда DAA (см.

задачу 1).

Воздействие команд на флаги регистра признаков указано в графе F табл. 1.5 символами: -, +, А, V, * и #. Значения флагов, обозначенных этими символами, приведены в табл. 1.7 (“- ” — команда не изменяет значения флага, “+” — команда изменяет флаг, “0” — флаг уста­ навливается в состояние 0).

 

Таблица 1.7. Флаги

 

F

S

Z

АС

р

CY

+

+

+

+

+

+

А

+

+

+

+

-

V

-

-

-

-

+

*

+

+

+

+

0

#

+

+

0

+

0

 

 

MOV

 

В, Н

 

 

 

MOV

 

А, М

 

XCHG

Флаг переноса CY позволяет организовать программным способом сложение, вычитание, умножение и деление чисел, для представления которых используется любое число байт. Четыре флага (Z, СУ, S и Р) используются командами передачи управления для осуществления условных переходов, условных вызовов подпрограмм и условных возвратов из подпрограмм. Все команды по их назначению делятся на пять групп.

Г руппа команд передачи данных. Эти команды не из­ меняют содержимого регистра признаков F, так как произво­ дят только пересылку данных из одного устройства (регистра или памяти) в другое, не изменяя их содержимого. Примеры записи команд передачи данных:

В <— Н

А <— M(rp Н) — адрес памяти М в регистрах Н и L Н D, L <-> Е — обмен содержимым rp Н и rp D

Cond
Команды условных передач управления
Результат операции для передачи управления
Таблица 1.8. Условия передачи управления

36

 

Глава 1. Микропроцессоры 8080 и 8085

LDA

0D57AA

; Загрузка в аккумулятор А содержимого ячейки памяти A/(D57A)

XRI

ОААh

; A A h - 10101010b — инвертирование при значении 1 разряда этого числа

STA

0 D5 7 A/1

; Запись в ячейку памяти A/(D57A) результата операции

Команды сравнения СМР (СМР — Compare — сравнение) 8 -разрядных операндов выпол­ няются с помощью операции вычитания без фиксирования результата в аккумуляторе А, т. е. сами операнды при выполнении этих команд не изменяются. Это позволяет производить по­ следовательные многократные сравнения содержимого аккумулятора Л с различными операн­ дами. Изменение флагов Z и CY этими командами в регистре признаков используется команда­ ми условной передачи управления для изменения порядка выполнения команд программы.

Команды сдвига операндов на один разряд влево RLC, RAL и вправо RRC, RAR произво­ дятся над содержимым аккумулятора с участием флага CY регистра признаков (см. табл. 1.5). Данные операции позволяют реализовать, в частности, программное выполнение операций умножения и деления многобайтных чисел в соответствии с их традиционными алгоритмами.

Задача 3. В регистре Е поменять местами младшую и старшую тетрады. Решение:

MOV

A, E

RRC

 

RRC

 

RRC

 

RRC

 

MOV

E, A

A —A-jA5A5A4A3A2AjAq ^— E A <r- A[)A-iAfsAiA 4A 3A 2A[

A <— AiAoA-iAbAsAtAiAj A ^—A 2A {A^yA-jAt^A^A^A^ A <— A 1A 2A 1A0A 7A 6A5A4

E <— А (здесь вместо команды сдвига вправо RRC можно ; использовать и команду сдвига влево RLC)

Группа команд передачи управления. Выборка команд программы производится из по­ следовательных ячеек памяти в порядке возрастания их адресов при выполнении всех команд, кроме команд передачи управления (JMP, Jcond, PCHL и CALL, Ccond, RST). Данные коман­ ды применяются для изменения последовательности выборки команд из памяти. Некоторые из этих команд используют флаги регистра признаков F для условных передач управления — при выполнении условия, зафиксированного во флаге регистра признаков F, производится передача управления по адресу, указанному в команде, а при невыполнении условия производится пере­ ход к выполнению следующей команды программы.

В табл. 1.5 были приведены ко­ манды условных передач управле­ ния. Они содержат мнемонику cond (condition — условие), которая заме­ няется в командах на языке ассемб­

NZ

Не нуль (Z = 0)

JNZ,

CNZ,

RNZ

лера на мнемонику в соответствии

с табл. 1 .8 .

 

Z

Н у л ь (г= 1 )

JZ,

CZ,

RZ

 

Команды JMP addr и Jcond addr

NC

Нет переноса (CY = 0)

JNC,

CNC,

RNC

(команды безусловных и условных

С

Есть перенос (CY = 1)

JC,

СС,

RC

переходов) задают переход на вы­

РО

Нечетность (Р = 0)

JPO,

СРО,

RPO

полнение

команды, расположенной

PE

Четность = 1)

JPE,

СРЕ,

RPE

по адресу

addr, который содержится

P

Плюс (S = 0)

JP,

СР,

RP

во втором и третьем байтах команд

M

Минус (5 = 1 )

JM,

СМ,

RM

(прямая адресация переходов). Эти

 

 

 

 

 

 

 

 

 

 

команды

обеспечивают ветвление

программ. Команда безусловного перехода PCHL производит загрузку содержимого rp Н в программный счетчик PC, что приводит к выборке следующей команды, находящейся по адре­ су, задаваемому содержимым регистров Н и L (косвенно-регистровая адресация переходов).

1.6. Система команд микропроцессоров 8080 и 8085

39

прерывания, устанавливаемого в 1 положительным фронтом сигнала RST 7.5 (сброс этого триггера производится и автоматически при подтверждении прерывания RST 7.5); SOD (Serial Output Data) — разряд данных для вывода по последовательному каналу; SOE (Serial Output Enable) — разрешение вывода разряда £)7 аккумулятора в триггер SOD последовательного ка­ нала связи. Если разряд MSE = 0, то маска не устанавливается, т. е. разряды MSE и SOE исполь­ зуются для разделения операций установки маски и последовательного вывода данных. Значе­ ние сигнала RESET IN= 0 => SOD = О, R l .5 = 0 и Мк.5 = 1.

D1

D6

D5

D4

D 3

D2

D1

DO

SOD

SOE

 

R1.5

MSE

M l .5

Мб.5

М5.5

Данные для вывода

 

 

 

 

 

 

Маска

Разрешение вывода

 

 

 

 

Разрешение установки маски

Не определено

 

 

 

 

Сброс триггера RST 7.5

Рис. 1.15. Назначение разрядов аккумулятора для команды SIM

Задача 4. Разрешить обработку запросов прерываний по входам RST 7.5, RST 5.5 и запре­ тить по входу RST 6.5. Вывести значение разряда 0 регистра В в последовательный канал связи

SOD. Решение:

MVI

A, OA/i

SIM

 

EI

 

MOV

А, В

RRC

 

ANI

80h

ORI

40/i

SIM

 

А <— OAh = 0000 1010

Установка маски прерываний Разрешение приема незамаскированных запросов прерываний

А <— /)

lSJU i .ll; :

/>,;

 

А <—

;,.1 v \ >,. \

\ i Il'Ji !j(Jl;B,:HJ12B

 

A <- B0B1B6B5B4B3B2B l & 1000 0000 = fioOOO 0000

 

A <- B0000 0000 V 0100 0000 = B0100 0000 (SOE

1)

SOD < - B()

 

 

На рис. 1.15 указаны значения 0 и 1 разрядов аккумулятора, удовлетворяющие условиям поставленной задачи — перед выполнением команды S1M в аккумулятор следует загрузить число ОА1г.

Команда RIM (Read Interrupt Mask) загружает в аккумулятор данные, относящиеся к пре­ рываниям и последовательному каналу ввода. На рис. 1.16 показано содержимое аккумулятора после выполнения этой команды. Байт содержит информацию о состояниях маски (разряды D2, D1 и D0), флага разрешения прерывания (разряд D3), информацию о входах аппаратных преры­ ваний RST 1.5, 6.5 и 5.5, находящихся в состоянии ожидания обслуживания (разряды D6, D5 и D4), и значение сигнала на входе SID последовательного канала (разряд D7).

D l

D6

D5

D4

D3

D l

oi

DO

 

SID

/7.5

/6.5

/5.5

IE

M l .5

M6.5

M5.5

 

 

 

 

 

 

T

 

~ T ~ Маска

 

 

 

 

 

 

Флаг разрешения прерываний (INTE в МП 8080Л)

 

 

 

 

 

Прерывания в ожидании

 

 

 

 

 

 

Введенные последовательные данные

 

 

 

 

 

 

 

>.п

л

Рис. 1.16. Содержимое аккумулятора после выполнения команды RIM