Каждый программист должен знать, как минимум, три системы счисления:
Десятичную
Двоичную
Особенно это касается тех, кто программирует на низком уровне. Но и в прикладных программах иногда удобнее использовать двоичную или шестнадцатеричную систему счисления вместо привычной всем десятичной.
Десятичная система использует 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 - это одно и то же.
На это пока всё. Изучайте ассемблер - это интересно!
Комментариев нет:
Отправить комментарий