home *** CD-ROM | disk | FTP | other *** search
- ;* -------------------------------------------------- *
- ;* COMP.ASM *
- ;* Idee : toolbox 6/91 Seite 52 *
- ;* -------------------------------------------------- *
-
- CODE SEGMENT BYTE PUBLIC
-
- ASSUME CS:CODE
-
- ;* -------------------------------------------------- *
-
- PUBLIC Equal
-
- PUBLIC Compare
-
- ;* -------------------------------------------------- *
- ;* Equal vergleicht zwei typenlose Variablen der *
- ;* maximalen Länge 64 KByte *
- ;* -------------------------------------------------- *
-
- Equal PROC FAR
-
- VarSize EQU Word Ptr SS:[BP+ 8]
- Var2 EQU DWord Ptr SS:[BP+10]
- Var1 EQU DWord Ptr SS:[BP+14]
-
- PUSH BP ; BP & DS auf Stack sichern
- PUSH DS
- MOV BP,SP ; Stack adressierbar machen
-
- LDS SI,Var1 ; Variablen laden
- LES DI,Var2
- MOV CX,VarSize
- CLD
-
- REPE CMPSB ; vergleichen bis ungleich
-
- JS Kleiner
- JE Gleich
-
- MOV AL,2
- JMP Ende
-
- Kleiner: XOR AX,AX
- JMP Ende
-
- Gleich: MOV Al,1
-
- Ende: POP DS
- POP BP
- RET 10
-
- Equal ENDP
-
- ;* -------------------------------------------------- *
- ;* Compare vergleicht zwei typenlose Variablen der *
- ;* maximalen Länge 64 KByte *
- ;* -------------------------------------------------- *
-
- Compare PROC FAR
-
- VarSize EQU Word Ptr SS:[BP+ 8]
- Var2 EQU DWord Ptr SS:[BP+10]
- Var1 EQU DWord Ptr SS:[BP+14]
-
- PUSH BP
- PUSH DS
- MOV BP,SP
-
- LDS SI,Var1
- LES DI,Var2
- MOV CX,VarSize
- CLD
- REPE CmpSb
- JNE Ungleich
- MOV AX,1
- JMP CompEnde
-
- Ungleich: XOR AX,AX
-
- CompEnde: POP DS
- POP BP
- RET 10
-
- Compare ENDP
-
- CODE ENDS
-
- END
- (* ------------------------------------------------- *)
- (* Ende von COMP.ASM *)