%include "CONSTANTS.h" SYS_GETRANDOM equ 318 SIDES equ 20 TRIALS equ 1000000 section .data randNum: dq 0 fmt: db `%d occured %d times\n`,0 section .bss counts: resq SIDES section .text global main main: ; r12 is the lcv mov r12, 0 GenLoopTop: cmp r12, TRIALS je .done mov rax, SYS_GETRANDOM mov rdi, randNum mov rsi, 8 mov rdx, 0 syscall mov rax, [randNum] mov rdx, 0 mov r8, SIDES div r8 inc qword[counts + rdx*8] inc r12 jmp GenLoopTop .done: mov r12, 0 PrintLoopTop: cmp r12, SIDES jge .done mov rdi, fmt mov rdx, [counts + r12 * 8] mov rsi, r12 call CallPrintf inc r12 jmp PrintLoopTop .done jmp Exit