I have been working on this problem for days. The object is to add two numbers from user input and display the answer in 32bit. So far I've got the messages to display and accept user input, but I'm getting a segmentation fault which happens after "Total Sum is: ", which I dont really understand. I'm a noob at assembly. Any help would be great
;32-bit Add Two Numbers
global _start
extern stoi
extern itos
section .data
message1 db "Enter first number: ",0x0a,0x00
msglen1 equ $ - message1
message2 db "Enter second number: ",0x0a,0x00
msglen2 equ $ - message2
message3 db "Total Sum is: ",0x0a,0x00
msglen3 equ $ - message3
section .bss
number1 resd 2
number2 resd 2
total resd 3
buffer resd 20
section .text
_start: ; Write a prompt
mov eax, 4 ; function code for system write
mov ecx, message1 ; address of string to be written
mov edx, msglen1 ; length of string to be written
mov ebx, 1 ; file descriptor or device (stdout)
int 80h ; generate system call
mov eax, 3 ; function code for system read
mov ecx, buffer ; address of string to be read
mov edx, 18 ; length of buffer (minus a little)
mov ebx, 0 ; file descriptor or device (stdin)
int 80h ; generate system call
mov eax, number1
call stoi
mov eax, 4 ; function code for system write
mov ecx, message2 ; address of string to be written
mov edx, msglen2 ; length of string to be written
mov ebx, 1 ; file descriptor or device (stdout)
int 80h ; generate system call
mov eax, 3
mov ecx, buffer
mov edx, 18
mov ebx, 0
int 80h
mov eax, number2
call stoi
mov eax, number1
add eax, number2
mov [total], eax
mov eax, 4
mov ecx, message3
mov edx, msglen3
mov ebx, 1
int 80h
mov eax, buffer
call itos
mov eax, 1 ; function code for system exit
mov ebx, 0 ; exit status
int 80h