home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / tasm / chapxmpl.arc / AUSTAUS2.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-10-09  |  853 b   |  28 lines

  1.         .MODEL    TPASCAL
  2.         .CODE
  3. Austausch    PROC    FAR Var1:DWORD,Var2:DWORD,Anzahl:WORD
  4.         PUBLIC    Austausch
  5.         cld            ; nach oben austauschen
  6.         mov    dx,ds        ; DS sichern
  7.         lds    si,Var1        ; Erste Adresse
  8.         les    di,Var2        ; Zweite Adresse
  9.         mov    cx,Anzahl        ; Anzahl der zu verschiebenden Bytes
  10.         shr    cx,1            ; Anzahl der Worte
  11.         jnc    WorteTauschen    ; Schleife, falls gerade Anzahl Bytes
  12.         mov    al,es:[di]        ; Ungerades Byte lesen
  13.         movsb            ; Abspeichern
  14.         mov    [si-1],al        ; Byte von Var2 in Var1 speichern
  15.         jz    Ende            ; Fertig, falls es nur ein Byte war
  16. WorteTauschen:
  17.         mov    bx,-2        ; -2 zwischenspeichern
  18. TauschenSchleife:
  19.         mov    ax,es:[di]        ; Wort von Var2 lesen
  20.         movsw            ; Word von Var1 in Var2 übertragen
  21.         mov    [bx][si],ax    ; Var2 in Var1 übertragen
  22.         loop    TauschenSchleife
  23. Ende:
  24.         mov    ds,dx        ; DS von Turbo wiederherstellen
  25.         ret
  26. Austausch    ENDP
  27.         END
  28.