Bcd формат на assembler в avr atmega

Десяткові числа на машинній мові можуть бути представлені у вигляді восьмирозрядних послідовностей одиниць і нулів, тобто байтів. При цьому існує два види форматів представлення десяткових чисел. Це упакований формат (BCD) і розпакований.

розпакований формат

В даному форматі один розряд десяткового числа поміщається в один байт. А саме в молодшу тетраду байта, тоді як старша тетрада (іменована зоною) заповнюється одиницями. Наприклад число 157 буде виглядати наступним чином.

  • Упакований формат - BCD

    В упакованому форматі байт містить два розряду десяткового числа і також може містити код знака. Як в нижче наступному прикладі, в якому представлено число "-1574".

  • Перетворення числа в BCD в шістнадцятковий вид і назад

    При роботі з мікроконтролерами Atmega може знадобитися перетворення числа в шістнадцятковому вигляді в формат упакованого десяткового числа, тобто в BCD формат:

    А також зворотне перетворення:

    Як Ви вже помітили, робота проводиться в цих програмах з чотирма регістрами: r0, r1, r16, r17. Цільовим регістром в даному випадку виступає регістр r16. Також ці програми працюють з числами від 0 до 99.

    Увага. Також для роботи бібліотеки потрібно форматувати Стек мікроконтролера. Наприклад наступним чином:

    Рекомендовані статті з цієї тематики

    Схожі статті