学习路线

语言

进制

进制如何运算

二进制

数据宽度

有符号和无符号数

原码反码补码

位运算

位运算计算

汇编

寄存器

内存

汇编指令

内存复制

堆栈的指令

汇编如何写函数

堆栈传参

堆栈平衡

外挂

 

一、语言

任何人沟通,语言、学习计算机的语言

1、什么是机器语言

我们目前主流的电子计算机:只认识0和1

汇编语言简单介绍_数据

 语言鄙视链:

汇编语言简单介绍_寄存器_02

 

 

二、进制

人类天然的选择了10进制,10个指头。跳出固有思维的方法!

1、进制

1进制:一进一

2进制:二进一

8进制:八进一,8个符号组成

10进制:十进一,10个符号组成

16进制:十六进一,16个符号组成

2、测试

# 一进制  1~20
1
1 1
1 1 1
1 1 1 1
1 1 1 1 1
........

# 二进制 1~20
0   1
10  11
100 101
110 111


# 三进制  1~20
0   1   2
10  11  12
20  21  22
100 101 102
110 111 112

# 七进制 1~20
0  1  2  3  4  5  6
10 11 12 13 14 15 16
20 21 22 23 24 25 26

 

问题:你这呢理解进制了吗?1+1=3对吗,如果你可以使用进制来解答这个问题,那么你就学会了

 

三、进制怎么运算:查数

# 八进制计算下面结果
2 + 3   # 在2后面数三位,那就是5
4 + 5   # 在4后面数5位,那就是11

# 运算的本质就是查数
0  1  2  3  4  5  6  7
10 11 12 13 14 15 16 17
20 21 22 23 24 25 26 27

 无论是什么进制,本身都有一套完美的运算体系,都可以通过查数的方式将他运算出来。

 

四、二进制

量子计算机:可以实现量子计算的机器

传统的计算机:集成电路

量子计算机的单位:坤比特(量子比特),量子的两态来表示

电子计算机:计算机使用二进制:0和1

# 二进制
0    1
10   11
100  101
110  111
1000 1001
1010 1011
1100 1101
1110 1111

 

为什么要学习二进制?

寄存器、内存、位,底层的每一个位都是有含义的。汇编入门理解的基础

 

五、数据宽度

计算机:内存!给数据增加数据宽度

C、C++、JAVA都需要定义数据的类型。计算机底层需要我们给这些数据定义宽度。

在计算机中,每一个数据都需要给他定义类型,给他定义宽度(在内存中的宽度)

 

六、有符号数和无符号数

数据都是有宽度的,但每个数据代表什么意思呢?

 

七、寄存器

 

八、内存

寄存器很小,不够用,所以说,数据放到内存中。

程序真正运行的时候,才会用到物理内存。

8bit=1Bytes
1024Bytes=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PB
1024PB=1EB

计算机中内存地址很多,空间很大。

内存地址:

存一个数:占用的大小,数据宽度,存到哪里

计算机中内存地址很多,空间很大,每个空间分配一个地址,名字。