此代码以 MS ARM 格式编写。我需要定义一个名为 psxRegs
的变量,它将精确获取从 reg
到 intCycle
的变量空间,以便我可以导出它。但是,我不知道如何实现这一目标。如何做到这一点?
AREA |.bss|,DATA,READWRITE,ALIGN=4
invc_ptr SPACE 4
address SPACE 4
;psxRegs
reg SPACE 128
lo SPACE 4
hi SPACE 4
reg_cop0 SPACE 128
reg_cop2d SPACE 128
reg_cop2c SPACE 128
pcaddr SPACE 4
SPACE 4
SPACE 4
SPACE 4
intCycle SPACE 256
rcnts SPACE 7*4*4
mem_rtab SPACE 4
最佳答案
当使用汇编器时,您所认为的命名变量实际上只是引用内存位置的标签。这意味着类似的事情具有如下所述的效果:
psxRegs:
reg SPACE 128
lo SPACE 4
hi SPACE 4
reg
、lo
和 hi
用于定义可在代码中使用的命名标签来获取地址(在汇编之后) )特定的内存位置。以非常相似的方式,psxRegs:
定义了一个标签,但不保留内存。事实上,它是 reg
的别名,因为在定义它时没有保留内存。
这可能对您的情况有其他影响。目前尚不清楚您是否只是在寻找 reg
的别名,或者是否还试图引用 lo
和 hi
。您可以分别通过访问[psxRegs+128]
和[psxRegs+132]
来访问lo
和hi
。但是,这可能完全没有必要,因为您可以通过 [reg+128]
和 [reg+132]
访问这些相同的值。
请注意,:
尾随 psxRegs
在您的汇编器中可能需要,也可能不需要。我建议您首先尝试不使用冒号。如果无法组装,请添加冒号。
关于visual-studio - 如何定义一个占用多个其他变量空间的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36883164/