home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / extra18 / grdlagen / sort / comp.asm next >
Encoding:
Assembly Source File  |  1992-01-28  |  2.2 KB  |  91 lines

  1. ;* -------------------------------------------------- *
  2. ;*                   COMP.ASM                         *
  3. ;* Idee : toolbox 6/91 Seite 52                       *
  4. ;* -------------------------------------------------- *
  5.  
  6. CODE       SEGMENT BYTE PUBLIC
  7.  
  8.            ASSUME  CS:CODE
  9.  
  10. ;* -------------------------------------------------- *
  11.  
  12.            PUBLIC  Equal
  13.  
  14.            PUBLIC  Compare
  15.  
  16. ;* -------------------------------------------------- *
  17. ;*  Equal vergleicht zwei typenlose Variablen der     *
  18. ;*  maximalen Länge 64 KByte                          *
  19. ;* -------------------------------------------------- *
  20.  
  21. Equal      PROC FAR
  22.  
  23.            VarSize EQU  Word Ptr SS:[BP+ 8]
  24.            Var2    EQU DWord Ptr SS:[BP+10]
  25.            Var1    EQU DWord Ptr SS:[BP+14]
  26.  
  27.            PUSH BP       ; BP & DS auf Stack sichern
  28.            PUSH DS
  29.            MOV  BP,SP    ; Stack adressierbar machen
  30.  
  31.            LDS  SI,Var1  ; Variablen laden
  32.            LES  DI,Var2
  33.            MOV  CX,VarSize
  34.            CLD
  35.  
  36.            REPE CMPSB    ; vergleichen bis ungleich
  37.  
  38.            JS   Kleiner
  39.            JE   Gleich
  40.  
  41.            MOV  AL,2
  42.            JMP  Ende
  43.  
  44. Kleiner:   XOR  AX,AX
  45.            JMP  Ende
  46.  
  47. Gleich:    MOV  Al,1
  48.  
  49. Ende:      POP  DS
  50.            POP  BP
  51.            RET  10
  52.  
  53. Equal      ENDP
  54.  
  55. ;* -------------------------------------------------- *
  56. ;* Compare vergleicht zwei typenlose Variablen der    *
  57. ;* maximalen Länge 64 KByte                           *
  58. ;* -------------------------------------------------- *
  59.  
  60. Compare    PROC FAR
  61.  
  62.            VarSize EQU  Word Ptr SS:[BP+ 8]
  63.            Var2    EQU DWord Ptr SS:[BP+10]
  64.            Var1    EQU DWord Ptr SS:[BP+14]
  65.  
  66.            PUSH BP
  67.            PUSH DS
  68.            MOV  BP,SP
  69.  
  70.            LDS  SI,Var1
  71.            LES  DI,Var2
  72.            MOV  CX,VarSize
  73.            CLD
  74.            REPE CmpSb
  75.            JNE  Ungleich
  76.            MOV  AX,1
  77.            JMP  CompEnde
  78.  
  79. Ungleich:  XOR  AX,AX
  80.  
  81. CompEnde:  POP  DS
  82.            POP  BP
  83.            RET  10
  84.  
  85. Compare    ENDP
  86.  
  87. CODE       ENDS
  88.  
  89.            END
  90. (* ------------------------------------------------- *)
  91. (*               Ende von COMP.ASM                   *)