Книга: Цифровые вычислительные устройства и микропроцессоры приборных комплексов
10
A
Отсюда 3951910 = 9A5F16 . Таким образом, последовательно деля на 16 целую часть десятичного числа и образующиеся частные, получаем в последнем частном и остатках цифры всех разрядов шестнадцатеричного представления числа.
Пример 2.5 . Преобразование кодов из одной системы счисления в другую. Преобразование кода из одной позиционной системы счисления в другую осуществляется делением исходного числа на основание новой системы счисления. При этом деление должно выполняться по правилам исходной системы счисления. Например, для преобразования двоичного числа в двоично-десятичное исходное двоичное число должно быть поделено на 10 (10102 ). Деление должно осуществляться по правилам двоичной арифметики.
Пусть требуется выполнить преобразование 8-битного двоичного числа в двоично-десятичное. Исходный двоичный код хранится в аккумуляторе. Результат преобразования состоит из 12 бит: младшие 4 бита – единицы, представляют собой остаток от деления исходного числа на 10; следующие 4 бита – десятки, представляют собой остаток от деления на 10 полученного частного; старшие 4 бита – сотни, являются частным от второго деления:
BBD: CALL DIV10 ; деление исходного кода на 10
MOV R7,A ; сохранение остатка в R7
MOV A,R1 ; загрузка в аккумулятор частного
CALL DIV10 ; деление частного на 10
SWAP A ; передача остатка в старшую тетраду A
ORL A,R7 ; передача R7 в младшую тетраду A
JMP EXIT ; выход из процедуры
; подпрограмма деления на 10
; исходный двоичный код в аккумуляторе
; результат: в R1 – частное, в аккумуляторе – остаток
DIV10: MOV R1,#0 ; сброс R1
SUB10: ADD A,#(NOT(10)+1) ; вычитание 10 из делимого
INC R1 ; инкремент частного
JC SUB10 ; цикл, если остаток >= 0
DEC R1 ; восстановление частного
ADD A,#10 ; восстановление остатка
RET ; возврат
EXIT: … ;
В результате выполнения процедуры в младшей тетраде R1 хранятся сотни, в аккумуляторе – десятки и единицы двоично-десятичного эквивалента исходного двоичного числа.
3.4.3. Изучение аппаратных и программных средств ввода/вывода информации микроконтроллера ВЕ48
1) Изучить организацию каналов ввода/вывода информации микроконтроллера ВЕ48, интерфейс расширения ввода/вывода;
2) Рассмотреть команды, которые обслуживают пространство ввода/вывода;
3) Ознакомиться с приведенными ниже примерами программ на языке ассемблера;
4) Произвести ввод, отладку и трансляцию в объектный код этих программ;