Читайте также: |
|
MOV A,#0; Сброс аккумулятора
L: ADD A,@R0; Загрузка множимого
MOV B,#CONST; Загрузка множителя
MUL AB; Умножение
MOV @R0,A; Запись младшего байта частичного произведения
INC R0; Приращение адреса
MOV A,B; Пересылка старшего байта частичного произведения в аккумулятор
XCH A,@R0; Предварительное формирование очередного байта произведения
DJNZ R1,L; Цикл, если не все байты исходного числа умножены на константу
Полученное произведение размещается на месте исходного числа и занимает в РПД на один байт больше.
2. Команда DIV производит деление содержимого аккумулятора на содержимое регистра-расширителя. После деления аккумулятор содержит целую часть частного, а расширитель – остаток. Флаги C и OV сбрасываются. При делении на нуль устанавливается флаг переполнения, а частное остается неопределенным.
Команда деления может быть использована для перевода числа из одной системы счисления в другую.
Программа BINBCD выполняет преобразование целого двоичного 8-разрядного числа без знака, содержащегося в регистре А (значение в интервале 0-255), в трехзначное число двоично-кодированного формата BCD (два байта). Число сотен возвращается в поле переменной HUND, а числа десятков и единиц возвращаются в двоично-десятичном упакованном коде в поле другой переменной TENONE.
; BINBCD Выполняет преобразование 8-разрядного двоичного
; числа, хранящегося в регистре, в трехзначное число в
; двоично-десятичном упакованном формате.
; Число сотен размещено слева в поле переменной HUND,
; а числа десятков и единиц размещены в переменной TENONE.
Дата добавления: 2015-07-11; просмотров: 80 | Нарушение авторских прав