ХАНДЫФАР

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

Параметры:

  • AX: Указатель на строку, завершающуюся нулём (\0) или 0. Если AX = 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