Лабораторная работа: Выполнение арифметических операций над числами с фиксированной запятой
;-----------SI - НА МЛАДШИЙ РАЗРЯД ДЕЛИМОГО
LBLL: MOV AL, SX[1]
CBW ;АН - ДЛЯ ЗАПИСИ ПЕРЕНОСА
MOV SI, AX
INC SI
;-----------НАЧАЛО ЦИКЛА ДЕЛЕНИЯ
;===========СРАВНЕНИЕ ЦИФР РАЗРЯДА ДЕЛИМОГО И ДЕЛИТЕЛЯ
C1: MOV AL, SX[SI]
CMP AL, SY[DI]
JAE NEXT
;===========ЦИФРА ДЕЛИМОГО МЕНЬШЕ ЦИФРЫ ДЕЛИТЕЛЯ
ADD AL, 9 ;ЗАЁМ ЕДИНИЦЫ
SUB AL, SY[DI] ;ВЫЧИТАНИЕ
ADD AL, '0' ;ПЕРЕВОД ЦИФРЫ В ЕЕ КОД
SUB AL, AH ;ВЫЧИТАНИЕ ПЕРЕНОСА
MOV SX[SI], AL ;РЕЗУЛЬТАТ - НА МЕСТО РАЗРЯДА ДЕЛИМОГО
MOV AH, 1 ;ЗАПИСЬ ЗАЁМА
JMP NEAR PTR DECREM ;НА КОНЕЦ ЦИКЛА
;===========ЦИФРА ДЕЛИМОГО БОЛЬШЕ ЦИФРЫ ДЕЛИТЕЛЯ
NEXT: SUB AL, SY[DI] ;ВЫЧИТАНИЕ
SUB AL, AH ;ВЫЧИТАНИЕ ПЕРЕНОСА
MOV AH, 0 ;ЗАЁМА НЕТ
ADD AL, '0' ;ПЕРЕВОД ЦИФРЫ В ЕЕ КОД
MOV SX[SI], AL ;РЕЗУЛЬТАТ - НА МЕСТО РАЗРЯДА ДЕЛИМОГО
;-----------SI, DI - НА БОЛЕЕ СТАРШИЙ РАЗРЯД
DECREM: DEC SI
DEC DI
LOOP C1 ;НА НАЧАЛО ЦИКЛА ДЕЛЕНИЯ
;-----------БЫЛ ЛИ ЗАЁМ ИЛИ НЕТ