From b681e53e1e82818fbffdb8add2116a5a96264eb6 Mon Sep 17 00:00:00 2001 From: ingressy Date: Fri, 13 Feb 2026 08:09:48 +0000 Subject: [PATCH] Dezimalzahlen 0-9 ausgeben --- zaehler.asm | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/zaehler.asm b/zaehler.asm index 3a8fa31..bf235ba 100644 --- a/zaehler.asm +++ b/zaehler.asm @@ -1,13 +1,31 @@ +section .bss + buf resb 2 ;reserviert 2 Bytes im BSS + section .text global _start _start: + xor rax, rax ; RAX auf 0 setzen mov al, 0 ;schiebt in das Register AL 0 AL= 8 Bit .loop: 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 jmp .loop ;sprung nach oben @@ -15,4 +33,4 @@ _start: .done: mov rax, 60 xor rdi, rdi - syscall \ No newline at end of file + syscall