倒数第三篇:表 A –2 ARM 寻址方式速查表
倒数第二篇:表A-3 Thumb 指令速查表
主页
第一篇:嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著
第二篇:第一章 嵌入式系统概述
文章列表

附录 B ARM 指令集编码和 Thumb 指令集编码

嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著

表B-1 ARM 指令集编码

31 28 27 26 25 24 21 20 19 16 15 12 11 7 6 5 4 3 0

数据处理立即数移位 cond 0 0 0 opcode s Rn Rd shift amount shift 0 Rm 其它指令,见表B-2 cond 0 0 0 1 0 × × 0 ××××××××××××××× 0 ×××× 数据处理寄存器移位

其它指令,见表B-2

乘法和读取/存储指令,见表

B-2 数据处理立即数 未定义指令 传送立即数到状态寄存器 读取/存储立即数偏移 读取/存储寄存器偏移

未定义指令 cond 0 1 1 ×××××××××××××××××××× 1 ×××× 未定义指令 1 1 1 1 0 ××××××××××××××××××××××××××× 读取/存储多个寄存器 cond 1 0 0 P U B W L Rn register list

未定义指令 1 1 1 1 1 0 0 ××××××××××××××××××××××××× 转移/带链接转移 cond 1 0 1 L 24—bit offset

转移/带链接转移及切换到

Thumb

协处理器读取/存储和双寄存 器传送

1 1 1 1 1 0 1 H 24—bit offset

cond 1 1 0 P U N W L Rn CRd cp-num 8-offset

协处理器数据处理

cond

1

1

1

0

opcodel

CRn

CRd

cp-num

opcode2

0

CRm

协处理器寄存器传送

cond

1

1

1

0

opcodel

L

CRn

Rd

cp-num

opcode2

1

CRm

软件中断

cond

1

1

1

1

swi number

未定义指令 1 1 1 1 1 1 1 1 ××××××××××××××××××××××××

512

表B-2 乘法和其它的读取/存储指令

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 8 7 6 5 4 3 0

乘法(乘加)

乘法(乘加)长整型

交换/交换字节

读取/存储半字寄存器偏移

读取/存储半字立即数偏移

读取/存储双字寄存器偏移

读取带符号半字/字节寄存器 偏移

读取/存储双字立即数偏移

读取无符号半字/字节立即数 偏移

表B-3 其它指令

31 28 27 26 25 24 23 22 21 20 19 16 15 12 11 8 7 6 5 4 3 0

传送状态寄存器到寄

存器

传送寄存器到状态寄 存器

转移/交换指令集 前导零计数

转移和链接/交换指令 集

增强型DSP 加法/减法 软件断点

增强型DSP 乘法

513

表B-4 Thumb 指令集编码

由立即数移位 加/减寄存器 加/减立即数 加/减/比较/传送立即数 数据处理寄存器 特定数据处理 转移/交换指令集 从文字池读取 读取/存储寄存器偏移

读取/存储字/字节立即数 偏移

读取/存储半字立即数偏 移

向/从堆栈读取/存储 加到SP 或PC 杂项,见表B-5 读取/存储多个寄存器 条件转移

未定义指令 软件中断 无条件转移 BLX 后缀 未定义指令 BL/BLX 前缀

BL 后缀

15 14 13 12 11 10 6 5 3 2 0

表B-5 Thumb 指令集编码

调整堆栈指针 压入/弹出寄存器列表 软件断点

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

514

主 要 参 考 文 献

[1] Steve Furber 著,《ARM System-on-Chip Architecture》,Addison Wesley Longman ,

2000 年

[2] Intel公司著,《Intel® StrongARM* SA-1110 Microprocessor Development Board

User’s Guide》, 2000年6月

[3] Intel公司著,《Intel®StrongARM*SA-1110MicroprocessorDeveloper’sManual》,

2000年6月

[4] ARM公司著,《ARM Architecture Reference Manual》,1996年

[5] ARM公司著,《ARM Developer Suite Version 1.0.1 CodeWarrior IDE Guide》,2000 年3月

[6] ARM公司著,《ARM Developer Suite Version 1.0.1 Debuggers Guide 》,2000年2 月

[7] 马忠梅、马广云、徐英慧、田泽编著,《ARM 嵌入式处理器结构与应用基础》,北京航 空航天大学出版社,2002年1月

[8] 张晨曦等编著,《计算机体系结构》,高等教育出版社,2000年6月 [9] 于志宏译,《C/C++ 嵌入式系统编程》,中国电力出版社,2000年3月

[10] Alessandro Rubini & Jonathan Corbet著,《Linux Device Drivers 2nd Edition》,

O’Reilly Press, 2001年

515