汇编程序设置依赖于变量的函数

时间:2016-06-28 16:50:45

标签: assembly arm 32-bit beagleboneblack

所以我正在编写一个汇编程序,我将变量设置为一个两个三个然后依赖于该变量函数应该在进一步的程序中使用。

作为示例,如果值为 one ,则该函数应如下所示:

FUNC:
    ADD   r2, r3, 6
    WBS   r30.t1
    SUB   r3, r3, 1

或者,如果值为 2

FUNC:
    ADD   r2, r4, 5
    SUB   r4, r4, 2

因此,主循环应该没有区别,具体取决于真正调用的函数。

如何配置程序集标签以运行另一个预先计划的例程?

1 个答案:

答案 0 :(得分:1)

这个“变量”是装配时常数吗?如果是这样,那么使用汇编程序宏而不是将在运行时执行的指令。

如果没有,但它很少变化,自修改代码可以工作。 (即,当相应的机器代码发生变化时,将其复制到标有FUNC的缓冲区中,这样您就不必在每次调用之前检查变量。)

然而,除非“自我”意味着整个程序,否则它不是 self 修改代码。它更像是一个特殊用途的JIT编译器。

如果这两件事都不成立,那么你显然必须以某种方式编写依赖于变量值的asm。条件分支,间接跳转/调用或谓词执行是主要选择。

请记住,每个汇编指令只会转换为机器代码的某些字节。您只能使用asm指令与运行时“变量”进行交互,而不是像您似乎希望的那样使用汇编程序指令或任何“魔法”进行交互。