home *** CD-ROM | disk | FTP | other *** search
-
- {$S-,R-}
- UNIT MaxMinW;
- (*
- The source code for the MaxMinW unit is released to the public domain.
- No rights are reserved. Phil Nickell. NSoft Co.
- This Turbo Pascal unit implements four highly optimized assembly
- language functions that provide MAX() and MIN() for unsigned words and
- signed integers
- *)
- INTERFACE
- function MAXW (a,b:word) : Word; { max word }
- function MINW (a,b:word) : Word; { min word }
- function MAXI (a,b:integer) : Integer; { max integer }
- function MINI (a,b:integer) : Integer; { min integer }
-
- IMPLEMENTATION
- function maxw(a,b:word):word; Assembler;
- Asm
- mov ax, a { first parm in ax }
- mov dx, b { second parm in dx }
- cmp ax, dx { compare parms }
- jae @1 { return 1st parm }
- mov ax, dx { return 2nd parm }
- @1:
- End;
-
- function minw(a,b:word):word; Assembler;
- Asm
- mov ax, a { first parm in ax }
- mov dx, b { second parm in dx }
- cmp ax, dx { compare parms }
- jbe @1 { return 1st parm }
- mov ax, dx { return 2nd parm }
- @1:
- End;
-
- function maxi(a,b:integer):integer; Assembler;
- Asm
- mov ax, a { first parm in ax }
- mov dx, b { second parm in dx }
- cmp ax, dx { compare parms }
- jge @1 { return 1st parm }
- mov ax, dx { return 2nd parm }
- @1:
- End;
-
- function mini(a,b:integer):integer; Assembler;
- Asm
- mov ax, a { first parm in ax }
- mov dx, b { second parm in dx }
- cmp ax, dx { compare parms }
- jle @1 { return 1st parm }
- mov ax, dx { return 2nd parm }
- @1:
- End;
-
- Begin {INITIALIZATION}
- End.