汇编指令{1}

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