visual-studio - 如何定义一个占用多个其他变量空间的变量?

标签 visual-studio assembly arm win-universal-app

此代码以 MS ARM 格式编写。我需要定义一个名为 psxRegs 的变量,它将精确获取从 regintCycle 的变量空间,以便我可以导出它。但是,我不知道如何实现这一目标。如何做到这一点?

    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

reglohi 用于定义可在代码中使用的命名标签来获取地址(在汇编之后) )特定的内存位置。以非常相似的方式,psxRegs: 定义了一个标签,但不保留内存。事实上,它是 reg 的别名,因为在定义它时没有保留内存。

这可能对您的情况有其他影响。目前尚不清楚您是否只是在寻找 reg 的别名,或者是否还试图引用 lohi。您可以分别通过访问[psxRegs+128][psxRegs+132]来访问lohi。但是,这可能完全没有必要,因为您可以通过 [reg+128][reg+132] 访问这些相同的值。

请注意,: 尾随 psxRegs 在您的汇编器中可能需要,也可能不需要。我建议您首先尝试不使用冒号。如果无法组装,请添加冒号。

关于visual-studio - 如何定义一个占用多个其他变量空间的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36883164/

相关文章:

gcc - 我可以将 arm-eabi 与 arm-elf 混合使用吗?

c++ - Visual Studios 9 不一致的 Dll 链接

assembly - 为什么程序集 8086 中不允许变量名 "name"?

iphone - 使用 Xcode 调试内联汇编

assembly - 标签 : . 字标签在 ARM 程序集中是什么意思

arm - Atmel SAM3X 双组切换不起作用

c++ - 单个 cpp 文件的 Visual Studio 编译选项显示为灰色

c# - TFS 分支 - 2 个开发分支

c++ - 调试代码的运行时间比发布代码长几个数量级

c - 用gdb反汇编时指针在哪里