我正在查看一些汇编代码,我看到了:
cmpl $0x1d32, -0x4(%ebp)
由于-0x4(%ebp)是1个字节,因此显然无法在其中存储其他值(7474)。那么,这段代码什么时候会显示它们相等?它只会比较立即值的最高/最低有效字节还是有某种隐藏的单词扩展名?
答案 0 :(得分:1)
-0x4(%ebp)
是一个地址,它没有任何相关的尺寸。指令中的l
后缀将大小指定为32位整数(long
)。因此,处理器将从给定地址开始获取4个字节,并将其用作操作数,以小端字节顺序(从最低有效字节开始)对其进行解释。