Функция
ArrayCompare сравнивает два массива поэлементно. Если массивы равны, функция устанавливает флаг нуля (ZF = 1), иначе сбрасывает его (ZF = 0).
Параметры:- DS:AX: Указатель на первый массив.
- ES:BX: Указатель на второй массив.
- CX:___ Количество элементов для сравнения. Если CX = 0, функция завершает работу и устанавливает ZF = 1.
Возвращаемое значение:____ZF = 1.
- Если массивы не равны или один из указателей равен 0:
____ZF = 0.
Состояние флагов:- Функция влияет на все флаги, включая флаг ZF, SF и другие.
Особенности:- Функция не изменяет значения регистров.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____array1___dw 1234h, 2345h, 3456h, 4567h
- ____array2___dw 1234h, 2345h, 3454h, 4567h
- ____equal____db "Массивы равны!\0"
- ____notEqual_db "Массивы не равны!\0"
- data ends
- code segment public
- ____assume _ds:data, cs:code
- ____include Handyfar.inc
- ____main proc
- ________call____SetDataSegment
- ________mov_____cx, 4
- ________lea_____bx, es:[array2]
- ________lea_____ax, ds:[array1]
- ________call____ArrayCompare
- ________jne_____ArraysNotEqual
- ________lea_____ax, ds:[equal]
- ________jmp_____Done
- ____ArraysNotEqual:
- ________lea_____ax, ds:[notEqual]
- ____Done:
- ________call____WriteString
- ________xor_____al, al
- ________call____ExitProcess
- ____main endp
- code ends
- end main