暑假已经开始一周多时间了,七月也已经开始了五天时间,暑假开始后,我一直都没有闲着,只是事情太多了,我也没有想写博客的习惯(虽然我一直逼着自己养成写博客的习惯),是这样的,无意间看到韦山东老师写的ARM学习路线,恍然大悟,决定先学Linux下的裸机编程,虽然我在windows下MDK的编程已经很熟练的,不管是51还是32单片机,现在我已经开始玩三星的处理器了,S3C2440芯片,废话不多说,先来总结一下一些汇编指令
1.LDR:读内存,LDR R0,[R1]
(load) 假设R1的值为x,读取地址x上的数据(4字节),保存到R0中
2.STR:写内存命令,STR R0,[R1]
(store) 假设R1的值是x,把R0的值写到地址x(4字节)
3.B:跳转
4.MOV:MOV R0,R1 把R1的值赋给R0,R0=R1
(move) 例:MOV R0,#0x100,R0=0x100
5.LDR R0,=0x12345678
即:R0 = 0x12345678
伪指令,它会被拆分为几条真正的RAM指令
6.add r0,r1,#4
即r0=r1+4
sub r0,r1,#4
即r0=r1-4
add r0,r1,r2
即r0=r1-r2
7.BL:brarch and Link
bl xxx
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
(1) 调到 xxx
(2) 把返回地址保存在lr寄存器
8.
ldm 读内存,写入多个寄存器
stm 把多个寄存器的值写入内存
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)