一个内联汇编宏的示例

来源:互联网 发布:mac怎么使用远程桌面 编辑:程序博客网 时间:2024/06/08 02:12


#include "stdafx.h"#include <windows.h>PWCHAR szTel = L"ASM";PWCHAR szTxt = L"World!";
#define  MegBox_Low __asm\/*内联汇编宏定义示例*/\{\__asm push 0\__asm push szTel\__asm push szTxt\__asm push 0\__asm call MessageBox\}#define  MegBox_Hig(Txt,Tel) __asm\/*内联汇编宏定义示例*/\{\__asm push 0\__asm push Tel\__asm push Txt\__asm push 0\__asm call MessageBox\}
//裸函数void __declspec(naked) TestFun( HWND hWnd,LPCWSTR lpText,LPCWSTR lpCaption,UINT uType){__asm push ebp;//打开栈帧(必须有)__asm mov ebp,esp;MessageBox(hWnd,lpText,lpCaption,uType);__asm mov esp,ebp;__asm pop ebp;//关闭栈帧__asm ret;}int _tmain(int argc, _TCHAR* argv[]){MessageBox(0,L"Hello",L"WinAPI",0);MegBox_Low;PWCHAR szTl = L"ASM2";PWCHAR szTt = L"Hello World!";MegBox_Hig(szTl,szTt);TestFun(0,L"裸函数",L"Hello naked",0);return 0;}


0 0
原创粉丝点击