最近我在C中遇到了asm保留词,我想利用它来避免某些C语义规则:特别是,我想从函数中修改一个变量:
int a = 5;
asm("asm code to change a from 5 to, like, 6")
int main() {
printf("a equal to %d\n", a);
}
现在,从我的计算机科学课程中,我知道组装是依赖于平台的,所以它的使用应该是非常有限的。然而,我看到了一些反复的指令,如MOV或ADD。
我的问题是:
尽管程序集依赖于全局平台,但是否有一个子集为所有汇编程序所理解?我的意思是,如果我编写asm(
我在附近尝试使用简单的程序集脚本,似乎找不到打印数组长度的方法。下面是最小的复制品:
let a = new Array<string>();
logging.log(a.length.toString());
不编译
ERROR TS2339: Property 'toString' does not exist on type 'i32'.
logging.log(a.length.toString());
~~~~~~~~
in assembly/main.ts(171,23)
我需要做一个ARM汇编程序,它将打印出斐波那契序列,但我不确定如何处理它。
“斐波纳契数1等于1。”
“费波纳奇数2等于1。”
诸若此类。
目前,我的代码如下所示:
B main
maxF DEFW 0
enterI DEFB "Please enter the number of fibonacci numbers to print: ",0
newline DEFB "\n",0
fibbo DEFB "Fibonacci number ",0
is DEFB " is ",0
e