8086CPU有20位地址总线(外部地址总线),可以传送20位地址,寻址能力为1M;
8086CPU内部为16位结构,可以传送16位地址,寻址能力为64K。
8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址(内存)。
段的认识:
内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址X16) + 偏移地址 = 物理地址”的方式给出内存单元的物理地址,使得可以用分段的方式来管理内存。
在1M的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址
数据在存储单元地址为21F60H内存单元中,对于8086PC机有两种描述:
1.数据存在内存2000:1F60单元中
2.数据存在内存的2000段中的1F60H单元中
8086CPU有4个段寄存器:CS、DS、SS、ES
在8086CPU加电启动或复位后(即CPU刚开始工作时),CS和IP被设置为CS = FFFFH,IP = 0000H
即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行
即FFFF0H单元中的指令是8086PC机开机后执行的第一条指令
传送指令MOV可以改变8086CPU大部分寄存器的值。
MOV指令不能用于设置CS、IP的值
8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令
转移指令:
同时修改段地址和偏移地址 jmp 段地址:偏移地址
eg: jmp 2AE3:3
jmp 4:0B16
仅修改偏移地址 jmp 某一合法寄存器
eg: jmp ax (类似于 mov IP,ax)
jmp bx
用寄存器中的值修改IP
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程:
(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器
(2)IP指向下一条指令
(3)执行指令 (转到步骤(1),重复这个过程)