汇编一
(一)汇编语言特点
机器语言
学习汇编语言,首先要了解机器语言。
1.直接访问各种硬件设备,例如存储器、CPU等,最大限度发挥硬件的功能。
2.不受编译器限制。
3.代码简短,占用内存少,执行速度快。
4.不易编写、调试、维护。
5.每种CPU对应汇编指令集
(二)汇编用途
1.编写驱动、操作系统。
2.可与高级语言混合使用。
(三)汇编种类
1.8086汇编
2.Win32汇编
3.Win64汇编
4.ARM汇编(嵌入式、Mac、iOS)
。。。。
iOS系统
(四)总线
地址总线、数据总线、控制总线。
1.地址总线
CPU告诉内存,我要定位你的哪一个地址:寻址。
宽度决定了CPU的寻址能力。
内存中一字节为单位。
1字节=1Byte=8bit位
例如:10根总线的寻址能力是2^10 = 1024 = 1B
20根总线的寻址能力是2^20 = 2^10 * 2^10 = 1024*1024 = 1M 对应的内存地址有1Mb
寻址能力为1KB == 1024 = 2^10 10跟
寻址能力为8KB = 8*2^10 = 2^(10+3)
2.控制总线
CPU告诉内存,我要读还是写
3.数据总线
内存把计算结果传给CPU
宽度决定了CPU单次数据的传送量,传送速度:吞吐量
16根的数据总线,单次传递最大的是2个字节
64位CPU单次可以传递最大8个字节
(五)内存
8086的CPU此处:
111: 表达的个数是2^3 表示的最大的值是2^3-1
FFFFF 个数16^5 最大值16^5-1
(六)寄存器
1.对于程序员,CPU最关键的部件就是寄存器,通过改变寄存器去控制CPU
寻址到红色,控制告诉读,寄存器中加1,寻址到蓝色,控制告诉写,传递数据4到蓝色寄存器的空间一般和数据总线的大小一致。
字节与字
字节:1byte 1字节有8bit
字:2byte 2字节 16bit 所以16位的CPU可以直接存一个字
(七)8086的寻址方式
1.CPU访问内存单元时,要给出内存单元的地址,所有的内存单元都有唯一的地址,叫做物理地址
2.8086有20位地址总线,可以传送20位的地址,1M(2^10)的寻址能力
:0x56FFF
3.但它又是16位结构的CPU,它内部能够一次性处理、传输、暂时存储的地址为16位。如果将地址从内部简单地发出,那么它只能送出16位的地址,表现出来的寻址能力只有64KB(2^16)
:0xFFFF
8086采用一种在内部用2个16位地址合成的方法来生成1个20位的物理地址
0xFFFA5 = 0xFFFA0 + 0x0005 = 0xFFFA * 0x10 + 0x0005
物理地址 = 段地址 * 0x10 +偏移地址
0xFFFA:0x0005 --> 0xFFF0:0x00A5 -->0xFF00:0x0FA5