一、通用寄存器:
1、一个典型的CPU由运算器,控制器,寄存器等组成,这些器依靠内部总线相连
2、内部总线和外部总线的区别:
内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU与主板上其他期间的联系
3、8086CPU14个寄存器,它们分别是:
AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW
注:8086 CPU所有的寄存器都是16位的,可以存放一个字,例:
AX分为AH(高8)和AL(低8),其目的是为了兼容上一代8位CPU
4、AX、BX、CX、DX 通常用来存放一般性数据被称为通用寄存器
5、SP是堆栈指针寄存器,BP是基指针寄存器,IP是指令指针寄存器(存放指令的偏移地址)
二、字在寄存器中的存储:
一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节就存在这个寄存器的
高8位寄存器和低8位寄存器中
三、几条汇编指令:
说明:汇编指令不区分大小写
四、物理地址:
1、物理地址:CPU访问内存单元时要给出内存单元的地址,所有的内存单元所构成的存储空间是一个一维的线性空间,这个一维的地址称为物理地址
2、16位结构的CPU具有以下特点:
①、运算器一次最多可以处理16位的数据
②、寄存器的最大宽度位16位
③、寄存器和运算器之间的通路是16位的
3、8086CPU有20位(最大FFFFF)的外部地址总线,而CPU是16位的,内部寄存器是16位(FFFF)的,寄存器为了存储20位的地址数据,所采取的方法:
物理地址 = (段地址 X 16)+ 偏移地址
注:十六进制的数 X 16,就是将此数后加一个零,例如:0xAF X 16 = 0xAF0
五、段的概念:
1、内存并没有分段,断的划分来自CPU,由于8086CPU用“物理地址 = (段地址 X 16)+ 偏移地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。以后,在编程时可以根据个人需要,将若干连续地址内存单元看作一个段。可用段地址 X16 可定位段的起始地址(基础地址),可用偏移地址精确定位段中的内存单元
六、段寄存器:
1、段寄存器就是存放段地址
2、8086CPU有4个段寄存器:
①、CS:代码段寄存器(是存放指令的段地址)
②、DS:数据段寄存器
③、SS:堆栈段寄存器
④、ES:附加段寄存器
3、CS:代码段寄存器(是存放指令的段地址)、IP是指令指针寄存器(存放指令的偏移地址),在8086CPU上电启动或复位(CPU刚开始工作时),CS、IP被设置为CS=FFFFH,IP=0000H。即8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令
4、在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制,CPU从何处执行指令是由CS、IP中的内容决定的,程序员可以通过改变CS、IP的内容来控制CPU执行目标指令。转移指令jmp可以改变CS、IP,jmp 段地址 : 偏移地址
七、debug命令:
R命令:查看、改变CPU寄存器的内容
D命令:查看内存中的内容
E命令:改写内存中的内容
U命令:将内存中的机器指令转成汇编指令
T命令:执行一条机器指令
A命令:以汇编指令的的格式在内存中写入一条机器指令