NASM试图将变量添加到宏内的不同部分

问题描述 投票:2回答:1

我想创建一个将初始化例程的宏,所以我需要为每个这些变量使用不同的名称。为此,我将为每个协同例程获得唯一的ID。这是有问题的代码:

    %macro initialize 1 
section .bss
    STK%1: resb STKSZ

; section .data
;     CO%1: dd CO%1code
;     Flags%1: dd 0
;     SP%1: dd STK%1 + STKSZ
section .text

%endmacro 

也许我无法将ID号链接到给定的字符串(例如:STK%1)?甚至可以修改宏中的节吗?如果有可能,我该如何在宏中执行此操作?谢谢!

assembly macros nasm coroutine
1个回答
0
投票

我想为我自己的问题提供答案,我对这个问题所做的工作是实现一个“数组”,该数组将保存每个协程的变量。每个协程将获得一个唯一的ID号,并且他将使用自己的ID在“数组”中查找自己的变量。假设每个协同例程都有5个变量,那么当前的协同例程将以这种方式获取其变量:array [(ID * 5)+0] ... array [(ID * 5)+4] 。希望我的解决方案也能对其他程序员有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.