打印

[转帖] 在汇编指令里识别C++代码结构

在汇编指令里识别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复制到数组中。
云烟缈缈几层间,万水千山显世间,梅兰竹菊朦胧伴,英才陪书与昼夜。
欢迎骚扰:kenknigh@hotmail.com                

TOP