Here is my code which takes in two variables and sums them and subtracts them. Then, it prints the output. I have removed some of the functions to keep it simple:
_start:
call _printfirstmsg
call _getvar1
call _printsecondmsg
call _getvar2
call _addvar1var2
call _printsum
call _subvar1var2
call _printdiff
call _dispvar1
call _dispvar2
mov rax, 60
mov rdi, 0
syscall
_printsum:
mov rax, 1
mov rdi, 1
mov rsi,addi
mov rdx, 4
syscall
ret
_printdiff:
mov rax, 1
mov rdi, 1
mov rsi,subt
mov rdx, 4
syscall
ret
_addvar1var2:
mov rax, [var1]
add rax, [var2]
mov [addi], rax
syscall
ret
_subvar1var2:
mov rbx, [var1]
sub rbx, [var2]
mov [subt], rbx
syscall
ret
When I run the function, instead of returning the values of _printsum
and _printdiff
, it shows some unknown characters as outputs. Please tell me where I am mistaken.