对于这些代码行,我需要找到Op代码,目标代码的字节数以及执行所需的时钟周期数。假设值引用内存中的单词,Double引用双字。
sub wordOp, ax
sub eax,10
add dblOp, 10
add eax,[ebx]
有人可以向我解释如何获取代码行的这些值吗?
答案 0 :(得分:0)
我不知道它是否有帮助,但似乎您需要做的就是将此代码放在__asm
子句中:
void main()
{
short a;
long b;
__asm
{
sub a,ax
sub eax,10
add b,10
add eax,[ebx]
}
}
然后,在__asm
子句的第一行放置一个断点,并在调试模式下运行该程序。然后,右键单击该文本,然后选择Go To Disassembly
,它将显示以下内容:
sub a,ax
0030139E sub word ptr [a],ax
sub eax,10
003013A2 sub eax,0Ah
add b,10
003013A5 add dword ptr [b],0Ah
add eax,[ebx]
003013A9 add eax,dword ptr [ebx]
...
003013AB
上面的地址当然在我的本地程序中,但代码的大小可以很容易地计算为0x003013AB - 0030139E = D,即13个字节。
顺便说一句,我不确定short a
和long b
(也可能是int a
和double b
),所以你需要问一下谁给了你关于wordOp
和dblOp
...
答案 1 :(得分:0)