Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы 1-3 по микропроцессорам.doc
Скачиваний:
42
Добавлен:
10.05.2014
Размер:
227.84 Кб
Скачать

2. Команды вычитания 8-разрядных чисел

Задание:

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

A=A-B-M-3:

a)A:=4А

B:=1В

M:(0900)=33

Адрес ЯП

Мнемоника команды

Код

Комментарий

0800

0801

MVI A, DATA8

3E

Загрузка регистра A

A= 4А

0802

0803

MVI B, DATA8

06

Загрузка регистра B

B=1В

0804

SUB B

90

A=A-B

0805

0806

0807

*LXI H, 0900

21

00

09

Загрузка регистра H

H=0900, адрес M

А=2F F=02

0808

SUB M

96

A=A-M

0809

080A

*SUI 03

D6

03

A=A-3

A=FC F=97

080B

*NOP

00

A=F9 F=96

Проверка:

А=4А-1В=2F

A=4A-1B-M(33)=FC

A=4A-1B-M(33)-3=F9

F=02(16)=0000 0010(2)

S = 0 – положительный результат операции

Z = 0 – не нулевой результат операции

0 = 0 – всегда ноль

AC = 0 – нет переноса из младшего полу-байта в старший

0 = 0 – всегда ноль

P = 0 – не чётное число единиц в коде числа( 2F(16) = 0010 1111(2))

1 = 1 – всегда 1

C = 0 – нет переноса из старшего разряда и нет заёма в старший разряд

F=97(16)=1001 0111(2)

S = 1 – отрицательный результат операции (т.к. в двоичном коде это число начинается с 1)

Z = 0 – не нулевой результат операции

0 = 0 – всегда ноль

AC = 1 –переноса из младшего полу-байта в старший (при сложении 2F+CD)

0 = 0 – всегда ноль

P = 1 – чётное число единиц в коде числа( FC(16) = 1111 1100(2))

1 = 1 – всегда 1

C = 1 –переноса из старшего разряда

F=96(16)=1001 0111(2)

S = 1 – отрицательный результат операции (т.к. в двоичном коде это число начинается с 1)

Z = 0 – не нулевой результат операции

0 = 0 – всегда ноль

AC = 1 –переноса из младшего полу-байта в старший (при сложении 2F+CD)

0 = 0 – всегда ноль

P = 1 – чётное число единиц в коде числа( FC(16) = 1111 1100(2))

1 = 1 – всегда 1

C = 0 – нет переноса из старшего разряда и нет заёма в старший разряд

  1. Команды двойного сложения

Задание:

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

HL=BC+DE:

a)BC:=8137

DE:=72D9

Адрес ЯП

Мнемоника команды

Код

Комментарий

0800

0801

0802

LXI BC, 8137

01

37

81

Загрузка пары регистров BC

BC=8137

0803

0804

0805

LXI DE, 72D9

11

D9

72

Загрузка пары регистров DE

DE=72D9

0806

MOV H,B

60

Пересылка из В в Н

0807

MOV L,C

69

Пересылка из С в L

0808

DAD D

19

HL=HL+DE

0809

NOP

00

F=D6 H=F4 L=10

Проверка:

HL=BC+DE=8137+72D9=F410

F=D6(16)=1101 0111(2)

S = 1 – отрицательный результат операции (т.к. в двоичном коде это число начинается с 1)

Z = 1 – не нулевой результат операции

0 = 0 – всегда ноль

AC = 1 –переноса из младшего полу-байта в старший

0 = 0 – всегда ноль

P = 1 – чётное число единиц в коде числа( F410(16) = 1111 0100 0001 0000(2))

1 = 1 – всегда 1

C = 0 – нет переноса из старшего разряда и нет заёма в старший разряд(важно только это)