ХАНДЫФАР

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

Параметры:

  1. Символ для проверки.

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____msg_true__db "TRUE\0"
  7. ____msg_false_db "FALSE\0"
  8. data ends
  9. code segment public
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc
  12. ____include Handymac.inc
  13. ____main proc
  14. ________call____SetDataSegment
  15. ________push____'>'
  16. ________call____IsGraphEx
  17. ________jne_____@False
  18. ____@True:
  19. ________pushs___ds:[msg_true]
  20. ________jmp_____@Done
  21. ____@False:
  22. ________pushs___ds:[msg_false]
  23. ____@Done:
  24. ________call____WriteStringEx
  25. ________push____0
  26. ________call____ExitProcessEx
  27. ____main endp
  28. code ends
  29. end main
Функция IsGraphEx проверяет, является ли заданный символ графическим символом. Графические символы — это печатные символы, за исключением пробела. Функция IsGraphEx автоматически выравнивает стек на 2 байта.

Параметры:

  1. Символ для проверки.

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____msg_true__db "TRUE\0"
  7. ____msg_false_db "FALSE\0"
  8. data ends
  9. code segment public
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc________; Подключаем файл с функциями
  12. ____include Handymac.inc________; Подключаем файл с макросами
  13. ____main proc
  14. ________call____SetDataSegment__; Вызываем процедуру SetDataSegment
  15. ________push____'>'_____________; Ложим на вершину стека символ '>'
  16. ________call____IsGraphEx_______; Вызываем процедуру IsGraphEx('>')
  17. ________jne_____@False__________; Если ZF=0, то прыгаем на метку @False
  18. ____@True:
  19. ________pushs___ds:[msg_true]___; Ложим на вершину стека адрес переменной msg_true
  20. ________jmp_____@Done___________; Выполняем безусловный переход на метку @Done
  21. ____@False:
  22. ________pushs___ds:[msg_false]__; Ложим на вершину стека адрес переменной msg_false
  23. ____@Done:
  24. ________call____WriteStringEx___; Вызываем процедуру WriteStringEx(значение из стека)
  25. ________push____0_______________; Ложим на вершину стека байтовое значение кода возврата
  26. ________call____ExitProcessEx___; Вызываем процедуру ExitProcess(0)
  27. ____main endp
  28. code ends
  29. end main
Made on
Tilda