title: x86 assembly - masm32: Issues with pushing variable to stack
body: <p>I'm trying to make a program that gets two input numbers, multiplies them (storing the result in a variable), divides them (storing the result in another variable) and prints the result. </p>
  
  <p>The issue I'm having is that the first line of code <code>push num1</code> returns <code>invalid instruction operands</code>:</p>
  
  <pre><code>.data
          num1 db "Enter a number:"
          num2 db "Enter another number:"
  .data?
          buffer1 dd 100 dup(?) ; this is where I store input for num1
          buffer2 dd 100 dup(?) ; " " num2
  .code
  start:
          push num1 ; here is where it returns the error
          call StdOut ;I want to print num1 but it doesn't get that far.
                      ; later on in my code it does multiplication and division.
          push buffer1 ; I push buffer1
          call StdIn  ; so that I can use it for StdIn
                      ; I repeat this for num2
          ; I then use those 2 numbers for multiplication and division. 
  </code></pre>
  
  <p>Why is it causing this error? </p>