|
Санкт-Петербургский Государственный Политехнический Университет
Факультет Технической Кибернетики
Кафедра Систем Автоматического управления
Отчет по лабораторной работе по ВМ системы и сети
Тема: "Умножение чисел"
Выполнил: Майоров А.П.
Группа: 3083/2
Проверила: Щербина А.Н.
Задание
Написать программу, которая перемножает два однобайтных числа.
Описание
Второй множитель будем хранить в регистре В, а первый множитель (множимое) – в регистровой паре DE. Результат будем сохранять в HL. Перемножение организуем следующим образом: если очередной бит множителя, на который умножается множимое, будет равен нулю, то будем сдвигать множимое влево с добавлением нуля. Если очередной бит – единица, то кроме сдвига нужно еще и увеличить результат на текущее значение множимого.
Для сдвига множимого будем использовать команду RAL для регистров E и D, обнулив перед этим бит переноса. Также можно было воспользоваться командой DAD HL, так как при сдвиге числа влево, его значение увеличивается в два раза.
Для определения очередного бита множителя будем использовать команду RAR.
Выход из программы будет осуществляться после восьми циклов сдвига множимого.
Блок-схема
Текст программы
ORG 1000H
;ПРОГРАММА ДЛЯ УМНОЖЕНИЯ ДВУХ ОДНОБАЙТНЫХ ЧИСЕЛ.
;ПЕРЕМНОЖЕНИЕ ПРОИЗВОДИТСЯ ПО БИТАМ
LDA 2000H
MVI D,0H;
MOV E,A; DE - ПЕРВОЕ ЧИСЛО ЗАГРУЖАЕМ ИЗ 2000Н
LDA 2008H
MOV B,A;B - ВТОРОЕ ЧИСЛО ЗАГРУЖАЕМ ИЗ 2008Н
MVI C,8H;СЧЁТЧИК НА СЕМЬ ЦИКЛОВ
LXI HL,0H;ОБНУЛЯЕМ РЕГ. ПАРУ РЕЗУЛЬТАТА
SUM:
;ПРОВЕРКА НА СЛОЖЕНИЕ
STC; БИТ ПЕРЕНОСА РАВЕН 1
CMC; СБРОС БИТА ПЕРЕНОСА НА НУЛЬ
MOV A,B; ЗАГРУЖАЕМ МНОЖИТЕЛЬ
RAR; СДВИГ ВПРАВО
MOV B,A; СОХРАНЯЕМ ИЗМЕНЕНИЯ В B
JNC RE; ЕСЛИ БИТ ПЕРЕНОСА НОЛЬ, ТО НЕ СКЛАДЫВАЕМ
DAD DE; СЛОЖЕНИЕ
RE:
;СДВИГ
STC; БИТ ПЕРЕНОСА РАВЕН 1
CMC; СБРОС БИТА ПЕРЕНОСА НА НУЛЬ
Дата добавления: 2015-07-08; просмотров: 126 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пальцевой счет при запоминании таблицы умножения | | | Цели и задачи изучения дисциплины |