ХАНДЫФАР

Функция StringAbbreviate создаёт аббревиатуру из указанной строки, состоящую из первых букв каждого слова, и сохраняет её в подготовленном буфере. Если указатель на строку равен 0, функция завершает работу без изменений.

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string _db "Объединенные Арабские "
  6. ____________db "Эмираты\0"
  7. ____strabbr db 10 dup(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_____bx, es:[strabbr]
  15. ________lea_____ax, ds:[string]
  16. ________call____StringAbbreviate
  17. ________mov_____ax, bx
  18. ________call____WriteString
  19. ________xor_____al, al
  20. ________call____ExitProcess
  21. ____main endp
  22. code ends
  23. end main
Функция StringAbbreviate создаёт аббревиатуру из указанной строки, состоящую из первых букв каждого слова, и сохраняет её в подготовленном буфере. Если указатель на строку равен 0, функция завершает работу без изменений.

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string _db "Объединенные Арабские Эмираты\0"
  6. ____strabbr db 10 dup(0)
  7. data ends
  8. code segment public ______________; Начало сегмента кода
  9. ____assume _ds:data, cs:code
  10. ____include Handyfar.inc__________; Подключаем файл с функциями
  11. ____main proc ____________________; Начало процедуры main
  12. ________call____SetDataSegment____; Вызываем процедуру SetDataSegment
  13. ________lea_____bx, es:[strabbr]__; Загружаем адрес переменной strabbr в регистр es:bx
  14. ________lea_____ax, ds:[string]___; Загружаем адрес переменной string в регистр ds:ax
  15. ________call____StringAbbreviate__; Вызываем процедуру StringAbbreviate(ds:ax, es:bx)
  16. ________mov_____ax, bx____________; Загружаем значение регистра bx в регистр ax
  17. ________call____WriteString_______; Вызываем процедуру WriteString(ax:strabbr)
  18. ________xor_____al, al____________; Обнуляем регистр al
  19. ________call____ExitProcess_______; Вызываем процедуру ExitProcess
  20. ____main endp ____________________; Конец процедуры main
  21. code ends ________________________; Конец сегмента кода
  22. end main _________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda