Лабораторная работа № 9

Программирование арифметических задач на Ассемблере для микропроцессора К580

Выполнила: Костюк Иван

Вариант 9

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

1.Сложение двухбайтовых десятичных чисел

Цель: Выполнить операцию сложения двух двухбайтных чисел

(3400+2176)

340010=D4816

156910=88016

Таблица 1 - Программа PRG 1 сложения двух десятичных чисел

Адрес

Код

Мнемоника

Комментарий

0000

3E

MVI A,48

Младший байт первого слагаемого заносится в аккумулятор 48

0001

48

0002

06

MVI B, 80

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

0003

80

Младший байт второго слагаемого заносится в аккумулятор 80

0004

80

ADD B

Сложить младшие байты слагаемых 48+80

0005

32

STA adr

Записать содержимое аккумулятора B

0006

20

Результат в ячейку 20

0007

00

0008

3E

MVI A, 0D

Старший байт первого слагаемого заносится в аккумулятор 0D

0009

0D

000А

06

MVI B, 06

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

000В

08

Старший байт второго слагаемого заносится в аккумулятор 08

000С

88

Сложить Старшие байты

000D

32

STA adr

Записать содержимое аккумулятора B

000E

21

Результат в ячейку 21

000F

00

0010

76

До:

После:

 

НЕ нашли? Не то? Что вы ищете?

Ответ:15C8

2. Вычитание одинаковых по длине чисел

Цель: Выполнить операцию вычитания двух двухбайтных чисел.

(4309110-230910)

4309110=A85316

230910=90516

Таблица 2 - Программа PRG 2 вычитания двух чисел.

Адрес

Код

Мнемоника

Комментарий

0000

3E

MVI A, 53

Младший байт первого слагаемого заносится в аккумулятор 9E

0001

53

0002

D6

MVI B, 05

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

0003

05

-

Младший байт второго слагаемого заносится в аккумулятор FB

0004

32

STA adr

Записать содержимое аккумулятора B

0005

20

-

Результат в ячейку 20

0006

00

-

0007

3E

MVI A, A8

Старший байт первого слагаемого заносится в аккумулятор

0008

A8

0009

DE

MVI B,9

000А

9

-

Старший байт второго слагаемого заносится в аккумулятор

000В

32

STA adr

Записать содержимое аккумулятора B

000С

21

-

Результат в ячейку 21

000D

00

-

Записать содержимое аккумулятора B

000E

76

HLT

До:

После:

Ответ:9F4E

3 Команды логического умножения

Цель: исследование команд логического умножения.

9

Костюк Иван

239&123

23910=EF16, 12310=7B16

23910=111011112, 12310=11110112

Таблица 3 - Программа PRG 3 логическое умножение

Адрес

Код

Мнемоника

Комментарий

0000

3E

MVI A

Первое слагаемое заносится в аккумулятор

0001

EF

MOV C, M

Регистр А заносится в ячейку памяти

0002

06

MVI B

Сдвиг регистра Н

0003

7B

RST 0

Второе слагаемое заносится в регистр В

0004

A0

ANA B

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

0005

32

STA adr

Заменить содержимое аккумулятора

0006

20

-

В ячейку 0020

0007

00

NOP

-

0008

76

HLT

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

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

2 (EF16) & 11110112 (7B16) = 10001102 (16)

&

1

1

1

0

1

1

1

1

1

1

1

1

0

1

1

=

1

1

0

1

0

1

1

До:

После:

Ответ: 6B

4 Команды обнуления битов

Цель: исследование команд маскирования.

09

Костюк Иван

L

Таблица 4 - Программа PRG 4 маскирование

Адрес

Код

Мнемоника

Комментарий

0000

21

LXI H

0001

40

MOV B

0002

00

MOP

0003

3E

MVI A

0004

4C

DCX SP

0005

36

MVI M

0006

21

LXI H

0007

А6

ANA M

0008

32

STA adr

0009

20

-

000A

00

NOP

000B

76

HLT

До:

После:

Ответ: 21