Как вывести число в шестнадцатеричном виде?
Q27: А как напечатать число в шестнадцатеричном виде?
A: Можно сделать так:
(результат помещяется в es:di)
Вот и всё!
После SBB числа 0-9 превращаются в 96h - 9Fh, а числа 0Ah - 0Fh - в 0A1h - 0A6H. Затем DAS вычитает 66h из первой группы чисел, переводя их в 30h - 39h, и 60h из второй группы чисел, переводя их в 41h - 46h
>А вот наиболее очевидный но немного менее быстрый и удобный способ: команда XLATB. Она помещает в AL байт из таблицы в памяти по адресу ES:BX (или ES:EBX) со смещением относительно начала таблицы равным AL.
Пример:
Вход: AL - hex-цифра (00h - 0Fh)
ES - сегментный адрес таблицы.
Выход: AL - ascii-код символа.
В сегменте кода:
lea bx,htable
xlatb
В сегменте данных:
htable db "0123456789ABCDEF"
Вот и все.
Вернуться к списку вопросов >>
Другие новости