用VC写Assembly代码(5) --一些宏的使用(二)
目前我知道vc++ inline assembler 有這幾個宏 LENGTH、SIZE、TYPE,他們使用簡單,下面個個例子:
void main()
{
?int k[10];
?int a,b,c;
?__asm
?{
??mov eax, LENGTH k
??mov ebx, SIZE k
??mov ecx, TYPE k
??mov a, eax
??mov b, ebx
??mov c, ecx
?}
?printf("%b - %d - %d/n", a, b, c);
}
他們的反匯編代碼如下:
53:?????? int k[10];
54:?????? int a,b,c;
55:?????? __asm
56:?????? {
57:?????????? mov eax, LENGTH k
0040B7E8?? mov???????? eax,0Ah
58:?????????? mov ebx, SIZE k
0040B7ED?? mov???????? ebx,28h
59:?????????? mov ecx, TYPE k
0040B7F2?? mov???????? ecx,4
60:?????????? mov a, eax
0040B7F7?? mov???????? dword ptr [ebp-2Ch],eax
61:?????????? mov b, ebx
0040B7FA?? mov???????? dword ptr [ebp-30h],ebx
62:?????????? mov c, ecx
0040B7FD?? mov???????? dword ptr [ebp-34h],ecx
63:?????? }
64:?????? printf("%b - %d - %d/n", a, b, c);
0040B800?? mov???????? eax,dword ptr [ebp-34h]
0040B803?? push??????? eax
0040B804?? mov???????? ecx,dword ptr [ebp-30h]
0040B807?? push??????? ecx
0040B808?? mov???????? edx,dword ptr [ebp-2Ch]
0040B80B?? push??????? edx
0040B80C?? push??????? offset string "%b - %d - %d/n" (00420f98)
0040B811?? call??????? printf (004010a0)
總結
以上是生活随笔為你收集整理的用VC写Assembly代码(5) --一些宏的使用(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: adf检验代码 python_第22期:
- 下一篇: 局部类和嵌套类