1

0x4下面的流水线是什么意思?

cmp 0x4(%esi),%ebx
je ...

当此比较返回相等并执行跳转时,寄存器具有以下值: %esi 0xe944d6d0 %ebx 0xe94ceccc

很抱歉问了这么简单的问题,但我很难用谷歌搜索这样的括号符号。在时间压力下花了半个多小时。

4

1 回答 1

3

那是 AT&T 语法,在 Intel 语法中它是:

cmp ebx,[esi+4]

请注意,操作数的顺序是相反的。

在 Intel 语法中,它是 dest,src。在 AT&T 中,它是 src,dest。

因此,基本上该指令通过减去存储在from中的 dword 值ebx与存储在其中的 dword 值进行比较,就像会做的那样,但只更新标志,它不会将结果存储在任何地方。[esi+4][esi+4]ebxsubcmp

于 2013-02-14T15:46:17.310 回答