Variablenausgabe in Assembler (Linux AT&T)
-
Hallo allerseits
Ich habe gerade mit Assembler angefangen und wollte die Zählvariable nach jedem Durchlauf ausgeben aber irgendwie will der nicht so wie ich will
Ich hab schon gelesen das man nur Texte ausgeben kann und hoffe das mir einer dabei hilft..section .data x: .int 0 ausgabe1: .ascii "" ausgabe2: .ascii "Hallo Welt!\n" .section .text .globl _start _start: M1: movl $0, %eax cmpl $10, x(,%eax, 1) jl M2 jmp M3 M2: movl $4, %eax movl $1, %ebx movl $ausgabe2, %ecx movl $13, %edx int $0x80 movl $4, %eax movl $1, %ebx movl $x, %ecx movl $4, %edx int $0x80 movl (x), %eax inc %eax movl %eax, (x) jmp M1 M3: movl $1, %eax movl $0, %ebx int $0x80
-
du musst die Zahl vor der Ausgabe in eine String umwandeln. Die einzelnen Ziffern erhältst du durch Division mit Rest (solange bist Quotient = 0). Der ASCI-Code ergibt sich durch Addition von 0x30 zum Rest.
1. 123 / 10 = 12 R 3 2. 12 / 10 = 1 R 2 3. 1 / 10 = 0 R 1