(26) 指令 LDR :

++ 补充 :

(27) STR :


+

可见,从语法上将, ! 提示编译器进行更复杂的编译,对应内涵更复杂的指令。
(28) LDR 与 STR 指令还可以带后缀,指出要操作的数据宽度。LDRB 与 LDRH ,还会清零未使用的寄存器的高位比特:

(29) 如此设计汇编指令的好处:

(30) 给出一个关于 ldr str 的测试:

执行上述代码的前提要设置 keil4 的模拟环境:

- 再学习一个 keil4 的调试窗口, 内存窗口:

从内存窗口可见,arm 处理器用的是小字节序。
(31) 操作内存,要依据 soc 的用户手册。比如课本上用的 s3c4000 的用户手册提示了程序员可以自由使用哪些内存:

(32)接着介绍各种寻址方式,感觉这里更应该叫寻值方式,就是程序如何取值:






+

+

+

++ 课本上说,这俩指令,对寄存器的书写顺序,没有要求,低地址自动对应小编号寄存器。
(33) 给个例子使用 ldr , 数组求和:

(34) 在举例,往栈里一次压入多个数据:

(35) 再举例,压栈的真正作用,函数调用时候的寄存器值的保存:

简化后的试验结果:

(36)
谢谢
1523

被折叠的 条评论
为什么被折叠?



