|
HUND DS 1
TENONE DS 1
BEG: MOV В,#100; Разделить на 100 для определения числа сотен
DIV АВ; Разделить остаток на 10
MOV HUND,А; для определения числа
MOV А,#10; сотен слева
ХСН А,В; Цифра десятков в А
DIV АВ; Остаток - цифра единиц
SWAP A; В А цифры в двоично-десятичном упакованном формате
ADD А,В
MOV TENONE,A
RET
3. Команда деления может быть также использована для отделения подполей данного в аккумуляторе.
Например, выполняя деление упакованного двоично-десятичного данного на 16 можно отделить два полубайта, старшие разряды в аккумуляторе, а младшие (остаток) - в регистре В. Каждое данное выровнено вправо и, следовательно, может обрабатываться отдельно.
В приведенном примере два упакованных двоично-десятичных числа хранятся в аккумуляторе, выполняется отделение каждого числа, затем вычисляется их произведение и возвращается в упакованном двоично-десятичном формате в аккумулятор.
; DISBCD Выполняет распаковку двух упакованных двоично-
; десятичных чисел, полученных в аккумуляторе, и возвращает их
; произведение в аккумулятор также в двоично-десятичном
; упакованном формате
BEG: MOV B,#10H; Исходное значение делится
DIV АВ; на 16. В регистрах А и В хранятся выделенные цифры
; (каждая выровнена вправо)
MUL АВ; Регистр А содержит произведение в двоичном формате
; (0-99(десятичное)=0-63Н)
MOV В,#10; Произведение делится
DIV АВ; на 10. Регистр А содержит цифру десятков,
; В содержит остаток
SWAP А; Цифры в упакованном
ORL А,В; формате
RET
Дата добавления: 2015-07-11; просмотров: 85 | Нарушение авторских прав