资源描述:
《win32汇编界面编程系列教程第三讲 符号》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、win32汇编界面编程系列教程第三讲符号宏的补充我们看看以下几个宏:=============================================ADDREGMACROrgs,var??ADDE&rgs,varENDMszMsgMACROszName,text1.data??szName????db'&text1',0dh,0ah,0.codeENDMargcount??MACROargs:VARARG????LOCALcnt????cnt=0????FORitem,????
2、cnt=cnt+1????ENDM????EXITM%cnt??????????;;returnasanumberENDM以下为调用代码:.codebegin:????moveax,1234h????ADDREGAX,1234h????DbgPrintHexeax????szMsgszName1,????lea????????eax,szName1????DbgPrintStringByAddreax????????szMsgszmsg1,%1+2+3??
3、??lea????????eax,szmsg1????DbgPrintStringByAddreax????????szMsgszmsg2,1+2+3????lea????????eax,szmsg2????DbgPrintStringByAddreax????????????szMsgszmsg3,%1+2!+3????lea????????eax,szmsg3????DbgPrintStringByAddreax????????moveax,argcount(abc,def,ghi,jkl,mn
4、o)????DbgPrintDeceax????????invoke????ExitProcess,NULLendbegin=================================================看下输出结果:[attach]913[/attach]符号注意看以下几句:szMsgszName1,????????szMsgszmsg1,%1+2+3????szMsgszmsg2,1+2+3????szMsgszmsg3,%1+2!+
5、3第一句括号中的字符完整输出,第二句对其表达式进行计算后输出,第三句输出原表达式,批四句先将“!”前面的表达式计算后组合成完整表达式输出。DateandTimeInformation????????????????????????????????????@Date;今天日期格式(年/日/年)????invoke????lstrcpy,addrszBuffer,CTXT(@CatStr(,%@Date,))????lea????ebx,szBuffer????DbgPrintStrin
6、gByAddrebx????@Time;现在时间格式(时:分:秒)????invoke????lstrcpy,addrszBuffer,CTXT(@CatStr(,%@Time,))????lea????ebx,szBuffer????DbgPrintStringByAddrebx????EnvironmentInformation??????????????????@Cpu;cpu模式????movebx,@Cpu??????????????????????????????????
7、????DbgPrintDecebx,"@Cpu"@Environ????;环境变量????invoke????lstrcpy,addrszBuffer,CTXT(@CatStr(,%@Environ(LUA_PATH),))????lea????ebx,szBuffer????DbgPrintStringByAddrebx????@Inte**ce;语言参数(整数)????mov????ebx,@Inte**ce????????DbgPrintDecebx,"@Inte**ce"?
8、???@Version;编译器版本????mov????ebx,@Version????????????DbgPrintDecebx,"@Version"????FileInformation??????????????????????????%@FileCur;当前文件名????invoke????lstrcpy,addrszBuffer,CTXT(@CatStr(,%@FileCur,))????lea????ebx,szBuffer????Dbg