ХАНДЫФАР

Функция IsAlpha проверяет, является ли заданный символ буквенным символом (строчной или заглавной буквой).

Параметры:

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

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

  • ZF = 1: Если символ является буквенным символом (A–ZА-Я или a–zа-я).
  • ZF = 0: Если символ не является буквенным символом.

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

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

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

  • Функция проверяет, находится ли символ в диапазоне ASCII-кодов заглавных или строчных букв.

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

  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, 'г'_________; Копируем символ 'г' в регистр al
  14. ________call____IsAlpha_________; Вызываем процедуру IsAlpha(al:'г')
  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