ХАНДЫФАР

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

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

Параметры:

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

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

  • DS:AX: Указатель на изменённую строку.

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

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

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

  • Слово определяется как последовательность букв, разделённая пробельными символами.
  • Если указатель на строку равен 0, функция завершает работу без изменений.
  • Функция не изменяет значения регистров, кроме AX.

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

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

Параметры:

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

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

  • DS:AX: Указатель на изменённую строку.

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

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

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

  • Слово определяется как последовательность букв, разделённая пробельными символами.
  • Если указатель на строку равен 0, функция завершает работу без изменений.
  • Функция не изменяет значения регистров, кроме AX.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string db "российская федерация\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____StringTitleEx__—; Вызываем процедуру StringTitleEx(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