<progress id="16661"><blockquote id="16661"><input id="16661"></input></blockquote></progress>

    <var id="16661"></var>
    <menu id="16661"><p id="16661"></p></menu>
  1. <dd id="16661"></dd>

    masm

    masm32中的宏定义

    2019-06-12
    34次浏览

    在C中经常用printf,在运行期显示一些变量的内容来进行调试。而在MASM中则用echo来在汇编期显示文本变量的内容。

    ??china?TEXTEQU?

    ??%echo?china


    窗口过程中的消息处理

    宏定义及调用?

    message_start?Macro
    	Xor?Eax,?Eax
    	.If?Eax?<?0
    		Ret
    EndM
    
    message_id?Macro?msgID,?subName
    	label1?CatStr?<?.ElseIf?uMsg?==?msgID?>
    	label2?CatStr?<?Invoke?>?,?<?subName?>?,?<?,?hWnd?>?,?<?,?wParam?>?,?<?,?lParam?>
    	Ret
    EndM
    
    message_end?Macro
    	.EndIf
    	Ret
    EndM
    
    command_id?Macro?CtrlID,?subName
    	label1?CatStr?<?.ElseIf?uMsg?==?WM_COMMAND?&&?wParam?==?CtrlID?>
    	label2?CatStr?<?Invoke?>?,?<?subName?>?,?<?,?hWnd?>?,?<?,?wParam?>?,?<?,?lParam?>
    	Ret
    EndM

    窗口函数中的调用?

    Window1Procedure?Proc?hWnd:HWND,?uMsg:ULONG,?wParam:WPARAM,?lParam:LPARAM
    	message_start
    	message_id?WM_CREATE,?WindowInit
    	message_id?WM_CLOSE,?Window1OnClose
    	command_id?IDC_WINDOW1_BUTTON1,?WindowOnButton1
    	message_end
    Window1Procedure?EndP



    ?宏函数中的文件转义和使用

    message_id?Macro?msgID,?subName
    		.ElseIf?uMsg?==?msgID
    	?	Fun1?CatStr?<?Invoke?>?,?<?subName?>?,?<?,?hWnd?>?,?<?,?wParam?>?,?<?,?lParam?>;这里是定义
    		Fun1;//这里是调用
    EndM


    我要点评