[Back to MISC SWAG index] [Back to Main SWAG index] [Original]
{$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.
[Back to MISC SWAG index] [Back to Main SWAG index] [Original]