欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编语言

程序员文章站 2022-04-22 10:57:27
...

概述

语言

进制

进制运算

二进制

数据宽度

有符号数和无符号数

原码反码补码

位运算

汇编

寄存器

内存

汇编指令

内存复制

堆栈的指令

汇编如何写函数

堆栈传参

堆栈平衡

外挂

1、语言

人和人沟通? 语言 学习计算机的语言!

1.1、什么是机器语言

# 我们目前主流的电子计算机
状态: 0  和  1        
假设:
加 0100 0000
减 0100 1000
乘 0100 1100 0111
除 0101 1000 0100

这些复杂的机器语言,能简化吗? 助记符! 汇编语言! 人能够理解的语言转换为机器能够理解的语言

加 INC  -编译器->  0100 0000
减 DEC            0100 1000
乘 MUL            0100 1100 0111
除 DIV            0101 1000 0100

离程序的本质:隔阂 ! 汇编一般用于底层的编写,单片机

1.2、C语言

加 A+B  -编译器->  0100 0000
减 A-B            0100 1000
乘 A*B            0100 1100 0111
除 A/B            0101 1000 0100

汇编语言

汇编语言

2、进制

二进制? 0 1

学习进制的障碍?

10进制!

人类天然的选择就是10进制,10个指头。跳出固有思维的方法! “屈指可数”

二进制

思想:每一种进制都是完美的,都有自己的计算方式

进制?

1进制: 1进1 结绳记数

2进制: 2进1 计算机

8进制: 8进1 8个符号组成:0 1 2 3 4 5 6 7

10进制:10进1 10个符号组成:0 1 2 3 4 5 6 7 8 9

16进制: 16进1 16个符号组成:0 1 2 3 4 5 6 7 8 9 a b c d e f

进制远远没有想的那么复杂。查数

测试

# 一进制  1-20
1
1 1
1 1 1
...
# 三进制  1-20
0    1    2
10   11   12
20   21   22
100  101  102
...
# 二进制  1-20
0   1 
10  11
100 101 
110 111
...
# 七进制  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 对吗? 如果你可以用进制来解答这个问题 那么你就学会了!

10进制: 0 1 2 3 4 5 6 7 8 9 十:10

自己的十进制 a b c d 1 2 3 4 5 f 十:ba

进制可以自己随便定义的,学习,做创造者

加密解密:程序员,**程序的人! 进制的加密

数字量一大,总是有规律的

3、进制运算

# 八进制计算下面的结果
2+3=5
2*3=6
4+5=11
4*5=24

#运算的本质就是查数
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 
...

八进制乘法表

1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7
2*2=4 2*3=6 2*4=10 2*5=12 2*6=14 2*7=18
3*3=11 3*4=14 3*5=17 3*6=22 3*7=25
4*4=20 4*5=24 4*6=30 4*7=34
5*5=31 5*6=36 5*7=43
6*6=44 6*7=52
7*7=61

八进制加法表

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+8=10 2+7=11 3+7=12 4+7=13 5+7=14 6+7=15 7+7=16
#八进制计算下面的结果

277+333
276*54
237-54
234/4

结论:无论什么进制,本身都有一套完美的运算体系,我们可以通过列表的方式将它计算出来!