对 C 系语言来说, 我们说的跨平台, 其实就是通过同一份源码在编译时, 根据不同 target 架构指令集, 生成不同的二进制文件来实现的.
1.2....RISC 使用 load 读取内存数据到通用寄存器中, 计算完之后通过 store 保存到内存中
2.2....X30 被用作 LR Link Register, 也可以通过 LR 来使用. 在方法调用前, 保存返回地址....X0
str X0, [X1]
// 访问内存可以加一个 offset, 相当于把 X0 保存到 新地址 = (地址 X1 + 4) 对应的内存中. lrd 也同理.
str X0, [X1, #4...最下面的是代码段, 保存着二进制的代码, 主要是各种函数, 拥有只读和执行的权限. 这个段的代码可以被执行, 但是不可写入.
数据段, 主要保存常量值或全局静态值, 拥有只读权限, 也是不可写入的.