简体   繁体   English

汇编中的cmp

[英]Translating cmp in assembly

I'm new to assembly and ran accross the following ling: 我是组装的新手,遇到了以下问题:

cmp 0x2c(%esp),%esi

It's clearly trying to compare, but I don't know what 0x2c(%esp) is. 显然,它试图进行比较,但是我不知道0x2c(%esp)是什么。 I'm using GDB, so a command to access that value would be helpful. 我正在使用GDB,因此使用命令访问该值将很有帮助。 The next line sees if the two values are equal. 下一行查看两个值是否相等。

我不熟悉您的汇编器的语法,但我收集到的结果是将寄存器ESI的内容与(堆栈指针+ 2C十六进制)内存位置的内容进行比较

This is at&t syntax. 这是at&t语法。 You can switch gdb to intel syntax using set disassembly-flavor intel to get more readable code. 您可以使用set disassembly-flavor intel将gdb切换为intel语法,以获取更具可读性的代码。 You can examine the value using for example x/d $esp+0x2c . 您可以使用x/d $esp+0x2c检查值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM