Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,40 @@
; NASM 64 bit X86-64 assembly on Linux
global main
extern printf
segment .data
printffmt db `%ld\n`,0
segment .text
main:
push rbp
mov rbp,rsp
; used rbx and r12 because printf preserves these values
mov rbx,1024 ; start with 1024
mov r12,2 ; load 2 as divisor
.toploop ; top of while loop
cmp rbx,0 ; compare to 0
jle .done ; exit 0 or less
lea rdi,[printffmt] ; print number in rsi
mov rsi,rbx ; mov to rsi as argument
call printf
; calculate n/2 and save
xor rdx,rdx ; clear rdx for division
mov rax,rbx ; mov number to rax for division
idiv r12 ; divide by 2
mov rbx,rax ; save n/2
jmp .toploop ; next loop
.done
xor rax,rax ; return code 0
leave ; fix stack
ret ; return