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

原创 2006年06月13日 13:27:00

目前我知道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)

CATIA VBA二次开发(一)快速入门之宏脚本

本文是第一篇介绍CATIA VBA二次开发的文章,后续文章会陆续发表。
  • dockerVBA
  • dockerVBA
  • 2016年06月24日 23:26
  • 7732

VC宏定义 及常用宏定义说明

END_CATCH    END_CATCH    说明:    标识最后的CATCH或AND_CATCH块的末尾。    END_MESSAGE_MAP    END_...
  • wzszwj
  • wzszwj
  • 2014年09月23日 10:44
  • 1758

VC++代码注入,实现对Tutorial的外挂控制

代码注入3种方式: Ⅰ. Windows 钩子 Ⅱ. CreateRemoteThread 和 LoadLibrary 技术 Ⅲ.CreateRemoteThread和WriteProcessMe...
  • ldxicare
  • ldxicare
  • 2015年04月09日 08:36
  • 445

VC版的贪吃蛇游戏

学C++的时候,课程设计编写了C++版的贪吃蛇游戏,当时,将很多的东西都分装在了Snake类中,所以,将其移植到VC中,只需将Snake类稍作修改,然后添加到VC中即可。     此处,我感受到复用性...
  • u012027907
  • u012027907
  • 2013年10月02日 01:30
  • 4287

CATIA中关于“定位草图”的宏问题

CATIA二次开发中“定位草图”还不能通过录制宏的办法获得定位草图的宏命令。本文将介绍如何在CATIA二次开发中“定位草图”宏命令的使用及左手坐标系的定义。...
  • wanghao19840921
  • wanghao19840921
  • 2016年09月05日 10:05
  • 1153

x64平台下VC++中汇编函数的编写问题

x86平台上,可以利用asm关键字在在C++代码中直接编写汇编语句,而在x64平台上,VC++不再支持asm关键字,不能在代码中内嵌汇编了。这时候,你需要将那部分汇编代码单独编写成ASM文件,编译生成...
  • wfree
  • wfree
  • 2015年03月04日 09:52
  • 1271

二值图像的腐蚀运算及其VC实现

在进行图像预处理与图像边缘检测等过程中,形态学算子是常用的处理方法。本文主要对二值图像腐蚀的定义、原理以及VC下实现方法进行全面总结,并通过图像处理结果对腐蚀操作的功能以及使用场合进行讨论。 1、定...
  • u014024390
  • u014024390
  • 2014年03月11日 17:09
  • 988

VC++串口通信编程详解

在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半...
  • L_Andy
  • L_Andy
  • 2016年04月12日 10:47
  • 10494

VC++代码执行速度优化

本文主要整理MSDN几篇关于VC++编译器优化的几篇文章,试验并总结了一个简单易用的VC++代码优化的攻略。 一、基础知识     VC++代码优化分为两类:代码大小优化和代码速度优化。本文主要关...
  • Sagittarius_Warrior
  • Sagittarius_Warrior
  • 2017年02月24日 09:58
  • 839

VC++控制台下ping功能的代码

http://read.pudn.com/downloads80/sourcecode/windows/network/307147/Ping/Ping.cpp__.htm // #pragma p...
  • ilikehigame
  • ilikehigame
  • 2014年08月28日 16:57
  • 693
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用VC写Assembly代码(5) --一些宏的使用(二)
举报原因:
原因补充:

(最多只允许输入30个字)