Функция
ArrayConcatenate копирует элементы второго массива в конец первого массива.
Параметры:- DS:AX: Указатель на первый массив.
- ES:BX: Указатель на второй массив.
- CX: ___Размер первого массива (количество элементов). Если CX = 0, функция завершает работу.
- DX: ___Размер второго массива (количество элементов). Если DX = 0, функция завершает работу.
Возвращаемое значение:- CX: Общее количество элементов в первом массиве после копирования.
Состояние флагов:- Функция не изменяет состояние флагов.
Особенности:- Функция не изменяет значения регистров, кроме CX.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____array1__dw__1111h, 2222h, 3333h, 4444h
- ____arrlen1 equ ($-array1) / 2
- ____________dw__10 dup(0)
- ____array2__dw__5555h, 6666h, 7777h
- ____________dw__8888h, 9999h
- ____arrlen2 equ ($-array2) / 2
- ____output__db__"Массив: \0"
- ____fmtout _db__"[%h] \0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____include Handymac.inc
- ____main proc
- ________call____SetDataSegment
- ________mov_____dx, arrlen2
- ________mov_____cx, arrlen1
- ________lea_____bx, es:[array2]
- ________lea_____ax, ds:[array1]
- ________call____ArrayConcatenate
- ________lea_____ax, ds:[output]
- ________call____WriteString
- ____PrintArrayLoop:
- ________push____word ptr[si]
- ________lea_____ax, ds:[fmtout]
- ________call____PrintFormatString
- ________add_____sp, 2
- ________incw____si
- ________loop____PrintArrayLoop
- ________xor_____al, al
- ________call____ExitProcess
- ____main endp
- code ends
- end main