2.1通用寄存器
AX,BX,CX,DX这四个通用寄存器,每个寄存器可分为两个可单独使用的8位寄存器来用:AH,AL,BH,BL,CH,CL,DH,DL2.2字在寄存器中的存储
8086CPU可以一次性处理一下两种尺寸的数据
1)字节:Byte,由8个bit组成,可以存在8位寄存器中
2)字:word,有2个Byte组成,分别成为这个字的高位字节和地位字节
16进制表示一个数据能更直观一些,在最后面加H
2.3 几条汇编指令
mov,add
2.4 物理地址
2.5 16位结构的cpu
8086是16位机(16位结构的cpu),有以下特性:
1)运算器一次最多可处理16位数据
2)寄存器最大宽度为16位
3)寄存器和运算器之间的通路为16位
2.6 8086cpu给出物理地址方法
8086有20位地址总线,1M的寻址能力,所以采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址:
1)读写内存是,cpu中的相关部件提供两个16位的地址:段地址 、偏移地址
2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
3)地址加法器讲两个16位的地址合成一个20位的物理地址
4)输入输出控制电路讲20位的物理地址送上地址总线
5)20位的物理地址呗地址总线传到存储器
地址加法器规则------->物理地址=段地址*16+偏移地址
2.7 "段地址*16+偏移地址=物理地址"的本质含义
2.8 段的概念
段的划分来自CPU,用分段的方式来管理内存。
段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位的寻址能力为64KB,所以一个段的长度最大为64KB
※段地址*16=段的起始物理地址
2.9 段寄存器
8086的四个段寄存器:CS,DS,SS,ES
2.10 CS 和 IP
CS 和 IP 是8086cpu中最关键的寄存器,他们知识了CPU当前要读取指令的地址。CS:代码段寄存器 IP:指令指针寄存器
在8086PC机中,这一时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M*16+N单元开始,读取一条指令并执行。
1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
2)IP=IP+所读取的指令的长度,从而纸箱下一条指令
3)执行指令。转到步骤1),重复这个过程
8086CPU加电启动或复位后,CS=FFFFH,IP=0000H,所以FFFF0H单元中的指令是8086CPU开机后执行的第一条指令
在内存中,指令和数据没有任何区别,都是二进制信息,CPU在工作时把有的信息看做指令,有的信息看做数据
2.11 修改CS,IP的指令
mov指令可以修改大部分8086CPU中的寄存器的值,但是不能修改CS:IP的值,能够改变CS:IP值的指令被称为“转移指令”,最贱的一个是jmp
格式一:jmp 段地址:偏移地址 ------ > jmp 2AE3:3 执行后 CS=2AE3H ,IP=0003H jmp3:0B16 执行后 CS=0003H,IP=0B16H
格式二:jmp 某一合法寄存器 ------ > jmp ax 仅仅修改IP的内容(约等于mov IP ax)
2.12 代码段