小编ioo*_*ooo的帖子

nasm:如何填充字符串的开头,使其在对齐边界处结束

我无法弄清楚如何填充字符串的开头,使其在对齐边界处结束:

%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)

assembly nasm

2
推荐指数
1
解决办法
78
查看次数

标签 统计

assembly ×1

nasm ×1