ГБОУ СПО СПб КИТ
Лабораторная работа № 9
Программирование арифметических задач на Ассемблере для микропроцессора К580
Выполнил:
Проверила:
Сложение двухбайтовых десятичных чисел
Арифметические вычисления в десятичной и шестнадцатеричной системе счисления.
119f16 (451110)+77=191316(641910)
Таблица с текстом программы и комментариями
Адрес | Код | Мнемоника | Комментарий |
0000 | 3E | MVI A,8A | Младший байт первого слагаемого заносится в аккумулятор 9F16 ®A |
0001 | 9f | ||
0002 | 06 | MVI B, db | Сдвиг регистра H |
0003 | 74 | ORA H | Младший байт второго заносится в аккумулятор |
0004 | 80 | ADD B | Содержимое ригистра B в аккумулятор |
0005 | 32 | STA adr | Сохранение содержимого А в памяти |
0006 | 50 | MOV D, B | по адресу 0050 |
0007 | 00 | NOP | - |
0008 | 3E | MVI A, В8 | Содержимое второго байта команды засылается в регистр A |
0009 | 08 | - | |
000А | 06 | MVI B, В8 | Содержимое второго байта команды засылается в регистр B |
000В | 10 | - | - |
000С | 88 | ADC B | Содержимое регистра B и бит переноса добавляются к содержимому аккумулятора |
000D | 32 | STA adr | Запись содержимое аккумулятора |
000E | 51 | MOV D, C | В ячейку 0051 |
000F | 00 | NOP | - |
0010 | 76 | HLT | Прервать выполнение программы |
Скриншот до выполнения

Скриншот после выполнения

Вычитание одинаковых по длине чисел
Арифметические вычисления в десятичной и шестнадцатеричной системе счисления.
3219810 (7dc616)-1234=1985310(4d8d16)
Таблица с текстом программы и комментариями
Адрес | Код | Мнемоника | Комментарий |
0000 | 3E | MVI A, С6 | Младший байт первого слагаемого заносится в аккумулятор C616 ®A |
0001 | C6 | ||
0002 | D6 | SUI B, 39 | Содержимое второго байта команды вычитается из содержимого аккумулятора |
0003 | 39 | ||
0004 | 32 | STA adr | Указывает адрес для вывода ответа |
0005 | 50 | ||
0006 | 00 | NOP | |
0007 | 3E | MVI A, 7D | Старший байт первого слагаемого заносится в аккумулятор 7d16 ®A |
0008 | 7d | ||
0009 | DE | SBI B, 30 | Содержимое второго байта команды и перенос вычитаются из содержимого аккумулятора |
000А | 30 | ||
000В | 32 | STA adr | Указываем адрес для ответа |
000С | 51 | ||
000D | 00 | NOP | |
000E | 76 | HLT | Остановка процессора |
Скриншот до выполнения

Скриншот после выполнения

Команды логического умножения
Арифметические вычисления в десятичной, шестнадцатеричной и двоичной системе счисления
11000& (8b16)=
Таблица с текстом программы и комментариями.
Адрес | Код | Мнемоника | Комментарий |
0000 | 3E | MVI A, d8 | Младший байт первого слагаемого заносится в аккумулятор 6216 ®A |
0001 | 62 | ||
0002 | 06 | Младший байт второго слагаемого заносится в аккумулятор 8b16 ®A | |
0003 | 8B | ||
0004 | A0 | ANA B | Содержимое регистра В логически умножается с содержимым аккумулятора |
0005 | 32 | STA adr | Запись содержимое аккумулятора |
0006 | 20 | - | В ячейку 0020 |
0007 | 00 | NOP | - |
0008 | 76 | HLT | Прервать выполнение программы |
Выполнение операции логического умножения чисел
&
______________________
=
9810(6216)&13910(8b16)=13010(8216)
Скриншот до 
Скриншот после

Команды восстановления битов
Адрес | Код | Мнемоника | Комментарий |
0000 | 21 | ||
0001 | 40 | ||
0002 | 00 | ||
0003 | 3E | ||
0004 | 33 | ||
0005 | 36 | ||
0006 | 21 | ||
0007 | А6 | ||
0008 | 32 | ||
0009 | 20 | ||
000A | 00 | ||
000B | 76 |


