ХАНДЫФАР

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

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string1 db "Привет Мир \0", 30 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. ____include Handymac.inc
  13. ____main proc
  14. ________call____SetDataSegment
  15. ________pushs___es:[string2]
  16. ________pushs___ds:[string1]
  17. ________call____StringConcatenateEx
  18. ________pushs___ds:[string1]
  19. ________call____WriteStringEx
  20. ________push____0
  21. ________call____ExitProcessEx
  22. ____main endp
  23. code ends
  24. end main
Функция StringConcatenateEx копирует содержимое второй строки, завершающейся (\0) или 0, в конец первой строки. Функция StringConcatenateEx автоматически выравнивает стек на 4 байта.

Параметры:

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

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

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

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

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

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

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

  1. title Автор: Довгополов Евгений Сергеевич
  2. .286C
  3. .model small
  4. .stack 100h
  5. data segment public
  6. ____string1 db "Привет Мир \0", 30 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. ____include Handymac.inc_____________; Подключаем файл с макросами
  13. ____main proc
  14. ________call____SetDataSegment_______; Вызываем процедуру SetDataSegment
  15. ________pushs___es:[string2]_________; 2-й: Ложим на вершину стека адрес переменной string2
  16. ________pushs___ds:[string1]_________; 1-й: Ложим на вершину стека адрес переменной string1
  17. ________call____StringConcatenateEx__; Вызываем процедуру StringConcatenateEx(string1, string2)
  18. ________pushs___ds:[string1]_________; Ложим на вершину стека адрес переменной string1
  19. ________call____WriteStringEx________; Вызываем процедуру WriteStringEx(string1)
  20. ________push____0____________________; Ложим на вершину стека байтовое значение кода возврата
  21. ________call____ExitProcessEx________; Вызываем процедуру ExitProcess(0)
  22. ____main endp
  23. code ends
  24. end main
Made on
Tilda