×
单片机 > 单片机程序设计 > 详情

ARM基础:ARM中“字”的长度

发布时间:2020-06-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)


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用Atmega 16单片机驱动字符型液晶显示芯片