Лабораторная работа №4. Изучение программы перевода чисел из шестнадцатеричной системы счисления в десятичную

Изучение программы перевода чисел из шестнадцатеричной системы счисления в десятичную.

Цель работы:

Изучение программы и основных команд, по переводу чисел из различных систем счисления, на примере перевода шестнадцатеричных чисел в десятичные

Краткая теоретическая часть

Для перевода числа из одной системы счисления в другую необходимо производить многократное деление на число, соответствующее основанию той системы, в которую мы переводим. В нашем случае производится перевод из двоичной системы, в которой работает микроконтроллер, в десятичную, поэтому надо делить на 10.

Для анализа результатов двоичных вычислений компьютера широко используют шестнадцатеричную систему, которая более понятна человеку. Перевод из двоичной системы в шестнадцатеричную осуществляется весьма просто, т.к. одна шестнадцатеричная цифра заменяет 4 двоичных в соответствии с таблицей.

Hex Bin
   
   
   
   
   
   
   
   
Hex Bin
   
   
A  
B  
C  
D  
E  
F  

Таким образом микроконтроллер работает в двоичной системе счисления, а результаты его работы человек рассматривает в шестнадцатеричной системе счисления. Исходные значения также обычно вводятся в шестнадцатеричной или десятичной системе счисления и переводятся в двоичную для дальнейшей обработки.

Для того чтобы зафиксировать результат в десятичной системе исчисления помимо результата деления фиксируется и остаток деления. А процесс деления продолжают до тех пор, пока последний результат деления станет меньше 10.

Искомое число в десятичной системе получают приписывая к последнему результату деления все остатки от последнего до первого.

Поскольку команда деления отсутствует, то можно воспользоваться приёмом умножения и затем деления на число кратное 2n.

Дело в том, что для того чтобы разделить на 2 регистр сдвигается на 1 разряд вправо, для того чтобы разделить на 4 регистр сдвигается на 2 разряда вправо, для того чтобы разделить на 8 регистр сдвигается на 3 разряда вправо и т.д.

Команда умножения сохраняет результат умножения в двух регистрах: старший PRODH и младший PRODL.Поэтому совсем просто произвести на 28, для этого достаточно отбросить и не рассматривать содержимое регистра PRODL. Однако на практике было установлено, что правильный результат получается при делении на 211, поэтому регистр PRODL не рассматривается, а содержимое регистра PRODH сдвигается на 3 разряда вправо, а умножать в этом случае надо на шестнадцатеричное число CD.Таким образом удаётся избавиться от команды деления на 10.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: