37 lines
877 B
NASM
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
|