home *** CD-ROM | disk | FTP | other *** search
- {$R-}
- UNIT MaxMin;
- (**) INTERFACE (**)
- FUNCTION MaxS(A, B : ShortInt) : ShortInt;
- FUNCTION MinS(A, B : ShortInt) : ShortInt;
- FUNCTION MaxB(A, B : Byte) : Byte;
- FUNCTION MinB(A, B : Byte) : Byte;
- FUNCTION MaxI(A, B : Integer) : Integer;
- FUNCTION MinI(A, B : Integer) : Integer;
- FUNCTION MaxW(A, B : Word) : Word;
- FUNCTION MinW(A, B : Word) : Word;
- FUNCTION MaxL(A, B : LongInt) : LongInt;
- FUNCTION MinL(A, B : LongInt) : LongInt;
- FUNCTION MaxU(A, B : LongInt) : LongInt;
- FUNCTION MinU(A, B : LongInt) : LongInt;
-
- (**) IMPLEMENTATION (**)
- FUNCTION MaxS(A, B : ShortInt) : ShortInt; Assembler;
- ASM
- MOV AL, A
- CMP AL, B
- JGE @no
- MOV AL, B
- @no:
- END;
-
- FUNCTION MinS(A, B : ShortInt) : ShortInt; Assembler;
- ASM
- MOV AL, A
- CMP AL, B
- JLE @no
- MOV AL, B
- @no:
- END;
-
- FUNCTION MaxB(A, B : Byte) : Byte; Assembler;
- ASM
- MOV AL, A
- CMP AL, B
- JAE @no
- MOV AL, B
- @no:
- END;
-
- FUNCTION MinB(A, B : Byte) : Byte; Assembler;
- ASM
- MOV AL, A
- CMP AL, B
- JBE @no
- MOV AL, B
- @no:
- END;
-
- FUNCTION MaxI(A, B : Integer) : Integer; Assembler;
- ASM
- MOV AX, A
- CMP AX, B
- JGE @no
- MOV AX, B
- @no:
- END;
-
- FUNCTION MinI(A, B : Integer) : Integer; Assembler;
- ASM
- MOV AX, A
- CMP AX, B
- JLE @no
- MOV AX, B
- @no:
- END;
-
- FUNCTION MaxW(A, B : Word) : Word; Assembler;
- ASM
- MOV AX, A
- CMP AX, B
- JAE @no
- MOV AX, B
- @no:
- END;
-
- FUNCTION MinW(A, B : Word) : Word; Assembler;
- ASM
- MOV AX, A
- CMP AX, B
- JBE @no
- MOV AX, B
- @no:
- END;
-
- FUNCTION MaxL(A, B : LongInt) : LongInt; Assembler;
- ASM
- MOV DX, Word(A+2)
- MOV AX, Word(A)
- CMP DX, Word(B+2)
- JL @yes
- JG @no
- CMP AX, Word(B)
- JGE @no
- @yes:
- MOV DX, Word(B+2)
- MOV AX, Word(B)
- @no:
- END;
-
- FUNCTION MinL(A, B : LongInt) : LongInt; Assembler;
- ASM
- MOV DX, Word(A+2)
- MOV AX, Word(A)
- CMP DX, Word(B+2)
- JG @yes
- JL @no
- CMP AX, Word(B)
- JLE @no
- @yes:
- MOV DX, Word(B+2)
- MOV AX, Word(B)
- @no:
- END;
-
- FUNCTION MaxU(A, B : LongInt) : LongInt; Assembler;
- ASM
- MOV DX, Word(A+2)
- MOV AX, Word(A)
- CMP DX, Word(B+2)
- JB @yes
- JA @no
- CMP AX, Word(B)
- JAE @no
- @yes:
- MOV DX, Word(B+2)
- MOV AX, Word(B)
- @no:
- END;
-
- FUNCTION MinU(A, B : LongInt) : LongInt; Assembler;
- ASM
- MOV DX, Word(A+2)
- MOV AX, Word(A)
- CMP DX, Word(B+2)
- JA @yes
- JB @no
- CMP AX, Word(B)
- JBE @no
- @yes:
- MOV DX, Word(B+2)
- MOV AX, Word(B)
- @no:
- END;
- END.