[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 壹 - 基础介绍 | 1. 计算机内存

注意:本文经过原作者授权转译,转载请标明出处

原文地址:http://mrjester.hapisan.com/04_MC68/Sect01Part01/Index.html

条件允许建议阅读原文,网上非中文资料还是较多,当作锻炼英文岂不美哉
翻译若有不足之处欢迎批评指正

译文:

"哈?计算机?我听说它里面就是一坨0 和1... 我不知道它到底是怎么能让我看*片的,但不管怎么说它确实能做到,祝你们好运" ---- 道格 赫弗南,电视剧《后中之王》(The King Of Queens)

简介

作为一个又好又简单的开始,你可能需要知道计算机是怎样存储的

二进制

计算机用 (bits) 来存储数据,每一位可以是两种状态之一:

  • 0 - 擦除 (可以理解为断电,或在电路上称为低电平)
  • 1 - 设置 (可以理解为通电,或在电路上称为高电平)

通常是4 个为一组,比如 0100,4 个一组称为一个半字节 (nybble),通过排列组合共有16 种可能的半字节:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

记忆这些可能有些困难,所以为了更简单,每个位都对应着一个数字

二进制十六进制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F
``` 正如你所见,左边一列是我们的16 个`半字节`,右边一列是同样能的16 个`半字节`,不过是以`十六进制`的形式表示的

举个例子,二进制0011十六进制3是一样的,由于十六进制更加的短而且容易记忆,我们常常使用十六进制数字。可能某一天你看到1000就能想到对应的数字8,现在你只要记住他们是一样的就可以了

计数

大多数人日常生活中所使用的的数字如果从0 开始数的话大概是这样的:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27...

很明显你很擅长数数 (别说了,就连3 岁小孩都会),这种"正常"的数数方式称为十进制 (数到某位大于9 时,该位置0 并向高位进位)

而对于十六进制的数数,有些略微的不同:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,
20, 21, 22, 23, 24, 25, 26, 27...

十六进制十进制一样可以数到9,但是它下一个数并不是10,而是A, B, C, D, E, F,然后才是10,这些9后面额外的6 个数字 (A~F) 对于十六进制数 的每一位都是这样的。比如,如果有个十六进制数: 9F,如果你把它 +1,结果并不是100,而是A0

二进制十六进制十进制
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
1010A10
1011B11
1100C12
1101D13
1110E14
1111F15

上面这张表展示了二进制十六进制十进制之间的对应关系,比如二进制1100十六进制C以及十进制12表示的是同一个数,只是表示方式不同而已

在这系列教程中,我们将会更多的使用十六进制,以下将简称之为hex (hexadecimal)

数据长度

从现在起,你应该了解了半字节是什么 (4 个的组),不过我们还有其他的数据长度:

  • 如果你把两个半字节放到一起 (比如0100 1101),那么恭喜你获得了一个字节 (byte)
  • 如果你把两个字节放到一起 (比如0100 1101 1011 0000),那么恭喜你获得了一个 (word) (由于m68k 是16 的cpu,所以一个是16 ,即2 个字节,对于如今的民用cpu 如牙膏厂和农企在卖的那些,是64 cpu,对于它们来说一个是64 ,即8 个字节)
  • 如果你把两个放到一起 (比如0100 1101 1011 0000 1111 0001 0000 0110),那么恭喜你获得了一个长字 (long-word)

长度当然不仅限于这些,它们每翻倍就有一个名称,然而对于m68k 来说,长字已经是极限了,所以在此我们无需知道更长的叫什么。下面这张表或许能帮助理解:

长度 二进制 十六进制
半字节 0010 2
字节 0010 1100 2C
0010 1100 1111 0101 2C F5
长字 0010 1100 1111 0101 1001 1101 0111 0110 2C F5 9D 76

目录
下一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 壹 - 基础介绍 | 2. 内存存储

posted @ 2020-02-10 11:01  草帽过客  阅读(1121)  评论(0编辑  收藏  举报