ХАНДЫФАР

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

Параметры:

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

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

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

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

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

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

  • Копирование включает нулевой терминатор (\0) или 0.
  • Функция не изменяет значения регистров и флагов.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string1 db "Привет Мир \0"
  6. ____________db 20 dup(0)
  7. ____string2 db "8086 Ассемблера!\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:[string2]
  15. ________lea_____ax, ds:[string1]
  16. ________call____StringConcatenate
  17. ________lea_____ax, ds:[string1]
  18. ________call____WriteString
  19. ________xor_____al, al
  20. ________call____ExitProcess
  21. ____main endp
  22. code ends
  23. end main
Функция StringConcatenate копирует содержимое второй строки, завершающейся (\0) или 0, в конец первой строки.

Параметры:

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

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

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

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

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

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

  • Копирование включает нулевой терминатор (\0) или 0.
  • Функция не изменяет значения регистров и флагов.

  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. data segment public
  5. ____string1 db "Привет Мир \0"
  6. ____________db 20 dup(0)
  7. ____string2 db "8086 Ассемблера!\0"
  8. data ends
  9. code segment public _______________; Начало сегмента кода
  10. ____assume _ds:data, cs:code
  11. ____include Handyfar.inc___________; Подключаем файл с функциями
  12. ____main proc _____________________; Начало процедуры main
  13. ________call____SetDataSegment_____; Вызываем процедуру SetDataSegment
  14. ________lea_____bx, es:[string2]___; Загружаем адрес переменной string2 в регистр es:bx
  15. ________lea_____ax, ds:[string1]___; Загружаем адрес переменной string1 в регистр ds:ax
  16. ________call____StringConcatenate__; Вызываем процедуру StringConcatenate(ds:ax, es:bx)
  17. ________lea_____ax, ds:[string1]___; Загружаем адрес переменной string1 в регистр ds:ax
  18. ________call____WriteString________; Вызываем процедуру WriteString(ax:string1)
  19. ________xor_____al, al_____________; Обнуляем регистр al
  20. ________call____ExitProcess________; Вызываем процедуру ExitProcess
  21. ____main endp _____________________; Конец процедуры main
  22. code ends _________________________; Конец сегмента кода
  23. end main __________________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda