在汇编指令里识别C++代码结构
先看一下怎样在C++里声明一个用于计数的整数。
int number;
...more code ...
number++;
相应的汇编代码是:
number dw 0
... more code...
mov eax,number
inc eax
mov number,eax
在这个例子里,先用Define Word(DW)指令定义整数number,接着把它复制到EAX,并把EAX加1,然后把EAX复制到number。
再来看一个简单的C++ if语句。
int number;
if (number<0)
{
… more code …
}
下面是这个if语句对应的汇编代码。
number dw 0
mov eax, number
or eax, eax
jge label
<no>
label: <yes>
在这个例子里,我们用DW指令定义number,然后把number的值复制到EAX,如果number大于或等于0,执行JGE(大于或等于时跳转)跳到label。
接下来看一个使用数组的例子。
int array[4];
… more code …
array[2] = 9;
在这个例子里,我们定义一个有4个元素的数组array,并把其中的一个元素设为9,相应的汇编代码如下:
array dw 0,0,0,0
… more code …
mov ebx,2
mov array[ebx], 9
在这个例子里,我们声明一个数组,然后通过EBX把9复制到数组中。
搜索更多相关主题的帖子:
汇编指令