我想创建一个将初始化例程的宏,所以我需要为每个这些变量使用不同的名称。为此,我将为每个协同例程获得唯一的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)?甚至可以修改宏中的节吗?如果有可能,我该如何在宏中执行此操作?谢谢!
我想为我自己的问题提供答案,我对这个问题所做的工作是实现一个“数组”,该数组将保存每个协程的变量。每个协程将获得一个唯一的ID号,并且他将使用自己的ID在“数组”中查找自己的变量。假设每个协同例程都有5个变量,那么当前的协同例程将以这种方式获取其变量:array [(ID * 5)+0] ... array [(ID * 5)+4] 。希望我的解决方案也能对其他程序员有所帮助。