首先,汇编语言的基础
(间歇记录您的笔记... 2018-10-11)
1. mov指令
基本用法: mov r0,#0
mov指令是分配指令. 用法如上. 将立即值0放入寄存器r0.
2. bl命令
bl是一个跳转指令,1)跳转到某个位置执行可以是汇编语言中的标签或c文件中的函数. 2)将返回地址保存到lr寄存器中,该返回地址为下一条指令的地址
3.ldm和stm
这两个与ldr和str不同. ldm和stm可以一次操作多个寄存器或存储器多次. 我尚未编写此代码,但是我已经在反汇编文件中看到了它,例如,我已经学到了以下代码:
ldmia sp, {fp,sp,pc}
...
stmdb sp!, {fp,ip,lr,pc}
ia和db将完成操作,然后增加地址,然后再减小地址c语言对应汇编语句,然后完成操作. 第二,首先减少存在,然后将fp,ip,lr,pc寄存器压入堆栈. 这些寄存器是按顺序排列的. 根据标记为R的标签,高标签具有高地址. sp后面! sp的最后一个值是修改后的值. 该指令: sp首先递减,然后保存pc(R15);然后递减,然后保存lr .........
4.ldr和str
ldr将读取寄存器. 它也可以像mov一样使用. 当操作数太大时,不能使用mov. 必须使用ldr,因为mov不能操作特别大的数字(超出范围),伪指令ldr可以,伪指令不是真正的汇编指令. 在编译过程中,他将被分解成几个实际的组装指令以完成工作. 一次只操作一个寄存器或一次操作存储器
str是一个写寄存器. 用法如下: 将数字0x12345678放入寄存器r0c语言对应汇编语句,然后将此数字写入r1大手指的地址.
ldr r0, =0x12345678str r0, [r1]
第二,C语言的基础
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-249651-1.html