ХАНДЫФАР

Функция Capitalize преобразует каждое предложение в строке в заглавную букву. Предложение считается завершённым, если встречается символ точки (.), восклицательного знака (!) или вопросительного знака (?). Строка должна завершаться (\0) или 0. Если указатель на строку равен 0, функция завершает работу без изменений.

Параметры:

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

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

  • Функция не возвращает значение.

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

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

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

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

  • Предложение определяется по символам завершения: ., !, ?.

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string db "привет, Мир 8086 "
  6. ___________db "Ассемблера. как дела? ты "
  7. ___________db _порядке? да, спасибо!\0"
  8. data ends
  9. code segment public
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc
  12. ____main proc
  13. ________call____SetDataSegment
  14. ________lea_____ax, ds:[string]
  15. ________call____Capitalize
  16. ________call____WriteString
  17. ________xor_____al, al
  18. ________call____ExitProcess
  19. ____main endp
  20. code ends
  21. end main
Функция Capitalize преобразует каждое предложение в строке в заглавную букву. Предложение считается завершённым, если встречается символ точки (.), восклицательного знака (!) или вопросительного знака (?). Строка должна завершаться (\0) или 0. Если указатель на строку равен 0, функция завершает работу без изменений.

Параметры:

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

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

  • Функция не возвращает значение.

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

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

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

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

  • Предложение определяется по символам завершения: ., !, ?.

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string db "привет, Мир 8086 Ассемблера. как дела? ты в порядке? да, спасибо!\0"
  6. data ends
  7. code segment public _____________; Начало сегмента кода
  8. ____assume _ds:data, cs:code
  9. ____include Handyfar.inc_________; Подключаем файл с функциями
  10. ____main proc ___________________; Начало процедуры main
  11. ________call____SetDataSegment___; Вызываем процедуру SetDataSegment
  12. ________lea_____ax, ds:[string]__; Загружаем адрес переменной string в регистр ds:ax
  13. ________call____Capitalize_______; Вызываем процедуру Capitalize(ax:string)
  14. ________call____WriteString______; Вызываем процедуру WriteString(ax:string)
  15. ________xor_____al, al___________; Обнуляем регистр al
  16. ________call____ExitProcess______; Вызываем процедуру ExitProcess
  17. ____main endp ___________________; Конец процедуры main
  18. code ends _______________________; Конец сегмента кода
  19. end main ________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda