Лабораторная работа: Выполнение арифметических операций над числами с фиксированной запятой
Цель: ознакомиться с командами арифметических операций, вводом данных с клавиатуры и выводом данных на экран.
Задание: написать программу ввода с клавиатуры двух чисел в 9-ричной системе счисления размером с слово, выполнения над ними деления и вывода результата в исходной системе счисления. Программа должна предусматривать контроль вводимой информации, контроль диапазона чисел и результата операции (переполнение, невозможность деления).
Программа:
;-----------ЛАБОРАТОРНАЯ РАБОТА №3
.MODEL SMALL
.STACK 100H
.186
.DATA
S1 DB 'ВВЕДИТЕ ДЕЛИМОЕ В ДЕВЯТИРИЧНОЙ СИСТЕМЕ'
DB ' СЧИСЛЕНИЯ (ОТ -48848 ДО 1О8806): ',10,13,'$'
S2 DB 'ВВЕДИТЕ ДЕЛИТЕЛЬ В ДЕВЯТИРИЧНОЙ СИСТЕМЕ'
DB ' СЧИСЛЕНИЯ (ОТ -48848 ДО 1О8806): ',10,13,'$'
S3 DB 'НЕВЕРНАЯ ЗАПИСЬ ЧИСЛА В ДЕВЯТИРИЧНОЙ'
DB ' СИСТЕМЕ СЧИСЛЕНИЯ ИЗ ЗАДАННОГО ДИАПАЗОНА.','$'
S4 DB 'ДЕЛЕНИЕ НЕВОЗМОЖНО: ДЕЛИТЕЛЬ РАВЕН НУЛЮ.','$'
S5 DB 'ДЕЛЕНИЕ НЕВОЗМОЖНО: ДЕЛИТЕЛЬ БОЛЬШЕ ДЕЛИМОГО.','$'
S6 DB 'ОСТАТОК: ',10,13,'$'
S7 DB 'ЧАСТНОЕ: ',10,13,'$'
L DB '48848' ;МИНИМАЛЬНОЕ ЧИСЛО
H DB '108806' ;МАКСИМАЛЬНОЕ ЧИСЛО
SX DB 12 DUP('x') ;ДЕЛИМОЕ
SY DB 12 DUP('y') ;ДЕЛИТЕЛЬ
SZ DB 8 DUP('0'),'$' ;ЧАСТНОЕ
.CODE
BEGIN: MOV AX, @DATA
MOV DS, AX
;-----------ОЧИСТКА БУФЕРА КЛАВИАТУРЫ
START: CLI ;ЗАПРЕТ ПРЕРЫВАНИЙ
SUB AX, AX
--> ЧИТАТЬ ПОЛНОСТЬЮ <--