Files
asm/zaehler.asm
2026-02-13 08:09:48 +00:00

37 lines
877 B
NASM

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
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
.done:
mov rax, 60
xor rdi, rdi
syscall