学习嵌入式的第三十九天——ARM——汇编

1、什么是立即数?如何判断某数是否是12位立即数?

立即数是在指令段中,无需存取直接使用的数,是指令的内置常量

判断:由于在32位arm架构中,立即数只占12位,其中高4位为旋转位(实际旋转次数位旋转位值*2),低8位为无符号数,

那么判断标准,一个数可不可以由一个8位数经过偶数次循环右移得到

2、b,bl,bx指令的区别是什么?

b是直接修改pc值进行跳转

bl是将下一条指令的地址保存在lr寄存器后再修改pc值进行跳转

bx是用lr中的值来修改pc值进行跳转

3、ARM内核采用的栈是哪种栈?

满减栈

满:栈顶指针指向的位置有值

减:栈底在高地址处,往低地址处生长

4、CPSR中条件标志位,分别在什么情况下被置位

N:当上一次算术逻辑运算结果的第32位为1时,N置1

Z:当上一次算术逻辑运算结果为0(所有bit位都是0)时,Z置1

C:无符号数,当上一次算术逻辑运算发生进位或者没有借位时置1

V:有符号数,当上一次算术逻辑运算的最高位有溢出时(两个正数相加得负数,两个负数相加得正数)置1

相关推荐
一隅论数智17 小时前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi201618 小时前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本18 小时前
离散数学第六课
学习·离散数学
AI职业加油站20 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光20 小时前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊20 小时前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁20 小时前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
女神下凡20 小时前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
彧azz20 小时前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试