Команда DIV производит деление содержимого аккумулятора на содержимое регистра-расширителя. После деления аккумулятор содержит целую часть частного, а расширитель – остаток. Флаги C и OV сбрасываются. При делении на нуль устанавливается флаг переполнения, а частное остается неопределенным.
Команда деления может быть использована для перевода числа из одной системы счисления в другую.
Программа BINBCD выполняет преобразование целого двоичного 8-разрядного числа без знака, содержащегося в регистре А (значение в интервале 0-255), в трехзначное число двоично-кодированного формата BCD (два байта). Число сотен возвращается в поле переменной HUND, а числа десятков и единиц возвращаются в двоично-десятичном упакованном коде в поле другой переменной TENONE.
; BINBCD Выполняет преобразование 8-разрядного двоичного
; числа, хранящегося в регистре, в трехзначное число в
; двоично-десятичном упакованном формате.
; Число сотен размещено слева в поле переменной HUND,
; а числа десятков и единиц размещены в переменной TENONE.
ORG 21H
HUND DS 1
TENONE DS 1
BEG: MOV В,#100 ; Разделить на 100 для определения числа сотен
DIV АВ ; Разделить остаток на 10
MOV HUND,А ; для определения числа
MOV А,#10 ; сотен слева
ХСН А,В ; Цифра десятков в А
DIV АВ ; Остаток - цифра единиц
SWAP A ; В А цифры в двоично-десятичном упакованном формате
ADD А,В
MOV TENONE,A
RET
|