ARM汇编和8086的汇编之间存在一定的差别。
在复制命令上,arm有mv,ldr前者用于小范围赋值,且后面必须是立即数。ldr可以实现无法确定能否用立即数表示的情况下的赋值,这是作为一个伪命令。ldr还能从地址中读取数据。
mcr指令用于将处理器的值传给协处理器。scr相反。跳转指令为b,bl。
汇编代码的阅读:
1.代码开头的.text代表的是代码段,.data代表的是数据。.global表示后面的函数是全局的。也就说这部分相当于是伪代码,用于指定一些代码的特定性质。
2.程序前起到函数作用的标识符是不占据存储空间的。如
b init_usb
init_sdram:
b init_sdram
存储时b init_usb后的存贮单元直接存储 b init_sdram。而init_sdram不占据存储空间。
硬件知识
所有的硬件的使用都离不开寄存器。在学习硬件设置的时候应该先了解硬件的功能,然而努力研究硬件的寄存器。只要设置好了寄存器基本就可以使用硬件了。另外要注意在初始化硬件的时候要有先后顺序,把想先使用的硬件先初始化。
1.GPIO(General Purpose I/O Ports)要注意单片机的地址输出也利用I/O口,并没有另外的地址总线。在使用I/O口的时候首先应该设置引脚功能,设置引脚配置,最后读写数据寄存器。