Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Преобразование кодов из одной системы счисления в другую




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

Пусть требуется выполнить преобразования 8-битного двоичного числа в двоично-десятичное. Исходный двоичный код хранится в аккумуляторе. Результат преобразования состоит из 12 бит: младшие 4 бита – единицы, представляют собой остаток от деления исходного числа на 10; следующее 4 бита – десятки, представляют собой остаток от деления на 10 полученного частного; старшие 4 бита – сотни, являются частным от второго деления. Листинг 4.29 содержит программу преобразования однобайтового двоичного кода в двоично-десятичный.

 

Листинг 4.29 – Программа преобразования однобайтового двоичного кода в двоично-десятичный

  .ORG 0000h ; Адрес начала программы
  MOV A, #255   MOV B, #10   DIV AB   MOV DPL, B   MOV B, #10   DIV AB MOV DPH, A   MOV A, B SWAP A ORL A, DPL MOV DPL, A ... ; Загрузка в аккумулятор ; преобразуемого числа (255) ; Загрузка в регистр B ; делителя ; Деление A на B ; Сохранение остатка от ; деления (единиц) в регистре ; DPL. Регистр A содержит ; частное от первого деления ; Загрузка в регистр B ; делителя ; Деление A на B ; Сохранение частного от ; второго деления в DPH ; Сохранение остатка от ; второго деления в старшей ; тетраде регистра DPL ;

 

Результат выполнения программы сохраняется в регистре DPTR. Формат результата приведён на рисунке 4.19.

 

DPTR
DPH DPL
                               
Незначащие Сотни Десятки Единицы
                               

 

Рисунок 4.19 – Формат результата преобразования

 

Обратное преобразование (из двоично-десятичного кода в двоичный) заключается в расчёте суммы:

«единицы» + «десятки» × 10 + «сотни» × 100…

Программа преобразования двухзначного двоично-десятичного кода в двоичный приведена в листинге 4.30.

В приведённой программе исходное значение храниться в младших двенадцати битах регистра DPTR. Результат сохраняется в аккумулятор.

 

Листинг 4.30 – Программа преобразования двухзначного двоично-десятичного кода в двоичный

  .ORG 0000H ; Адрес начала программы
  … MOV A, DPL SWAP A ANL A, #0FH MOV B, #10 MUL AB   PUSH A   MOV A, DPL ANL A, #0FH MOV DPL, A   POP A   ADD A, DPL   MOV DPL, A MOV A, DPH ANL A, #0FH   MOV B, #100 MUL AB ADD A, DPL … ; ; Выделение десятков ; ; Умножение десятков на 10 ; ; Сохранение в стек ; результата умножения ; ; Выделение единиц ; ; Восстановление из стека ; Сложение единиц и ; результата умножения ; ; Выделение сотен ; ; Умножение сотен на 100 ; ; Сложение результата умножения ; с числом «единицы» «десятки» × 10

 

Кроме рассмотренного способа преобразования чисел из одной системы счисления в другую, можно воспользоваться более медленным, но зато и более простым способом «двух счетчиков». При этом способе из исходного кода вычитается, а к новому коду прибавляется по единице до обнуления исходного кода, причем вычитание осуществляется «в старой», а прибавление – в «новой» системе счисления. Пример программы преобразования двоичного числа в двоично-десятичное методом двух счетчиков приводится ниже (листинг 4.31). В приведённой программе исходный двоичный код должен находиться в аккумуляторе, двоично-десятичный код – регистре DPTR.

Листинг 4.31 – Программа преобразования двоичного числа
в двоично-десятичное методом двух счетчиков






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных