ХАНДЫФАР

Функция ToLowerStringEx преобразует строку, состоящую из символов английского или русского алфавита, в нижний регистр. Строка должна завершаться (\0).

Функция ToLowerStringEx не выравнивает стек на 2 байта а сохраняет преобразованное значение на вершине стека и в регистре AX. Это сделано для того чтобы иметь возможность вызвать функцию WriteString или WriteStringEx сразу после вызова функции ToLowerStringEx. Если после вызова функции ToLowerStringEx для вывода преобразованного символа используется функция WriteString то, выравнивание стека лежит на программисте. Для того чтобы выровнять стек на 2 байта, после вызова функции WriteString нужно написать следующую команду: add sp, 2.

Параметры:

  1. Указатель на строку, завершающуюся (\0) или 0.

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

  • AX: Указатель на строку, завершающуюся (\0) или 0.

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

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

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

  • Функция преобразует только символы английского или русского алфавита в верхнем регистре (диапазон 'A'–'Z' или 'А'–'Я').

  • Символы, уже находящиеся в нижнем регистре, остаются без изменений.

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

  • Строка должна завершаться (\0) или 0, чтобы функция могла определить её конец.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "ПРИВЕТ, МИР АССЕМБЛЕРА "
  7. ___________db "8086!\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. ________pushs___ds:[string]
  16. ________call____ToLowerStringEx
  17. ________call____WriteStringEx
  18. ________push____0
  19. ________call____ExitProcessEx
  20. ____main endp
  21. code ends
  22. end main
Функция ToLowerStringEx преобразует строку, состоящую из символов английского или русского алфавита, в нижний регистр. Строка должна завершаться (\0).

Функция ToLowerStringEx не выравнивает стек на 2 байта а сохраняет преобразованное значение на вершине стека и в регистре AX. Это сделано для того чтобы иметь возможность вызвать функцию WriteString или WriteStringEx сразу после вызова функции ToLowerStringEx. Если после вызова функции ToLowerStringEx для вывода преобразованного символа используется функция WriteString то, выравнивание стека лежит на программисте. Для того чтобы выровнять стек на 2 байта, после вызова функции WriteString нужно написать следующую команду: add sp, 2.

Параметры:

  1. Указатель на строку, завершающуюся (\0) или 0.

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

  • AX: Указатель на строку, завершающуюся (\0) или 0.

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

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

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

  • Функция преобразует только символы английского или русского алфавита в верхнем регистре (диапазон 'A'–'Z' или 'А'–'Я').

  • Символы, уже находящиеся в нижнем регистре, остаются без изменений.

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

  • Строка должна завершаться (\0) или 0, чтобы функция могла определить её конец.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "ПРИВЕТ, МИР АССЕМБЛЕРА 8086!\0"
  7. data ends
  8. code segment public
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc_________; Подключаем файл с функциями
  11. ____include Handymac.inc_________; Подключаем файл с макросами
  12. ____main proc
  13. ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
  14. ________pushs___ds:[string]______; Ложим на вершину стека адрес переменной string
  15. ________call____ToLowerStringEx__; Вызываем процедуру ToLowerStringEx(string)
  16. ________call____WriteStringEx____; Вызываем процедуру WriteStringEx(значение из стека)
  17. ________push____0________________; Ложим на вершину стека байтовое значение кода возврата
  18. ________call____ExitProcessEx____; Вызываем процедуру ExitProcess(0)
  19. ____main endp
  20. code ends
  21. end main
Made on
Tilda