【ARM嵌入式汇编基础】-数据处理指令(三)
数据处理指令(三)
文章目录
- 数据处理指令(三)
-
- 10、A64 扩展指令
- 11、A64 中的隐式符号和零扩展
- 12、A32/T32 扩展指令
- 13、位域提取和插入
10、A64 扩展指令
在 A64 中,SBFM 和 UBFM 用于实现零扩展和符号扩展操作。这些扩展指令从源寄存器中提取字节、半字或字,并将其扩展到目标寄存器的大小。目标寄存器的大小可以是 64 位或 32 位,具体取决于指定的寄存器(SXTW 除外,它必然扩展到 64 位寄存器)。这些指令有有符号和无符号版本,并在底层使用 SBFM 和 UBFM 实现。表 5.8 列出了 A64 的零扩展和符号扩展指令,以及它们在 SBFM 或 UBFM 方面的底层实现。
表 10.1:A64 扩展指令
指令集架构 | 指令 | 别名语法 | 实现方式 |
---|---|---|---|
A64(64位) | 8位符号扩展至64位 | SXTB Xd, Wn | SBFM Xd, Xn, #0, #7 |
16位符号扩展至64位 | SXTH Xd, Wn | SBFM Xn, #0, #15 | |
32位符号扩展至64位 |