流水式指令执行:把指令处理分隔成若干个阶段,每个阶段都有独立的部件来处理,当一条指令的某个处理阶段完成后,它就进入下一个处理阶段,而独立的处理部件就可以立即处理下一条指令
数值协处理器是专为快速的进行浮点运算而设计的,称为浮点部件,集成在片内的浮点部件可以更加有效的协助80486进行浮点数值运算
乱序执行:不必按程序中指定的顺序执行每一条指令的内部RISC型操作,有利于提高流水线的效率
寄存器重命名:把对体系结构寄存器的引用转换成对物理寄存器的引用,有助于减轻指令间的伪相关
分支预测:对一个分支是否真正改变程序流而进行的猜测,推测执行时允许提前执行那些由于分支的原因导致不一定总被执行的指令,这些都有利于提高流水线的效率
MMX:多媒体扩展,具有足够的能力完成高速通信或带有多媒体任务的应用程序
通用寄存器:数据寄存器、指针寄存器和变址寄存器统称为通用寄存器,这些寄存器除了各自规定的专用用途外,均可以用于传送和暂存数据,可以保存算数逻辑运算中的操作数和运算结果
通用寄存器的专门用途 | |
寄存器 |
用途 |
AX |
字乘法,字除法,字I/O |
AL |
字节乘法,字节除法,字节I/O,十进制算数运算 |
AH |
字节乘法,字节除法 |
BX |
存储器指针 |
CX |
串操作或循环控制中的计数器 |
CL |
位移计数器 |
DX |
字乘法,字除法,间接I/O |
SI |
存储器指针(串操作中的源指针) |
DI |
存储器指针(串操作中的目的指针) |
BP |
存储器指针(存储堆栈的指针) |
SP |
堆栈指针 |
数据寄存器:(AX,BX,CX,DX)主要用来保存操作数或运算结果等信息,它们的存在节省了为存取操作数所占用总线和访问存储器的时间,这4个寄存器分别可以分解为2个8位寄存器
AX和AL寄存器又称为累加器,一般通过累加器进行的操作所花的时间最少,此外累加器还有很多专门的用途,所以累加器使用得最普片
BX寄存器称为基址寄存器,它是四个数据寄存器中唯一可作为存储器指针的寄存器
CX寄存器成为计数寄存器,在字符串操作和循环操作时,用来控制重复循环操作次数,在位移操作时,CL寄存器用于保存位移的位数
DX寄存器称为数据寄存器,在进行32位的乘除法操作时,用它存放被除数的高16位或余数,也可以存放I/O地址
变址和指针寄存器:主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移即作为存储器(短)指针使用
DF标志位:决定着串操作指令执行时有关指针寄存器调整方向,当DF为1时,串操作指令按减方式改变有关的存储器指针值,当DF为0时串操作指令按加方式改变有关的存储器指针值,指令STD置DF为1,CLD清0
IF标志位:中断允许标志决定着CPU是否响应外部可屏蔽中断请求,当IF为1时,CPU能够响应外部的可屏蔽中断请求,为0时则不响应,但此标志为对非屏蔽中断请求,或内部产生的中断请求不起作用,指令STI设置IF为1,CLI清0
TF标志位:当追中标志位被置1后,CPU进入单步方式,所谓单步方式是指在一条指令执行后,产生一个单步中断,这个主要用于程序的调试
数据的存放方式,低字节在低地址,高字节在高地址
存储器分段:根据需要把1M字节地址空间划分成若干逻辑段,每个段必须满足两个条件,一、逻辑段的起始地址必须是16的倍数,也就是低4位为0,二、逻辑段的最大长度为64K也就是0000H~FFFFH,按照这两个条件1M字节地址空间最多可划分为64个逻辑段FFFFFH / FH,最少划分为为16个逻辑段FFFFFH / FFFFH,逻辑段可以相连也可以不相连,还可以部分重叠,物理地址 = 段起始 X 16 + 偏移地址
采用段起始地址和偏移构成逻辑地址后,段值由段寄存器给出,偏移地址可由IP,SP,和其它可作为存储器指针使用的寄存器SI,DI,BX,BP给出,还可以直接用16位数给出,指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段起始和偏移自动形成20位物理地址
在取指令的时候,自动引用代码段寄存器CS,加上由IP给出的16位偏移,得到要取址的物理地址,当涉及一个堆栈操作时,则自动引用堆栈寄存器SS,再加上由SP给出的16位偏移,得到堆栈操作所需的物理地址,当偏移设计BP寄存器时,缺省引用的段寄存器也为堆栈段寄存器SS,在存取一个普通的存储器操作数时,则自动选择数据段寄存器DS,或附加段寄存器ES,加上16位偏移,得到存储器操作数的物理地址,此时的16为偏移可以是包含在指令中的直接地址,也可以是一个16位存储器指针寄存器的值,也可以是指令中偏移加上存储器指针寄存器中的值,这些取决于寻址方式,除了串操作时目的的段选择附加段寄存器ES外,缺省选择数据段寄存器DS
取指令和堆栈操作所引用的段寄存器分别规定为CS和SS是不可变的,串操作中的目的段的段寄存器规定为ES是不可变的,但是在存储一般存储器操作数时,寄存器可以不要求非要使用DS,当偏移涉及BP,段寄存器也可以不是非要SS,这种情况下可以使用段跨越前缀
段寄存器的引用规定 | |||
访问存储器涉及的方式 |
正常使用的段寄存器 |
可选的段寄存器 |
偏移 |
取指令 |
CS |
无 |
IP |
堆栈操作 |
SS |
无 |
SP |
一般数据存取(下列情况除外) |
DS |
CS、ES、SS |
有效地址EA |
源数据串 |
DS |
CS、ES、SS |
SI |
目的数据串 |
ES |
无 |
DI |
BP作为指针寄存器 |
SS |
CS、DS、ES |
有效地址EA |