assembly - 用于在 MessageBox 中输出单独行的 MASM 宏
问题描述
现在我只做offset
一个变量来输出数据。有没有办法将它作为一个可重复的宏,我可以使用它 3 次或更多次,将不同的文本字符串作为参数传递?
.386
.model flat, stdcall
option casemap: none
include \masm32\include\masm32rt.inc
.data
wTitle db 'Result',0
person db "Line1",10
db "Line2",10
db "Line3",0
.code
start:
invoke MessageBox,0,offset person,addr wTitle,MB_OK
invoke ExitProcess,0
end start
解决方案
我不确定我是否正确理解了您的问题,但是如果您想创建一个接受字符串文字的便利宏,那么您可以执行以下操作:
.686
.model flat, stdcall
option casemap:none
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\windows.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
Message MACRO title,msg
LOCAL _szTitle
LOCAL _szMsg
.data
_szTitle db &title&,0
_szMsg db &msg&,0
.code
invoke MessageBoxA, NULL, ADDR _szMsg ,ADDR _szTitle, MB_OK
ENDM
.code
start:
Message "Title","Hello world!"
invoke ExitProcess,0
end start
推荐阅读
- c# - Xamarin Forms Multi-App - MacOS 项目未显示 Xamarin 表单
- angular - ml5 问题。不要以角度反映 ml5 uNet
- google-apps-script - 根据其他行中单元格中的值有条件地编辑单元格 - 使用 Google Script 的 Google Sheet
- javascript - for-loop 导致无法设置未定义的属性“0”
- asp.net - 从 Live Sql 表 ASP.NET 中看不到二进制图像
- javascript - 在 Chartist 图表中添加线性回归/趋势线/预测?
- java - 从枚举生成 Java 类
- angular - Angular 11.0.3 无法绑定到 DIRECTIVE,因为它不是元素的已知属性
- python - Python数据框在列中逐行添加
- azure-devops - Azure DevOps 组规则将所有人添加为读者