08/05/15 21:22:32
非常に簡単でいい加減な具体例を書いておこうか。雰囲気だけでも
二つの値を足して、その結果を返すCの関数
int add(int a, int b) { return(a+b); }
これは、コンパイラでアセンブリ言語に変換するとこうなる
(Borland C++ Compiler 5.5の場合)
push ebp
mov ebp,esp
mov eax,dword ptr [ebp+8]
add eax,dword ptr [ebp+12]
pop ebp
ret
さらにこれを機械語に変換したものを16進数表記すると
55
8b ec
8b 45 08
03 45 0c
5d
c3