ХАНДЫФАР

Функция IsHexadecimal проверяет, является ли заданный символ допустимым шестнадцатеричным числом (цифрой 0–9 или буквой A–F, a–f).

Параметры:

  • AL: Символ для проверки.

Возвращаемое значение:

  • ZF = 1: Если символ является допустимым шестнадцатеричным числом.
  • ZF = 0: Если символ не является допустимым шестнадцатеричным числом.

Состояние флагов:

  • Функция влияет на все флаги процессора.

Особенности:

  • Функция проверяет, находится ли символ в диапазоне ASCII-кодов цифр (30h–39h), заглавных букв (41h–46h) или строчных букв (61h–66h).

  • Функция не изменяет значения регистров, кроме флагов.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____true _db "TRUE\0"
  6. ____false db "FALSE\0"
  7. data ends
  8. code segment public ____________; Начало сегмента кода
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc________; Подключаем файл с функциями
  11. ____main proc __________________; Начало процедуры main
  12. ________call____SetDataSegment__; Вызываем процедуру SetDataSegment
  13. ________mov_____al, 0Eh_________; Копируем число 0Eh в регистр al
  14. ________call____IsHexadecimal___; Вызываем процедуру IsHexadecimal(al:'0Eh')
  15. ________jnz_____@False__________; ZF=0, то прыгаем на метку @False
  16. ____@True:
  17. ________lea_____ax, ds:[true]___; Загружаем адрес переменной true в регистр ds:ax
  18. ________jmp_____@Done___________; Выполняем безусловный переход на метку @Done
  19. ____@False:
  20. ________lea_____ax, ds:[false]__; Загружаем адрес переменной false в регистр ds:ax
  21. ____@Done:
  22. ________call____WriteString_____; Вызываем процедуру WriteString(ax)
  23. ________xor_____al, al__________; Обнуляем регистр al
  24. ________call____ExitProcess_____; Вызываем процедуру ExitProcess
  25. ____main endp __________________; Конец процедуры main
  26. code ends ______________________; Конец сегмента кода
  27. end main _______________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda