title: x86 Assembly Programming (GAS Syntax): How to take in the value of 2^32 - 1 into a long
body: <p>I am trying to place the value of <code>2^32 - 1 (4294967295)</code> into a long label through the following code:</p>
  <pre><code>.data
      num:
          .long 4294967295
  </code></pre>
  <p>However, when I look at the data in the register after I push the variable to the register (<code>movl num, %ecx</code>), the dividend is displayed as <code>-1</code>. The program is running on a 32-bit computer. This seems strange, since shouldn't a 32-bit long be able to store <code>2^32 - 1 = 4294967295</code>?</p>