欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

用VC写Assembly代码(5) --一些宏的使用(二)

发布时间:2025/3/15 c/c++ 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 用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) --一些宏的使用(二)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。