所以我正在编写一个汇编程序,我将变量设置为一个,两个或三个然后依赖于该变量函数应该在进一步的程序中使用。
作为示例,如果值为 one ,则该函数应如下所示:
FUNC:
ADD r2, r3, 6
WBS r30.t1
SUB r3, r3, 1
或者,如果值为 2 :
FUNC:
ADD r2, r4, 5
SUB r4, r4, 2
因此,主循环应该没有区别,具体取决于真正调用的函数。
如何配置程序集标签以运行另一个预先计划的例程?
答案 0 :(得分:1)
这个“变量”是装配时常数吗?如果是这样,那么使用汇编程序宏而不是将在运行时执行的指令。
如果没有,但它很少变化,自修改代码可以工作。 (即,当相应的机器代码发生变化时,将其复制到标有FUNC
的缓冲区中,这样您就不必在每次调用之前检查变量。)
然而,除非“自我”意味着整个程序,否则它不是 self 修改代码。它更像是一个特殊用途的JIT编译器。
如果这两件事都不成立,那么你显然必须以某种方式编写依赖于变量值的asm。条件分支,间接跳转/调用或谓词执行是主要选择。
请记住,每个汇编指令只会转换为机器代码的某些字节。您只能使用asm指令与运行时“变量”进行交互,而不是像您似乎希望的那样使用汇编程序指令或任何“魔法”进行交互。