Предыдущий раздел | ВЫВОД НА ЭКРАН ЧИСЕЛ В ШЕСТНАДЦАТЕРИЧНОЙ ФОРМЕ | Следующий раздел |
Любое число между 0 и Fh соответствует одной шестнадцатеричной цифре. Переведя выбранное число в ASCII-символ, его можно вывести на экран. ASCII-cимволы от 0 до 9 имеют значения от 30h до 39h; cимволы от А до F, однако, имеют значения от 41h до 46h. В результате переход в ASCII будет затруднен из-за наличия двух групп чисел (от 0 до 9 и от Ah до Fh), так что мы должны обрабатывать отдельно каждую группу. На рис.14 приведена блок-схема программы, выполняющей вывод на экран одной шестнадцатеричной цифры.
Текст программы вывода шестнадцатеричной цифры:
100 mov dl,bl
102 cmp dl,09
105 ja 10c
107 add dl,30
10A jmp 10f
10C add dl,37
10F mov ah,02
111 int 21
113 int 20
Для передачи значения шестнадцатеричной цифры на вход программы используется регистр BL. Команда cmp вычитает два числа ((DL)–9h), чтобы установить флаги, но она не изменяет регистр DL. Поэтому, если содержимое DL больше, чем 9, команда “ja 10c” осуществляет переход к команде по адресу 10С.
З а п и ш и т е приведенную выше программу в ОП и протрассируйтеее, предварительно записав в BL шестнадцатеричное число, состоящее из одной цифры. Не забывайте использовать или команду G Debug с указанием точки останова, или команду P, когда запускаете машинную команду int. Затем проверьте правильность работы программы, используя команду G, предварительно загружая в ВХ граничные данные: 0; 9; Ah и Fh .
Рис. 14. Алгоритм программы вывода одной шестнадцатеричной цифры
Общее правило: при тестировании любой программы рекомендуется проверить граничные данные.
Предыдущий раздел | В начало | Следующий раздел |