home *** CD-ROM | disk | FTP | other *** search
- .MODEL TPASCAL
- .CODE
- HexStr PROC FAR NUM:DWORD,AnzahlBytes:BYTE RETURNS ErgebnisPtr:DWORD
- PUBLIC HexStr
- les di,ErgebnisPtr ; Adresse des Ergebnisses
- mov dx,ds ; DS von Turbo in DX speichern
- lds si,Num ; Adresse der Zahl
- mov al,AnzahlBytes ; Wieviele Bytes?
- xor ah,ah ; Umwandlung in Wort
- mov cx,ax ; Anzahl der Bytes in CX
- add si,ax ; Beim höchsten Byte anfangen
- dec si ; Zeiger zurücksetzen
- shl ax,1 ; Wieviel Ziffer? (2 pro Byte)
- cld ; Anzahl der Bytes in
- stosb ; im String speichern
- HexSchleife:
- std ; Von vorn nach hinten
- lodsb ; Nächstes Byte
- mov ah,al ; Zwischenspeichern
- shr al,1 ; Oberstes Nibble isolieren
- shr al,1
- shr al,1
- shr al,1
- add al,90h ; Hex-Umwandlung mit
- daa ; ADD und DAA
- adc al,40h
- daa ; Nibble umgewandelt
- cld
- stosb ; ASCII-Zeichen speichern
- mov al,ah ; Anderes Nibble umwandeln
- and al,0Fh
- add al,90h
- daa
- adc al,40h
- daa
- stosb
- loop HexSchleife ; weitermachen
- mov ds,dx ; DS von Turbo wieder herstellen
- ret ; Parameter mit 6 Bytes
- HexStr ENDP
- CODE ENDS
- END
-