Лабораторные работы / Лаба 7 / Лабораторная работа №7
.docxЗаботин Е. Л., ЭМ-31
Лабораторная работа №7
программирование на языке ассемблера для микропроцессора КР580. решение задач
Цель работы: Освоить основы программирования на языке ассемблера. Изучить стандартные приемы программирования на языке ассемблера для микропроцессора КР580.
Условие задачи
Написать алгоритм перемножения двух двухбайтных чисел. Первое число находится в ячейках 0700, 0701. Второе число лежит в ячейках 0800, 0801. Результат поместить в память, начиная с адреса 0900.
Решение задачи.
LXI H, 00, 07 MOV B, M INX H MOV C, M |
Заносим множимое в регистровую пару ВС
|
INR H MOV E, M DCR L MOV D, M |
Заносим множитель в регистровую пару DE |
LXI H, 0
MVI A, 10 M2: XCHG DAD H M3: XCHG JNC M1 DAD B JNC M1 INX D M1: DCR A JZ M4 DAD H JNC M2 XCHG DAD H INX H JMP M3 |
Подготовить младшую часть произведения Образовать счетчик бит Множитель HL, произведение в DE Сдвинуть множитель влево Множитель в DE, произведение в HL Бит множителя равен нулю Прибавить множимое Переноса в старшую часть нет Передать 1 в младший бит множитель Декремент счетчика бит Умножение закончено Сдвинуть младшую часть произведения Переноса нет Множитель в HL, произведения DE Сдвинуть множитель влево Передать 1 в младший бит множителя Повторять умножение |
M4: SHLD, 00, 09 XCHG SHLD, 02, 09 HLT |
Запись содержимого пары HL Замена DE- и HL- пар Запись содержимого пары HL(DE) |
Примечание.
Результат произведения будет занесен в пары DE-HL в виде X1 X2 X3 X4.
После записи в ячейки памяти результат будет выглядеть следующим образом:
0900- X4
0901- X3
0902- X2
0903- X1
Вывод:
В ходе лабораторной работы были освоены основы программирования на языке ассемблера. Также были изучены стандартные приемы программирования на языке ассемблера для микропроцессора КР580.