Der Unterschied zwischen cmpl-und cmp

Ich versuche zu verstehen assembly in der Lage sein, ein puzzle zu lösen. Allerdings habe ich festgestellt, die folgenden Anweisungen:

0x0000000000401136 <+44>:    cmpl   $0x7,0x14(%rsp)
0x000000000040113b <+49>:    ja     0x401230 <phase_3+294>

Was ich denke, sein tun ist:
Der Wert 0x14(%rsp) ist -7380. Nach meinem Verständnis cmpl vergleicht unsigned. Auch der Sprung durchgeführt wird.
So kann es sein, dass die (unsigned)-7380 > 7
(unsigned)7380 > 7--> springe

Ich eigentlich nicht wollen, es zu springen. Aber ist das die richtige Erklärung ist oder nicht? Bin ich blätterte Argumente?

Auch, wenn Sie irgendwelche Ratschläge darüber, wie zu manipulieren das springen!

  • l in cmpl ist, legen Sie den 32-bit-Speicher-argument. ein Teil des ja ist anzugeben, signed/unsigned. Blick bis auf branch-Instruktionen.
  • Wahrscheinlich eine gute Idee zu erwähnen (und tag), was Prozessor Architektur gemeint.
  • es ist nur die AT&T-syntax Größe suffix
Schreibe einen Kommentar