1 汇编语言

课程概要

人与人沟通需要使用到语言,人与计算机沟通也需要一种语言进行,你要跟计算机进行沟通,必须要使用计算机可以识别的语言,这种语言我们称之为机器语言,也就是0和1,二进制。

但对于人来说机器语言(二进制)比较难懂,所以前人就在这个基础上衍生出了「汇编语言」,相比于机器语言,汇编语言更加通俗易懂一些,但汇编语言终究不是机器语言,想要计算机读懂汇编语言,就需要「编译器」来将汇编语言转为机器语言。

时代是在进步的,技术也是。伟大的前辈在基于「汇编语言」的基础上,又发明了一类语言,我们称之为「高级语言」,例如C语言,其特点就是更加贴近人类的思维、表达方式,但与「汇编语言」一样的是:「高级语言」也需要编译器将其转为计算机能读懂的机器语言。所以综上所述,不是语言变得强大了,而是编译器变得越来越强大。

学习「汇编语言」只是为了更好的去理解「高级语言」在计算机底层做了什么事情,更好的去理解计算机底层内容与「高级语言」的特性。

进制

前面,我们有提到计算机只可以读懂机器语言,那机器语言本身就是二进制,所以为了更好的了解、学习计算机,我们要深刻的去理解什么是进制。

如果你总是以十进制为基础去考虑其他进制,包括在进制运算时,也是先考虑转为十进制再运算,这说明你不理解进制的本质,想要真正的理解进制,就要忘掉我们生活中常用的十进制,也要忘掉进制间的转换。

进制的定义:N进制,由N个符号组成,逢N进1。那么问题来了,十进制是由十个符号组成,就一定是0、1、2、3、4、5、6、7、8、9么?其实并不是,我们既然说了是由符号组成,那么十进制也可以是由A、Y、B、3、4、5、D、9、0、X组成,由什么符号,取决于定义的那个人,我定义的十进制前20个表格是这样的:

A

Y

B

3

4

5

D

9

0

X

YA

YY

YB

Y3

Y4

Y5

YD

Y9

Y0

YX

提问:1+1=3成立吗?

进制运算

基本了解进制后,我们需要了解进制间是如何运算的,八进制的10+4=?10-4=?10*4=?10/4=?首先,我们需要知道八进制的八个符号分别是什么,分别是:0、1、2、3、4、5、6、7。

那么如何计算呢?1. 写出八进制的前50 2. 借助算术表

八进制的前50表:

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

20

21

22

23

24

25

26

27

30

31

32

33

34

35

36

37

40

41

42

43

44

45

46

47

50

51

52

53

54

55

56

57

60

61

加法的本质实际上就是查表,10+4,就是从10这个数字开始依次往后查4位,那么其结果就是14。那么10-4就是依次向前查4位,10*4就等于10+10+10+10,那么是否等于从10这个数字开始依次往后查3个10位呢?其实并不是,因为这里是八进制,我们要严格按照八进制的表示来,这里的10(一零)实际上表示8个,也就是从10这个数字开始依次往后查3个8位,10*4的结果也就是40。

借助写表格的方式去查表计算,这并不高效,那么回想一下我们从学习数学开始是怎么学习计算的呢?相信你已经回忆起来了,我们是借助加减乘除这四张算术表去计算的,那么在这里我们可以尝试写一下八进制的加法算术表:

1+1 = 2

1+2 = 3

2+2 = 4

1+3 = 4

2+3 = 5

3+3 = 6

1+4 = 5

2+4 = 6

3+4 = 7

4+4 = 10

1+5 = 6

2+5 = 7

3+5 = 10

4+5 = 11

5+5 = 12

1+6 = 7

2+6 = 10

3+6 = 11

4+6 = 12

5+6 = 13

6+6 = 14

1+7 = 10

2+7 = 11

3+7 = 12

4+7 = 13

5+7 = 14

6+7 = 15

7+7 = 16

这样再去计算八进制的算术题,就简单多了,其他进制运算以此类推。

二进制简写形式

在之前的课程概要中,我们说了计算机只能读懂机器语言(二进制),相信很多人就开始疑惑了,为什么计算机只能读懂二进制?原因是因为计算机是需要电的,而电路设计只有两种状态:1(真·通电)0(假·未通电),所以计算机中存储的任何文件、接收的任何指令都是由0和1组成的。

在这里,我们可以借助UltraEdit软件打开一个EXE文件:

images/download/attachments/1015825/image2021-1-25_22-24-48.png

打开一看,为什么这里没有显示二进制0和1呢?是因为二进制使用、阅读都比较麻烦,所以如上图所示,展示出来的是十六进制,这里我们也可以称之为二进制的简写方式

在计算机中二进制和十六进制的对应关系如下:

二进制

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

十六进制

0

1

2

3

4

5

6

7

</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值