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

Московский Инженерно – Физический Институт (Государственный Университет)

Работа №1

Изучение структуры однокристального микропроцессора КР580ВМ80А

Выполнила

Студентка Первинкина

Группы Ф6-01н

2006г

  1. Загрузка регистров общего назначения

Задание:

Выполнить загрузку регистров:

а) B:= F0

С:=33

D:= EE

E:=AA

H:=00

L:=19

A:=FF

Адрес ЯП

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

Код

Комментарий

0800

0801

MVI B, DATA8

06

F0

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

B= F0

0802

0803

MVI C, DATA8

0E

33

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

C=33

0804

0805

MVI D, DATA8

16

EE

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

D= EE

0806

0807

MVI E, DATA8

1E

AA

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

E=AA

0808

0809

MVI H, DATA8

26

00

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

H=00

080A

080B

MVI L, DATA8

2E

19

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

L=19

080C

080D

MVI A, DATA8

3E

FF

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

A=FF

080E

NOP

00

2. Загрузка пары регистров общего назначения 16-разрядными данными

Задание:

Выполнить загрузку пар регистров:

а) BC:=FFFF

DE:=0123

HL:=55AA

Адрес ЯП

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

Код

Комментарий

0800

0801

0802

LXI BC, DATA16

01

FF

FF

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

BC=FFFF

0803

0804

0805

LXI DE, DATA16

11

23

01

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

DE=0123

0806

0807

0808

LXI HL, DATA16

21

AA

55

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

HL=55AA

0809

NOP

00

  1. Загрузка указателя стека

Задание:

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

SP:=0820

Адрес ЯП

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

Код

Комментарий

0800

0801

0802

LXI SP, DATA16

31

20

08

Загрузка указателя стека = 0820

0803

NOP

00

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

SP:=0825

Адрес ЯП

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

Код

Комментарий

0800

0801

0802

LXI HL, DATA16

21

25

08

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

HL=0825

0803

SPHL

F9

Загрузка указателя стека = HL

0804

NOP

00

4. Загрузка счетчика команд

Задание:

Выполнить загрузку счётчика команд путём использования команды косвенной загрузки (переход с адреса 0800 на указанные ниже адреса):

а) 0860

0810

085F

Адрес ЯП

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

Код

Комментарий

0800

0801

0802

LXI HL, DATA16

21

60

08

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

HL=0860

0803

PCHL

E9

Загрузка счётчика команд = HL

0860

0861

0862

LXI HL, DATA16

21

10

08

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

HL=0810

0863

PCHL

E9

Загрузка счётчика команд = HL

0810

0811

0812

LXI HL, DATA16

21

5F

08

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

HL=085F

0813

PCHL

E9

Загрузка счётчика команд = HL

085F

NOP

00

  1. Пересылка

Задание:

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

а) в B из A (значение 00)

в C из L (значение 21)

в H из B (значение EF)

Адрес ЯП

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

Код

Комментарий

0800

0801

MVI A, DATA8

3E

00

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

A=00

0802

MOV B,A

47

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

0803

0804

MVI L, DATA8

2E

21

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

L=21

0805

MOV C,L

4D

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

0806

0807

MVI B, DATA8

06

EF

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

B=EF

0808

MOV H,B

60

Пересылка из B в H

0809

NOP

00

Московский Инженерно – Физический Институт (Государственный Университет)

Работа №2

Элементы программирования микропроцессора КР580ВМ80А

Выполнила

Студентка Первинкина

Группы Ф6-01н

2006г

  1. Команды сложения 8-разрядных чисел

Задание:

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

A=A+B+M+5:

a)A:=4A

B:=1B

M:(0900)=33

Адрес ЯП

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

Код

Комментарий

0800

0801

MVI A, DATA8

3E

4A

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

A= 4A

0802

0803

MVI B, DATA8

06

1B

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

B=1B

0804

ADD B

80

A=A+B

0805

0806

0807

*LXI H, 0900

21

00

09

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

H=0900

F=16 A=65

0808

ADD M

86

A=A+M

0809

080A

*ADI 05

C6

05

A=A+5

F=82 A=98

080B

*NOP

00

F=82 A=9D

Проверка:

А = 4А+1В = 65(16)

А = 4А+1В+М(33) = 98

А = 4А+1В+М(33)+5 = 9D

F=16(16)=0001 0110(2)

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

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

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

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

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

P = 1 – чётное число единиц в коде числа( 65(16) = 0110 0101(2))

1 = 1 – всегда 1

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

F=82(16)=1000 0010(2)

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

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

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

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

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

P = 0 –не чётное число единиц в коде числа( 9D(16) = 1001 1101(2) 98(16) = 1001 1000(2))

1 = 1 – всегда 1

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

2) Запишите в память начиная с адреса0800 коды программы сложения 16-разрядных чисел, используя команды 8-разрядного сложения:

HL=DE+BC:

a)BC:=4ACE

DE:=1B63

Адрес ЯП

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

Код

Комментарий

0800

0801

0802

LXI B, DATA16

01

CE

4A

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

BC=4ACE

0803

0804

0805

LXI D, DATA16

11

63

1B

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

DE=1B63

0806

MOV A,C

79

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

0807

ADD E

83

Сложение младшего байта, установка бита переноса, если переполнение

0808

MOV L,A

6F

Младший байт результата в L

0809

*MOV A,B

78

F=13 А=31

080A

ADC D

8A

Сложение старшего байта с учетом переноса

080B

*MOV H,A

67

Старший байт в Н

F=16 А=66

080С

*NOP

00

F=16 L=31 H=66

Проверка:

A= CE+63=131(16)

A=4A+1B =65(16)

F=13(16)=0001 0011(2)

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

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

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

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

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

P = 0 – нечётное число единиц в коде числа(31(16) = 0011 0001(2))

1 = 1 – всегда 1

C = 1 – перенос из старшего разряда (CE+63=131(16))

F=16(16)=0001 0110(2)

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

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

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

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

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

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

1 = 1 – всегда 1

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