Reference:
Description: ARM Basics: The length of a "word" in ARM.
/
(I won’t discuss the issue of one “Chinese character” representing two “bytes” here, as this almost bothered me.)
When learning assembly, I used LDRH R2, [R1]; to read the half-word data at memory address R1 into register R2, and clear the upper 16 bits of R2. I had never heard of the concept of word before, so I was very confused. This aroused my curiosity to find out the length of "word". How many bytes are there in a word? This is a very obscure question, especially the following explanation:
"In computing, a word is the term used to represent the natural unit of data for a particular computer design. In this particular computer, a word is a fixed-length group of bits that is used to process transactions at one time. The number of bits in a word (the word length) is an important characteristic in the architecture of a computer system."
I just don't understand, but the result of the LDRH R2, [R1] experiment above is that the 16 bits of the memory address pointed to by R1 are all given to R2, indicating that the "word" is 32 bits. But when I used the calculator on Win7, I found another situation. As shown in the figure below, a "word" is given 16 bits.
This irritated me even more, and I had to figure it out. I found the answer on Wikipedia when I googled it, and it turns out that this "word" is not fixed, it is 16 bits for X86 and 32 bits for ARM. (Link here)
The word length statistics are made for each architecture, let’s take a look.
This shows that no one is wrong, the calculator that comes with Win7 is based on the x86 standard. If you want to use this calculator to calculate words in ARM, you need to use the "double word" here to represent a "word" in ARM.
Word length table
years |
Computer |
Word length |
Integer |
Floating point |
Length |
Addressing unit |
Character |
|
1941 |
Samsung Z3 |
22 b |
– |
In |
8 b |
In |
– |
|
1942 |
ABC |
50 b |
In |
– |
– |
– |
– |
|
1944 |
Harvard Mark I |
23 d |
In |
– |
24 b |
– |
– |
|
1946 |
ENIAC |
10 d |
w, 2w |
– |
– |
- |
– |
|
1951 |
UNIVAC I |
12 d |
In |
– |
½w |
In |
1 d |
|
1952 |
IAS machine |
40 b |
In |
– |
½w |
In |
5 b |
|
1952 |
IBM 701 |
36 b |
½ in, in |
– |
½w |
½ in, in |
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 |
IBM 650 |
10 d |
In |
- |
In |
In |
2 d |
|
1954 |
IBM 704 |
36 b |
In |
In |
In |
In |
6 b |
|
1954 |
IBM 705 |
n d |
0d, ... 255d |
– |
5d |
d |
1 d |
|
1954 |
IBM NORC |
16 d |
In |
w, 2w |
In |
In |
– |
|
1956 |
IBM 305 |
n d |
1d, ... 100d |
– |
10d |
d |
1 d |
|
1958 |
UNIVAC II |
12 d |
In |
– |
½w |
In |
1 d |
|
1958 |
SAGE |
32 b |
½w |
– |
In |
In |
6 b |
|
1958 |
Autonetics Recomp II |
40 b |
w, 79 b, 8d, 15d |
2w |
½w |
½ in, in |
5 b |
|
1959 |
IBM 1401 |
n d |
1d, ... |
– |
d, 2d, 4d, 5d, 7d, 8d |
d |
1 d |
|
1959 |
IBM 1620 |
n d |
2d, ... |
– |
12d |
d |
2 d |
|
1960 |
LARC |
12 d |
w, 2w |
w, 2w |
In |
In |
2 d |
|
1960 |
IBM 1410 |
n d |
1d, ... |
– |
d, 2d, 6d, 7d, 11d, 12d |
d |
1 d |
|
1960 |
IBM 7070 |
10 d |
In |
In |
In |
w, d |
2 d |
|
1960 |
PDP-1 |
18 b |
In |
– |
In |
In |
6 b |
|
1961 |
IBM 7030 |
64 b |
1b, ... 64b, |
In |
½ in, in |
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 |
– |
In |
In |
6 b |
|
1962 |
UNIVAC 1107 |
36 b |
1/6 in, ⅓ in, ½ in, in |
In |
In |
In |
6 b |
|
1962 |
IBM 7010 |
n d |
1d, ... |
– |
d, 2d, 6d, 7d, 11d, 12d |
d |
1 d |
|
1962 |
IBM 7094 |
36 b |
In |
w, 2w |
In |
In |
6 b |
|
1963 |
Gemini Guidance Computer |
39 b |
26 b |
– |
13 b |
13 b, 26 b |
– |
|
1963 |
Apollo Guidance Computer |
15 b |
In |
– |
w, 2w |
In |
– |
|
1964 |
CDC 6600 |
60 b |
In |
In |
¼w, ½w |
In |
6 b |
|
1965 |
IBM 360 |
32 b |
½w, w, |
w, 2w |
½ in, in, 1½ in |
8 b |
8 b |
|
1965 |
UNIVAC 1108 |
36 b |
1/6w, ¼w, ⅓w, ½w, w, 2w |
w, 2w |
In |
In |
6 b, 9 b |
|
1965 |
PDP-8 |
12 b |
In |
– |
In |
In |
8 b |
|
1970 |
PDP-11 |
16 b |
In |
2w, 4w |
w, 2w, 3w |
8 b |
8 b |
|
1971 |
Intel 4004 |
4 b |
w, d |
– |
2w, 4w |
In |
– |
|
1972 |
Intel 8008 |
8 b |
w, 2d |
– |
w, 2w, 3w |
In |
8 b |
|
1972 |
Calcomp 900 |
9 b |
In |
– |
w, 2w |
In |
8 b |
|
1974 |
Intel 8080 |
8 b |
w, 2w, 2d |
– |
w, 2w, 3w |
In |
8 b |
|
1975 |
Cray-1 |
64 b |
24 b, w |
In |
¼w, ½w |
In |
8 b |
|
1975 |
Motorola 6800 |
8 b |
w, 2d |
– |
w, 2w, 3w |
In |
8 b |
|
1975 |
MOS Tech. 6501 |
8 b |
w, 2d |
– |
w, 2w, 3w |
In |
8 b |
|
1976 |
Zilog Z80 |
8 b |
w, 2w, 2d |
– |
w, 2w, 3w, 4w, 5w |
In |
8 b |
|
1978 |
Intel 8086 |
16 b |
½w, w, 2d |
– |
½ in, in, ... 7 in |
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 |
– |
½ in, in, ... 7½ in |
8 b |
8 b |
|
1982 |
Motorola 68020 |
32 b |
¼w, ½w, w, 2d |
– |
½ in, in, ... 7½ in |
8 b |
8 b |
|
1985 |
ARM1 |
32 b |
In |
– |
In |
8 b |
8 b |
|
1985 |
MIPS |
32 b |
¼in, ½in, in |
w, 2w |
In |
8 b |
8 b |
|
1989 |
Intel 80486 |
16 b |
½w, w, 2dw |
2w, 4w, 5w, 17d |
½ in, in, ... 7 in |
8 b |
8 b |
|
1989 |
Motorola 68040 |
32 b |
¼w, ½w, w, 2d |
w, 2w, 2½w |
½ in, in, ... 7½ in |
8 b |
8 b |
|
1991 |
PowerPC |
32 b |
¼in, ½in, in |
w, 2w |
In |
8 b |
8 b |
|
2000 |
IA-64 |
64 b |
8 b, ¼w, ½w, w |
½ in, in |
41 b |
8 b |
8 b |
|
2002 |
XScale |
32 b |
In |
w, 2w |
½ in, in |
8 b |
8 b |
|
Description: b: bit, d: decimal number, w: word length of the structure, n: variable size |
Previous article:ARM Basics: ARM Instructions MSR
Next article:Examples and descriptions of all common ARM instructions
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Download from the Internet--ARM Getting Started Notes
- Learn ARM development(22)
- Learn ARM development(21)
- Learn ARM development(20)
- Learn ARM development(19)
- Learn ARM development(14)
- Learn ARM development(15)
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- pcb welding video
- Update pyboard firmware using STM32CubeProgrammer
- Battery Characteristics Analysis and Design Scheme in Smart Home
- Technical Title
- CS83702 single lithium battery 3.7V power supply built-in boost 18W mono class D amplifier IC
- 【Renovation of old things】 Graffiti desk lamp——lugl4313820
- Share the silkscreen search method of TI device models
- Some thoughts on the development of embedded technology
- Uncover the secrets of Shenzhou XII’s journey home!
- Maximize power density with buck-boost charging and USB Type-C PD technology