ARM基础:ARM中“字”的长度
来源:互联网 发布:2016年日本进出口数据 编辑:程序博客网 时间:2024/05/21 08:05
/******************************************************************************************************************
参考:
说明:ARM基础:ARM中“字”的长度。
******************************************************************************************************************/
(这里不讨论一个“汉字”代表两个“字节”的问题,这个差点都干扰我了都)
在学习汇编时用到了LDRH R2,[R1] ;将存储器地址为R1的半字数据读入寄存器R2,并将R2的高16位清零。 以前没有听过字这个这个概念,就很纠结。就引起了我弄清“字”的长度的好奇心。字到底有多少个字节,这是一个很晦涩的问题,都特别是这样的解释:
“在计算机领域, 对于某种特定的计算机设计而言,字是用于表示其自然的数据单位的术语。在这个特定计算机中,字是其用来一次性处理事务的一个固定长度的位(bit)组。一个字的位数(即字长)是计算机系统结构中的一个重要特性。”
就是不明白,不过上边的LDRH R2,[R1]实验结果是R1指向的内存地址的16bit都给了R2,说明“字”是32位的。但是当我用Win7上的计算器时却发现了另一种情况。如下图可见,一个“字”,却给出了16bit。
这更激怒我了,非要搞明白不可了。在google时在wiki上找到了答案,这个“字”并不是固定的,对于X86来说是16位,对于ARM来说是32位。(链接这里)
对各个架构都做了字长的统计,转来看看。
这就说明谁都没有错了,Win7自带的计算器是按照x86的标准来的。要想用这个计算器来计算ARM中的字,要用这里的“双字”来代表ARM中的一个“字”。
字长表
年份
计算机
架构
字长
整数
长度
浮点数
长度
长度
指令
编址单位
字符
长度
1941
Zuse Z3
22 b
–
w
8 b
w
–
1942
ABC
50 b
w
–
–
–
–
1944
Harvard Mark I
23 d
w
–
24 b
–
–
1946
(1948)
{1953}
ENIAC
(w/Panel #16)
{w/Panel #26}
10 d
w, 2w
(w)
{w}
–
–
(2d, 4d, 6d, 8d)
–
–
{w}
–
1951
UNIVAC I
12 d
w
–
½w
w
1 d
1952
IAS machine
40 b
w
–
½w
w
5 b
1952
IBM 701
36 b
½w, w
–
½w
½w, w
6 b
1952
UNIVAC 60
n d
1d, ... 10d
–
–
–
2d, 3d
1953
IBM 702
n d
0d, ... 511d
–
5d
d
1 d
1953
UNIVAC 120
n d
1d, ... 10d
–
–
–
2d, 3d
1954
(1955)
IBM 650
(w/IBM 653)
10 d
w
–
(w)
w
w
2 d
1954
IBM 704
36 b
w
w
w
w
6 b
1954
IBM 705
n d
0d, ... 255d
–
5d
d
1 d
1954
IBM NORC
16 d
w
w, 2w
w
w
–
1956
IBM 305
n d
1d, ... 100d
–
10d
d
1 d
1958
UNIVAC II
12 d
w
–
½w
w
1 d
1958
SAGE
32 b
½w
–
w
w
6 b
1958
Autonetics Recomp II
40 b
w, 79 b, 8d, 15d
2w
½w
½w, w
5 b
1959
IBM 1401
n d
1d, ...
–
d, 2d, 4d, 5d, 7d, 8d
d
1 d
1959
(TBD)
IBM 1620
n d
2d, ...
–
(4d, ... 102d)
12d
d
2 d
1960
LARC
12 d
w, 2w
w, 2w
w
w
2 d
1960
IBM 1410
n d
1d, ...
–
d, 2d, 6d, 7d, 11d, 12d
d
1 d
1960
IBM 7070
10 d
w
w
w
w, d
2 d
1960
PDP-1
18 b
w
–
w
w
6 b
1961
IBM 7030
(Stretch)
64 b
1b, ... 64b,
1d, ... 16d
w
½w, w
b, ½w, w
1 b, ... 8 b
1961
IBM 7080
n d
0d, ... 255d
–
5d
d
1 d
1962
UNIVAC III
25 b, 6 d
w, 2w, 3w, 4w
–
w
w
6 b
1962
UNIVAC 1107
36 b
1/6w, ⅓w, ½w, w
w
w
w
6 b
1962
IBM 7010
n d
1d, ...
–
d, 2d, 6d, 7d, 11d, 12d
d
1 d
1962
IBM 7094
36 b
w
w, 2w
w
w
6 b
1963
Gemini Guidance Computer
39 b
26 b
–
13 b
13 b, 26 b
–
1963
(1966)
Apollo Guidance Computer
15 b
w
–
w, 2w
w
–
1964
CDC 6600
60 b
w
w
¼w, ½w
w
6 b
1965
IBM 360
32 b
½w, w,
1d, ... 16d
w, 2w
½w, w, 1½w
8 b
8 b
1965
UNIVAC 1108
36 b
1/6w, ¼w, ⅓w, ½w, w, 2w
w, 2w
w
w
6 b, 9 b
1965
PDP-8
12 b
w
–
w
w
8 b
1970
PDP-11
16 b
w
2w, 4w
w, 2w, 3w
8 b
8 b
1971
Intel 4004
4 b
w, d
–
2w, 4w
w
–
1972
Intel 8008
8 b
w, 2d
–
w, 2w, 3w
w
8 b
1972
Calcomp 900
9 b
w
–
w, 2w
w
8 b
1974
Intel 8080
8 b
w, 2w, 2d
–
w, 2w, 3w
w
8 b
1975
Cray-1
64 b
24 b, w
w
¼w, ½w
w
8 b
1975
Motorola 6800
8 b
w, 2d
–
w, 2w, 3w
w
8 b
1975
MOS Tech. 6501
MOS Tech. 6502
8 b
w, 2d
–
w, 2w, 3w
w
8 b
1976
Zilog Z80
8 b
w, 2w, 2d
–
w, 2w, 3w, 4w, 5w
w
8 b
1978
(1980)
Intel 8086
(w/Intel 8087)
16 b
½w, w, 2d
(w, 2w, 4w)
–
(2w, 4w, 5w, 17d)
½w, w, ... 7w
8 b
8 b
1978
VAX-11/780
32 b
¼w, ½w, w, 1d, ... 31d, 1b, ... 32b
w, 2w
¼w, ... 14¼w
8 b
8 b
1979
Motorola 68000
32 b
¼w, ½w, w, 2d
–
½w, w, ... 7½w
8 b
8 b
1982
(1983)
Motorola 68020
(w/Motorola 68881)
32 b
¼w, ½w, w, 2d
–
(w, 2w, 2½w)
½w, w, ... 7½w
8 b
8 b
1985
ARM1
32 b
w
–
w
8 b
8 b
1985
MIPS
32 b
¼w, ½w, w
w, 2w
w
8 b
8 b
1989
Intel 80486
16 b
½w, w, 2d
w, 2w, 4w
2w, 4w, 5w, 17d
½w, w, ... 7w
8 b
8 b
1989
Motorola 68040
32 b
¼w, ½w, w, 2d
w, 2w, 2½w
½w, w, ... 7½w
8 b
8 b
1991
PowerPC
32 b
¼w, ½w, w
w, 2w
w
8 b
8 b
2000
IA-64
64 b
8 b, ¼w, ½w, w
½w, w
41 b
8 b
8 b
2002
XScale
32 b
w
w, 2w
½w, w
8 b
8 b
说明: b: 位, d: 10进制数, w: 该构架的字长, n: 变量长度(variable size)
- ARM基础:ARM中“字”的长度
- arm的基础概念
- ARM基础
- ARM基础
- ARM基础
- ARM基础
- arm基础
- arm基础
- ARM基础
- ARM中的字的长度与VC++中的字的长度是不同的
- arm的lcd基础显示
- ARM的字对齐
- ARM中存储器的介绍
- arm中abort的区别
- ARM中移位的解释
- ARM中gtk的移植
- ARM中LTORG的使用
- ARM 中 CPSR_cxsf的意义
- hibernate一对一单向外键关联_XML
- 代码之美——Doom3源代码赏析
- boost库包含
- QT程序中显示中文字体解决办法
- Illegal redeclaration of module <glbl>.&Element index 2 into memp is out of bounds
- ARM基础:ARM中“字”的长度
- 【PPA2】 第一章 数据包分析与网络基础
- 八皇后问题之一(枚举+搜索)
- 待研究之问题
- Mac OS:PC安装Mac OS X Lion记录
- C++ List(双向链表)
- 常见通用编译调试问题汇总
- MySql中B+索引和ISAM索引介绍
- 基于Memcache的 Session数据的多服务器共享