Десяткові числа на машинній мові можуть бути представлені у вигляді восьмирозрядних послідовностей одиниць і нулів, тобто байтів. При цьому існує два види форматів представлення десяткових чисел. Це упакований формат (BCD) і розпакований.
розпакований формат
В даному форматі один розряд десяткового числа поміщається в один байт. А саме в молодшу тетраду байта, тоді як старша тетрада (іменована зоною) заповнюється одиницями. Наприклад число 157 буде виглядати наступним чином.
Упакований формат - BCD
В упакованому форматі байт містить два розряду десяткового числа і також може містити код знака. Як в нижче наступному прикладі, в якому представлено число "-1574".
Перетворення числа в BCD в шістнадцятковий вид і назад
При роботі з мікроконтролерами Atmega може знадобитися перетворення числа в шістнадцятковому вигляді в формат упакованого десяткового числа, тобто в BCD формат:
А також зворотне перетворення:
Як Ви вже помітили, робота проводиться в цих програмах з чотирма регістрами: r0, r1, r16, r17. Цільовим регістром в даному випадку виступає регістр r16. Також ці програми працюють з числами від 0 до 99.
Увага. Також для роботи бібліотеки потрібно форматувати Стек мікроконтролера. Наприклад наступним чином:
Рекомендовані статті з цієї тематики