ГБОУ СПО СПб КИТ

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

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

Работу выполнил студент группы № 000

Тимаревский Михаил

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

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

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

Задание №1

Арифметические вычисления в десятичной и шестнадцатеричной системе счисления.

2311(807)+4356(1104)=6667(190B)

Задание №2

(Скриншот до выполнения)

Задание №3

Ответ был выведен в ячейку № 000 и 0051

Задание №4

Таблица с текстом программы и комментариями

Адрес

Код

Мнемоника

Комментарий

0000

3E

MVI A,07

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

0001

07

0002

06

MVI B,04

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

0003

04

0004

80

ADD B

0005

32

STA Adr

Указываем адрес для вывода ответа (младший байт)

0006

50

0007

00

NOP

0008

3E

MVI A, 08

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

0009

08

000А

06

MVI B, 10

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

000В

10

000С

88

ADC, B

Содержимое региста B и бит переноса добавляются к содержимому аккумулятора.

000D

32

STA Adr

Указываем адрес для вывода ответа (старший байт)

000E

51

000F

00

NOP

0010

76

HLT

Остановка процессора

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

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

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

Задание №1

Арифметические вычисления в десятичной и шестнадцатеричной системе счисления.

54100(D354)-34145(8561)=19955(4df3)

Задание №2

(Скриншот до выполнения)

Задание №3

(Ответ выводится в ячейку 0050 и 0051)

Задание №4

Таблица с текстом программы и комментариями

Адрес

Код

Мнемоника

Комментарий

0000

3E

MVI A, 54

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

0001

54

0002

D6

SUI B, 61

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

0003

61

0004

32

STA Adr

Указываем адрес для вывода ответа (младший байт)

0005

50

0006

00

NOP

0007

3E

MVI A, 08

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

0008

D3

0009

DE

SBI B, 10

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

000A

85

000B

32

STA Adr

Указываем адрес для вывода ответа (старший байт)

000C

51

000D

00

NOP

000E

76

HLT

Остановка процессора

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

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

Задание №1

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

251(FB)()&45(2D)(101101)=41(29)()

&

1

1

1

1

1

0

1

1

0

0

1

0

1

1

0

1

=

0

0

1

0

1

0

0

1

Задание №2

(Скриншот до выполнения)

Задание №3

(Ответ выводится в ячейку 0010)

Задание №4

Таблица с текстом программы и комментариями

Адрес

Код

Мнемоника

Комментарий

0000

3E

MVI A, A3

Содержимое первого слагаемого заносится в аккумулятор A316 ®A

0001

A3

0002

06

MVI B, 8B

Содержимое второго слагаемого заносится в аккумулятор 8B16 ®B

0003

8B

0004

A0

ANA B

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

0005

32

STA Adr

Указываем адрес для вывода ответа

0006

10

0007

00

NOP

0008

76

HLT

Остановка процессора