Лабораторная работа №5 / LAB5
.DOCСанкт-Петербургский Государственный Электротехнический Университет
Отчет по лабораторной работе №5
«Моделирование микропрограммы умножения»
Алгоритм 3
Выполнили:
Солоха В.
Группа 0331
Факультет КТИ
Преподаватель:
Анисимов А.В.
Санкт-Петербург
2002г.
Задание
Смоделировать на языке ассемблера микропрограмму умножения АЛУ.
Структурная схема
Н
+1
множитель
BL
CF
Р
произведение
DX
множимое
AL
АЛУ
еализация
программы
Данная микропрограмма перемножает два 16-ти разрядных числа. Результат занимает 32 разряда. Старшее слово результата формируется в регистре BX, а младшее – в DX.
mov ax, 100 ;множимое
mov bx, 1000 ;множитель
xor dx, dx ;обнуление результата
mov cx, 16 ;обработка 16-ти разрядов
nxt: shl dx, 1 ;сдвиг результата влево
rcl bx, 1 ;ротация множителя влево
jnc skip ;переход на skip, если пр. разряд 0
add dx, ax ;суммирование множимого с результатом
jnc skip ;если не было переноса то на skip
inc bx ;перенос в старший разряд
skip: loop nxt
Полный текст программы на ассемблере
main segment "code" use16
assume cs:main
start: mov ax, 100
mov bx, 100
xor dx, dx
mov cx, 16
nxt: shl dx, 1
rcl bx, 1
jnc skip
add dx, ax
jnc skip
inc bx
skip: loop nxt
xor ax, ax
int 21h
main ends
end start