0

I am trying to take 3 inputs total for my calculator: 2 values to operate on, and an operator (+, -, *, /) I'm having an issue taking the second input and not sure why. My program just skips over the second input.

When I run the code my output is like this:

The User is prompted with text to enter the first number. Program takes input. The User is prompted with text to enter the second number. Then my program skips the input for some reason and moves on to the next part. The user is prompted with text to enter an operator (+, -, *, /). Program takes input. Program ends.

The program isn't giving me any segmentaion errors or anything so i'm a bit stuck


section .data
  enternumber1 db 'enter number 1: '
  enternumber2 db 'enter number 2: '
  signchoice db 'pick one: +, -, *, / :'
  addsign dd '+'
  subsign dd '-'
  mulsign dd '*'
  divsign dd '/'

section .bss
  number1 resb 1
  number2 resb 1
  opsign resd 1

section .text
global _start
_start:

  call printnum1
  call takenum1
  call printnum2
  call takenum2
  call printsign
  call takesign
  call end


printnum1:
  mov eax, 4
  mov ebx, 1
  mov ecx, enternumber1
  mov edx, 16
  int 80h
  ret

takenum1:
  mov eax, 3
  mov ebx, 2
  mov ecx, number1
  mov edx, 1
  int 80h
  ret

printnum2:
  mov eax, 4
  mov ebx, 1
  mov ecx, enternumber2
  mov edx, 16
  int 80h
  ret

takenum2
  mov eax, 3
  mov ebx, 2
  mov ecx, number2
  mov edx, 1
  int 80h  
  ret

printsign:
  mov eax, 4
  mov ebx, 1
  mov ecx, signchoice
  mov edx, 22
  int 80h
  ret

takesign:
  mov eax, 3
  mov ebx, 2
  mov ecx, opsign
  mov edx, 1
  int 80h
  ret

end:
  mov eax, 1
  mov ebx, 0
  int 80h

'''

0 Answers0