我无法弄清楚如何填充字符串的开头,使其在对齐边界处结束:
%macro string 1
_unaligned:
; some preprocesor expression comes here
db %1
_aligned:
%endmacro
Run Code Online (Sandbox Code Playgroud)
经过几个小时的尝试不同的解决方案,我仍然没有任何解决方案。请问有人可以帮忙吗?
编辑:
这是它应该如何工作的真实示例(对于 32 位代码):
%define LAST 0
%macro xword 2
%strlen len %1
; pad - some preprocassor magic comes here
db %1
NAME__%2 db len
LINK__%2 dd LAST ; must be aligned !!!
CODE__%2 dd code
PAR__%2
%define LAST PAR__%2
%endmacro
Run Code Online (Sandbox Code Playgroud)
用法:
xword '测试',test01
创建结构(例如 $ = 0x0001):
0x0001
0x0002
0x0003 db 'T'
0x0004 db 'E'
0x0005 db 'S'
0x0006 db 'T'
0x0007 …Run Code Online (Sandbox Code Playgroud)