什么是从CMP为0x4(%ESI),EBX%汇编指令为0x4意味着什么呢? [英] What does 0x4 from cmp 0x4(%esi),%ebx assembly instruction mean?
问题描述
这是什么为0x4
从以下装配线是什么意思?
What does 0x4
from the following assembly line mean?
cmp 0x4(%esi),%ebx
je ...
在这个比较收益相等,则执行该跳中,寄存器的值:%ESI
0xe944d6d0
%EBX
0xe94ceccc
When this compare returns equal and the jump is performed the registers have the values:
%esi
0xe944d6d0
%ebx
0xe94ceccc
对不起,问这么简单的问题,但我有一个困难时期与谷歌搜索等paranthesis符号。花了超过一个半小时,而下一次pressure。
Sorry for asking such a simple question but I'm having a hard time searching such paranthesis notation with google. Spent more than half an hour while under time pressure.
推荐答案
这是AT& T公司的语法,在Intel语句这将是:
That is AT&T syntax, in Intel syntax it would be:
cmp ebx,[esi+4]
请注意该操作数的顺序是相反的。
Note that the order of operands is reversed.
在Intel语法是DEST,SRC。在AT&安培; t将其的SRC,DEST
In Intel syntax it's dest, src. In AT&T it's src, dest.
所以基本上是指令比较 EBX
通过减去DWORD存储在 [ESI + 4]
DWORD值存储在 [ESI + 4]
从 EBX
,就像分$ C值$ C>会做,但
CMP
只更新标志,它不保存任何地方的结果。
So basically that instruction compares ebx
with the dword value stored in [esi+4]
by subtracting the dword value stored in [esi+4]
from ebx
, just like sub
would do, but cmp
only updates flags, it doesn't store the result anywhere.
这篇关于什么是从CMP为0x4(%ESI),EBX%汇编指令为0x4意味着什么呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!