diff options
Diffstat (limited to 'abs.asm')
-rw-r--r-- | abs.asm | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -0,0 +1,44 @@ +format ELF64 + +extrn printf +extrn puts +extrn scanf +public main + +section '.text' executable + +main: + push rbp + mov rbp,rsp + + mov edi,prompt + call puts + + sub rsp,16 + + mov rsi,rsp + mov edi,readint + xor eax,eax + call scanf + + mov rax,[rsp] + + add rsp,16 + + cqo + xor rax,rdx + sub rax,rdx + + mov rsi,rax + mov edi,msg + xor eax,eax + call printf + + leave + ret + +section '.data' writable align 16 + +msg db "Absolute value is %lu",0xA,0 +prompt db "Enter a negative integer.",0 +readint db "%ld",0 |