Предыдущий раздел ВЫВОД НА ЭКРАН ЧИСЕЛ В ШЕСТНАДЦАТЕРИЧНОЙ ФОРМЕ Следующий раздел

6.3. Вывод на экран одной шестнадцатеричной цифры

Любое число между 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.  Алгоритм программы вывода одной шестнадцатеричной цифры

 

Общее правило: при тестировании любой программы рекомендуется проверить граничные данные.

 


Предыдущий раздел В начало Следующий раздел