.XLIST ; MEM.MAC ; 21.10.91 ; Автор: Конюхов Д.Л. ;------ Копировать память count byte (cld) mfunc memcpy,,,extrn ;------ Копировать память count byte (std) mfunc memcopy,,,extrn ;------ Заполнить область памяти символом заполнителем (cld) mfunc memfill,,,extrn ;------ Сравнить участки памяти count byte (cld) mfunc memcmp,,,extrn ;------ Поменять области памяти mfunc memxchg,,,extrn ;------ Calculate the absolute address of a 32-bit pointer FarPtrAddress macro Segment, Ofs mov bx, Segment and bx, 0FFFh mov cl, 4 shl bx, cl mov dx, Segment mov cl, 12 shr dx, cl mov ax, Ofs add ax, bx adc dx, 0 endm ;------ Compare two 32-bit pointers CompareFarPointers macro Seg1, Ofs1, Seg2, Ofs2 local Exit, SegmentsEqual mov ax, Seg1 mov dx, Seg2 cmp ax, dx je short SegmentsEqual FarPtrAddress Seg1, Ofs1 push dx push ax FarPtrAddress Seg2, Ofs2 mov bx, sp cmp [ss:bx+2], dx pop bx pop bx jne short Exit cmp [ss:bx], ax jmp short Exit SegmentsEqual: mov AX, Ofs1 mov DX, Ofs2 cmp AX, DX Exit: endm .LIST