ХАНДЫФАР

Функция IsGraph проверяет, является ли заданный символ графическим символом. Графические символы — это печатные символы, за исключением пробела.

Параметры:

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

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

  • ZF = 1: Если символ является графическим символом.
  • ZF = 0: Если символ не является графическим символом.

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

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

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

  • Функция проверяет, находится ли символ в диапазоне ASCII-кодов графических символов (21h–7Eh).

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

  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____IsGraph_________; Вызываем процедуру IsGraph(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