Wo mit ASM rumhantiert wird bin ich nicht weit

! Leider die Zeit... Aber eine Anmerkung zu STARGÅTEs Code: Die 5.Division ist mMn überflüssig; und gerade die (Integer-) Divisionen gelten ja als Taktfresser. Also z.B.:
Code: Alles auswählen
!base85_loop:
!MOV eax, [ecx] ; Tiefer Dividend-Teil
!BSWAP eax
!MOV edx, 0 ; Hoher Dividend-Teil = 0
!DIV ebx ; Erste Division
!ADD [edi+4], dl ; Rest (nur das tiefste Byte) kommt in den String, addiert auf das "!"
!MOV edx, 0
!DIV ebx ; Zweite Division
!ADD [edi+3], dl
!MOV edx, 0
!DIV ebx ; Dritte Division
!ADD [edi+2], dl
!MOV edx, 0
!DIV ebx ; Vierte Division
!ADD [edi+1], dl
;!MOV edx, 0
;!DIV ebx ; Fünfte Division
!ADD [edi+0], al ;dl
!ADD ecx, 4 ; Leseadresse + 4
!ADD edi, 5 ; Schreibadresse + 5
!CMP ecx, [p.p_Input] ; Fertig?
!JNZ base85_loop
Ich hoffe, ich irre mich nicht!
Gruß
Helle