|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ARM 采用的是 32 位 架构,这表明地址空间是2的32次方,4G。
1 y% ^$ }9 R3 J6 J6 KARM 约定:
: k! ~3 x! D: f; ? Byte:8 bits9 x6 i" z, E) a' P+ B. ?
Halfword: 16 bits (2 byte) X9 } R1 ]7 {( b1 e. S3 _
Word :32 bits (4 byte)
& B; z: ~" y- N$ D0 G) [3 Z4 W Doubleword:64-bits(8byte)(Cortex-A处理器)
, E' m4 e, o3 t9 F: ~& p# K大部分ARM core 提供:2 N* C3 d; W; w' L: o: x
ARM 指令集(32-bit)- m/ ?, S; G" p
Thumb指令集(16-bit )
8 \7 M0 ~% T, K( Z( NCortex-A处理器
/ }) n; x v; q 16位和32位Thumb-2指令集
# J) |' d6 y' r8 G 16位和32位ThumbEE指令集
: ^2 U/ w6 H9 x7 |3 e% G+ i0 ^ @( b& k% a7 |) |4 `& d
指令集的16位和32位差异体现在那里?简单来说就是32位指令集能够操作32位数,而16位指令集只能操作16位数。一个简单的例子,同样执行0X111111111和0X22222222的加法,32位指令集可以一次执行完毕,而16位指令集只能
2 K& N# |, c% h- j9 c3 q高16位和低16位拆开运算。就向小时候我们学习加法,一开始我们只会个位数加法(十进制1位加法),后来我们会100以内的加法(十进制2位加法)。
5 y* G, f& P" D8 L g$ s在CORETEX-A中我们都用32位ARM指令集
/ V' t8 U( [) i0 Q' p1 d" \, v, I. w7 l: a1 J9 R0 M
2 z6 T. o' V+ [( X& t2 q
! X* L6 u$ C( ~' _, K
|
|