Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
intmain2
; intmain.asm this is a main function ; call integer function long int sum(long int x, long int y) ; compile: nasm -f elf64 -l intmain.lst intmain.asm ; link: gcc -m64 -o intmain intmain.o ; run: ./intmain > intmain.out ; view: cat intmain.out ; result: 5 = sum(2,3) extern printf extern sum, sub2, mult2 section .data x: dq 2 y: dq 3 fmt: db "%ld = sum(%ld,%ld)",10,0 fmt2: db "%ld = sub(%ld,%ld)",10,0 fmt3: db "%ld = mul(%ld,%ld)",10,0 section .bss z: resq 1 section .text global main main: push rbp ; set up stack mov rdi, [x] ; pass arguments for sum mov rsi, [y] call sum ; in separate file mov [z],rax ; save result from sum mov rdi, fmt ; print mov rsi, [z] mov rdx, [x] ; yes, rdx comes before rcx mov rcx, [y] mov rax, 0 ; no float or double call printf mov rdi, [x] mov rsi, [y] call sub2 mov [z],rax mov rdi, fmt2 ; print mov rsi, [z] mov rdx, [x] ; yes, rdx comes before rcx mov rcx, [y] mov rax, 0 ; no float or double call printf mov rdi, [x] mov rsi, [y] call mult2 mov [z], rax mov rdi, fmt3 mov rsi, [z] mov rdx, [x] mov rcx, [y] mov rax, 0 call printf mov rsi, [z] mov rdx, [x] ; yes, rdx comes before rcx mov rcx, [y] mov rax, 0 ; no float or double call printf mov rdi, [x] mov rsi, [y] call sub2 mov [z],rax mov rdi, fmt2 ; print mov rsi, [z] mov rdx, [x] ; yes, rdx comes before rcx mov rcx, [y] mov rax, 0 ; no float or double call printf mov rdi, [x] mov rsi, [y] call mult2 mov [z], rax mov rdi, fmt3 mov rsi, [z] mov rdx, [x] mov rcx, [y] mov rax, 0 call printf pop rbp ; restore stack mov rax,0 ret ; end main ; end intmain.asm
run
|
edit
|
history
|
help
0
lec4bb
dsaffdsfdsfs
HelloWorldAssem
tarea1
index2.asm
fdsfdsafasd
CMSC313 First Program Group Lab
FirstProgram
lecture6-2
Group lab 1