%include "CONSTANTS.h" section .data outputFMT: db `dq %d^%d = %ld\n`,0 section .bss section .text global main main: ;mov rdi, format1 ;mov rsi, -1 ;call CallPrintf mov r12, 0 topMainLoop: cmp r12, 51 je .done mov rdi, 2 mov rsi, r12 call POW mov rdi, outputFMT mov rsi, 2 mov rdx, r12 mov rcx, rax call CallPrintf inc r12 jmp topMainLoop .done: jmp Exit ; rdi holds base ; rsi holds exponent ; assume exponent is positive POW: push rbp mov rbp, rsp cmp rsi, 0 je .baseCase push rdi sub rsi, 1 call POW pop rdi mul rdi jmp .endPow .baseCase: mov rax, 1 .endPow: pop rbp ret