
一、重点1. 什么是立即数12位立即数的条件是1.如果某个数的数值范围是0~0xFF之间那么这个数一定是立即数2.把某个数展开成2进制这个数的最高位1至最低位1之间的二进制数序列的位数不能超过8位3.这个数的二进制序列凑够8位之后的的右边必须为偶数个连续的 02. b、bl、bx指令区别b指令无条件跳转b在函数跳转前无法将函数返回地址装入lr寄存器bl在函数跳转前可以将函数返回地址装入lr寄存器bxbx后面加寄存器可以将寄存器中的地址恢复给pc3. 栈有几种类型栈分类空减栈、空增栈、满减栈、满增栈4. 什么是空栈、满栈、增栈、减栈空栈先写数据再挪指针 *sp *sp--满栈先挪指针再写数据 *sp *--sp增栈入栈时sp指针往上走减栈入栈时sp指针往下走5. ARM所采用的是何种栈满减栈6. ldr和str指令有何作用ldr指令向寄存器中加载一个非立即数将RAM中的数据加载到通用寄存器str指令将通用寄存器中值写入RAM空间7.ldmfd和stmfd指令有何作用stmfd将寄存器的值保存到栈区入栈lsmfd将寄存器的值从栈区取出出栈8. bic和orr指令有何作用bic指令将操作数中bit1的位清0清0的结果写回通用寄存器中orr指令将操作数中bit1的位置1置1的结果写回通用寄存器中9. mrs和msr指令有何作用mrs指令读取某个特殊寄存器cpsr值到通用寄存器msr指令读取通用寄存器的值写入特殊寄存器10. 汇编向C传参时参数传递需要注意什么汇编调用C函数汇编--C函数传参通过通用寄存器传参将C语言函数返回值保存到R0寄存器如果参数个数小于等于4个可以通过通用寄存器R0-R3传参当参数个数超过4个时必须通过栈进行传参入栈出栈11. C语言如何调用汇编C语言调用汇编C--汇编传参将C语言传递的参数保存到通用寄存器中汇编程序结果通过R0寄存器返回