汇编语言
程序员文章站
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
结论:无论什么进制,本身都有一套完美的运算体系,我们可以通过列表的方式将它计算出来!
上一篇: 汇编语言
下一篇: 鼠标滑轮滚动事件(代码)