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