home *** CD-ROM | disk | FTP | other *** search
- .MODEL TPASCAL
- .CODE
- Austausch PROC FAR Var1:DWORD,Var2:DWORD,Anzahl:WORD
- PUBLIC Austausch
- cld ; nach oben austauschen
- mov dx,ds ; DS sichern
- lds si,Var1 ; Erste Adresse
- les di,Var2 ; Zweite Adresse
- mov cx,Anzahl ; Anzahl der zu verschiebenden Bytes
- shr cx,1 ; Anzahl der Worte
- jnc WorteTauschen ; Schleife, falls gerade Anzahl Bytes
- mov al,es:[di] ; Ungerades Byte lesen
- movsb ; Abspeichern
- mov [si-1],al ; Byte von Var2 in Var1 speichern
- jz Ende ; Fertig, falls es nur ein Byte war
- WorteTauschen:
- mov bx,-2 ; -2 zwischenspeichern
- TauschenSchleife:
- mov ax,es:[di] ; Wort von Var2 lesen
- movsw ; Word von Var1 in Var2 übertragen
- mov [bx][si],ax ; Var2 in Var1 übertragen
- loop TauschenSchleife
- Ende:
- mov ds,dx ; DS von Turbo wiederherstellen
- ret
- Austausch ENDP
- END
-