понедельник, 7 февраля 2022 г.

Шестнадцатеричная система счисления

Каждый программист должен знать, как минимум, три системы счисления:


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


Десятичная система использует 10 цифр от 0 до 9. Шестнадцатеричная система также использует эти цифры, а для обозначения чисел от 10 до 15 используются латинские буквы от A до F соответственно.


В десятичной системе, если мы справа к числу припишем 0, то увеличим тем самым число в десять раз:


1 х 10 = 10

10 х 10 = 100

100 х 10 = 1000 и т.п.


В шестнадцатеричной то же действие увеличивает число в 16 раз:


1 х 16 = 10h (16)

10 x 16 = 100h (160)

100 x 16 = 1000h (1600)


Для того, чтобы понять, что число записано в шестнадцатеричной системе, в ассемблере (и в некоторых других языках) принято в конце числа записывать букву h (от слова hexadecimal - шестнадцатеричный).


Пример использования шестнадцатеричных чисел в ассемблере:


mov ah, 10h


Здесь мы в регистр АН записываем число 10h (16 в десятичной системе).


Но как в данном случае понять, что ah - это регистр, а не шестнадцатеричное число?


Всё предусмотрено, не волнуйтесь. Дело в том, что любое число в ассемблере должно начинаться с цифры. Если что-то начинается с буквы, то это не число. А, например, регистр или переменная.


Как тогда нам использовать шестнадцатеричные числа, которые начинаются с буквы? Надо просто добавить ноль перед числом:


MOV  BH,  0Ah   ; Записать в регистр ВН число Аh (10)  

MOV  BH,  Ah    ; Записать в регистр ВН значение регистра АН


Ну и, как вы понимаете, в ассемблере строчные и прописные буквы не различаются. То есть ah, AH, Ah - это одно и то же.


На это пока всё. Изучайте ассемблер - это интересно!




Комментариев нет:

Отправить комментарий