采用寄存器间接寻址时,允许在指令中指定一个8位或16位的偏移量,这样,有效地址由一个基址或变址寄存器的内容加上一个偏移量来得到。即
[BX]
[BP]
有效地址EA=[SI] +(8位偏移量或16位偏移量)
[DI]
6.基址加变址寻址
将一个基址寄存器的内容加上一个变址寄存器的内容形成操作数的有效地址,这种寻址称为基址加变址寻址方式。这种寻址方式中,基址寄存器名和变址寄存器名均由指令指出。如无段跨越前缀,对BX寄存器默认的段寄存器为DS。只要用上寄存器BP,则默认的段寄存器为SS。
7.相对的基址加变址寻址
与寄存器相对寻址类拟,基址加变址寻址也允许带一个8位或16位的位移量。因此,操作数的有效地址是一个基础寄存器的内容加上一个变域寄存器的内容,再加一个8位或16位的偏移量。
8.比例变址寻址
比例变址寻址只能在80386到Pentium微处理器中使用。比例变址是指一对寄存器中的第二个用比例因子2、4或8来乘,产生操作数的内存地址。
(四)指令格式1.8086指令格式
8086/8088指令长度是比较灵活的,可在1~6个字节之间变化,组成如下表所示。
8086CPU指令形式
操作码 MOD字节
偏移量
操作码 MOD字节 DATA/DISP
操作码 MOD字节 DATA/DISPL DATA/DISPH
操作码 MOD字节 DATA/DISPL DATA/DISPH
DATA
操作码 MOD字节 DATA/DISPL DATA/DISPH DATAL DATAH
2.Pentium指令的一般格式
Pentium微处理器指令的一般格式如下图所示。从图中可看到,一条指令是由可任选的指令前缀(可以以任何的次序)、一个或两个源操作码字节、有可能要用的地址说明符(由ModR/M字节和按比例变址基址SIB字节构成)、一个位移量(根据需要)和一个立即操作数数据字段(如果需要的话)等元素组成的。
指令前缀 地址大小 前缀操作数 大小前缀 段超前前缀
0或1 0或1 0或1 0或1
………………………………………………………………
字节数
操作码 Mod R/m SIB 位移量 立即数
1或2 0或1 0或1 0或10,1,2或4
………………………………………………………………
字节数
Pentium指令的一般格式
(五)指令周期
微处理器的工作过程,不外乎取出指令、执行指令,再取出指令、执行指令……这样一个循环过程。一条指令的取出和执行所必需的时间,称为指令周期。指令周期依取出指令的时间不同而不同。
(六)指令的流水线和并行控制