Лабораторная работа: Выполнение арифметических операций над числами с фиксированной запятой

;-----------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 ;НА НАЧАЛО ЦИКЛА ДЕЛЕНИЯ

;-----------БЫЛ ЛИ ЗАЁМ ИЛИ НЕТ

К-во Просмотров: 450
Бесплатно скачать Лабораторная работа: Выполнение арифметических операций над числами с фиксированной запятой