Dezimalzahlen 0-9 ausgeben

This commit is contained in:
2026-02-13 08:09:48 +00:00
parent 785dbb57d6
commit b681e53e1e

View File

@@ -1,13 +1,31 @@
section .bss
buf resb 2 ;reserviert 2 Bytes im BSS
section .text section .text
global _start global _start
_start: _start:
xor rax, rax ; RAX auf 0 setzen
mov al, 0 ;schiebt in das Register AL 0 AL= 8 Bit mov al, 0 ;schiebt in das Register AL 0 AL= 8 Bit
.loop: .loop:
cmp al, 10 ;vergleicht ob AL 10 ist cmp al, 10 ;vergleicht ob AL 10 ist
je .done ;Jump if Equal nach done jge .done ;Jump if Equal or greater nach done
mov bl, al ; schiebt den Inhalt von AL in BL
add bl, '0' ; formt Zahl nach ASCII Steuerzeichen
mov [rel buf], bl ; schiebt die Dezimalzahl in den Buffer
mov [rel buf+1], 10 ; Leerzeile
push rax ; sichert RAX in den Speicher AL->8Bit von RAX 64Bit
mov rax, 1 ; schreibt eine 1 SYS_WRITE in das Register RAX
mov rdi, 1 ; schreibt 1 stout in das Register RDI
lea rsi, [rel buf]
mov rdx, 2
syscall ;system call
pop rax ; stellt RAX wieder da
inc al ;increment inc al ;increment
jmp .loop ;sprung nach oben jmp .loop ;sprung nach oben
@@ -15,4 +33,4 @@ _start:
.done: .done:
mov rax, 60 mov rax, 60
xor rdi, rdi xor rdi, rdi
syscall syscall