8086存储器对地址的寻址方式

地址寻址方式:

含义:程序转移地址的寻址方式,即找出程序的转移地址。转移地址可以在段内,也可以跨段。CPU在执行程序中,下一条要执行指令的地址(CS和IP中)。

段内直接寻址方式(CS×10H+EA):

注:CS内容不变,IP内容改变

当前IP内容加上指令给出的8位(短程转移)或16位(近程转移)位移量。这种寻址方式适用于条件转移指令和无条件转移指令,但条件转移指令只有8位位移量的短程转移。
例:JMP SHORT ALPHA. 设ALPHA=20H,开始执行该指令前,(CS)=1500H,(IP)=3200H,于是该指令在存储器中的起始地址为:15000H+3200H=18200H,而当前的有效地址EA=当前(IP)+ALPHA=3220H,则转移物理地址为:15000H+3220H=18220H。执行完这条指令后,CPU到存储单元地址为18220H中取指令。

段内间接寻址方式

注:CS内容不变,IP内容改变

程序的转移地址存放在寄存器或两个存储器单元中,指令执行时需要用寄存器或存储器单元的内容更新IP内容。例:JMP BX;JMP WORD PTR ADDR;JMP WORD PTR [BX+ARRY]

段间直接寻址方式

注:CS内容改变,IP内容改变

该寻址方式是在指令中直接给出16位的段地址和16位的偏移地址来更新CS和IP的内容。

段间间接寻址方式

注:CS内容改变,IP内容改变

这种寻址方式是由指令中给出的存储器寻址方式求出存放转移地址的四个连续存储单元的地址。指令操作是将存储器的前两个单元送给IP,后两个单元的内容送给CS。
例:JMP DWORD PTR DELTA[BX] (无条件转移指令,段间间接寻址方式)
设当前(CS)=1000H,(IP)=0100H,(DS)=2000H,(BX)=3000H,DELTA=0040H,(23040H)=00H,(23042H)=00H,(23043H)=30H,则间接存储地址按寄存器相对寻址为:(DS)左移4位+(BX)+DELTA=20000H+3000H+0040H=23040H ,于是,可得转移地址为:3000H:5000H,即转移物理地址为:PA=30000H+5000H=35000H。执行本指令后,CS的内容和IP的内容分别变成3000H和5000H,程序转移到存储单元35000H开始执行。

你可能感兴趣的:(8086存储器对地址的寻址方式)