Arm Cortex-M23和Cortex-M33处理器指令集与内存系统详解
1. Arm自定义指令
1.1 支持的数据类型
- 单精度浮点数(32位,fp32):若Cortex - M33 r1包含FPU,则支持该数据类型。
- 双精度浮点数(64位,fp64):Cortex - M33 r1不支持。
- Armv8.1 - M中的MVE向量(128位):Cortex - M33 r1不支持。
1.2 指令子类型与类别
每个数据类型有三种子类型,共产生15种类别。这些子类型支持0到3个输入操作数以及一个额外的立即数,可定义多个指令。每种类别都有普通和累积两种变体,累积变体(后缀为{A})允许目标寄存器既作为源数据,又作为目标。只有整数类型的Arm自定义指令的累积变体可用于IT指令块进行条件执行,浮点和向量数据类型的Arm自定义指令以及非累积变体不能用于IT指令块。
1.3 指令特性
- CX1{A}、CX2{A}和CX3{A}指令:当处理器寄存器字段(Rd/Rn)设置为APSR_nzcv(编码为0xF)时,支持N、Z、C、V标志的传输。
- CX1D{A}、CX2D{A}和CX3D{A}指令:APSR_nzcv可作为输入,编码为0xE。
- 双字Arm自定义指令(CX1D{A}、CX2D{A}、CX3D{A}):目标放在Rd和R(d + 1)中,d必须是偶数且小于12。
1.4 使用前的准备
使用协处理器指令或Arm自定义指令前,需通过软
超级会员免费看
订阅专栏 解锁全文
1424

被折叠的 条评论
为什么被折叠?



