S Stephan_12 Redshirt Mitglied seit 18.12.2005 Beiträge 1 Renomée 0 18.12.2005 #1 Hallo, Ich versuche mich etwas in ASM einzuarbeiten [NASM] benutz ich! Code: MOV ax, [zahl] ADD ax, [zahl2] zahl db "2",0 zahl2 db "3",0 um Strings auszugeben habe ich: Code: putstr: lodsb ; Byte laden or al,al jz short putstrd ; 0-Byte? -> Ende! mov ah,0x0E ; Funktion 0x0E mov bx,0x0007 ; Atrribut-Byte int 0x10 ; schreiben jmp putstr ; nächstes Byte naja das geht bei der Zahl nicht, da wenn ich hingehe: Code: MOV si, [ax] call putstr bekomm ich nur komische Zeichen. Wie muss ich des machen? Danke!!!
Hallo, Ich versuche mich etwas in ASM einzuarbeiten [NASM] benutz ich! Code: MOV ax, [zahl] ADD ax, [zahl2] zahl db "2",0 zahl2 db "3",0 um Strings auszugeben habe ich: Code: putstr: lodsb ; Byte laden or al,al jz short putstrd ; 0-Byte? -> Ende! mov ah,0x0E ; Funktion 0x0E mov bx,0x0007 ; Atrribut-Byte int 0x10 ; schreiben jmp putstr ; nächstes Byte naja das geht bei der Zahl nicht, da wenn ich hingehe: Code: MOV si, [ax] call putstr bekomm ich nur komische Zeichen. Wie muss ich des machen? Danke!!!
i_hasser Grand Admiral Special Mitglied seit 06.06.2002 Beiträge 18.964 Renomée 85 Standort IO 0x60 18.12.2005 #2 Welche Plattform? Auf Asm Ebene funktioniert das bei jedem OS anders. Desswegen das ganze erstmal als C Code: Code: int z=12345; for(;z!=0;z/=10) printf("%c", '0'+z%10); Allerdings fällt mir gerade auf, dass das die Zahl in umgekehrter Reihenfolge ausgibt . Musst du also noch umdrehen.
Welche Plattform? Auf Asm Ebene funktioniert das bei jedem OS anders. Desswegen das ganze erstmal als C Code: Code: int z=12345; for(;z!=0;z/=10) printf("%c", '0'+z%10); Allerdings fällt mir gerade auf, dass das die Zahl in umgekehrter Reihenfolge ausgibt . Musst du also noch umdrehen.