Лабораторная работа № 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



