8086CPU

来源:互联网 发布:超级玛丽java代码 编辑:程序博客网 时间:2024/06/05 00:28

8086CPU是具有划时代意义的。

1.该CPU设置了指令队列缓冲器。即设置了一个6字节的指令预取队列。EU要执行的指令现有BIU(总线接口单元)从内存中取出放在队列中,然后EU(执行单元)从队列中取出指令运行,当队列空出两个字节以后,就会从内存中取出取指令代码放到预取队列中。

2.设置了地址段寄存器。CPU内部的地址线只有16位,能够有ALU提供的最大地址空间64KB。为了扩大地址宽度将内存分为若干段,每段为64KB。实际物理地址有段地址和CPU提供的偏移量决定。

内存分段

8086处理器具有1MB的内存,则内存的地址范围为00000H~FFFFFH.但是寄存器地址只有16位,所能表示的地址范围为0000H~FFFFH,最大能够寻址的空间为2^16为64KB。故将内存分2^4*64KB

即分为16个段,每段为64KB。

段寄存器

为了管理内存,8086设置了4个段寄存器,即代码段寄存器(CS),数据段寄存器(DS),堆栈段寄存器(SS),附加段寄存器(ES)。把内存分段以后,每一个段就有一个段基址(8086的寄存器只有16位只能存放段起始地址的高十六位称它为段基值,而机器将低4位设置为0.故将段基值左移4位就得到20位,这个就是段基址),而段寄存就是用来存储段基址的高16位,也就是将段寄存器中内容左移4位,段偏移量寄存器(IP,SP,DP,SI,DI等)用来存储段偏移量,段偏移量就是物理地址的低4位。

0 0
原创粉丝点击