ХАНДЫФАР

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

Параметры:

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

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

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

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

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

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

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

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

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string_db "Изучать язык ассемблера - это весело!\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. ________mov_____bh, '_'____________; Копируем значение символа нижнего подчёркивания в регистр bh
  13. ________mov_____bl, ' '____________; Копируем значение символа пробела в регистр bl
  14. ________lea_____ax, ds:[string]____; Загружаем адрес переменной string в регистр ds:ax
  15. ________call____StringReplaceChar__; Вызываем процедуру StringReplaceChar(ds:ax, bl:' ', bh:'_')
  16. ________call____WriteString________; Вызываем процедуру WriteString(ax)
  17. ________xor_____al, al_____________; Обнуляем регистр al
  18. ________call____ExitProcess________; Вызываем процедуру ExitProcess
  19. ____main endp _____________________; Конец процедуры main
  20. code ends _________________________; Конец сегмента кода
  21. end main __________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda