微型计算机系统 (4).ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:58 大小:2MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微型计算机系统 (4).ppt

微型计算机系统(4).ppt

预览

免费试读已结束,剩余 48 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章第4章8086指令系统系统寻址方式是指在指令中用于说明操作数所在地址的方法。8086指令系统把寻址方式分为与数据有关的寻址方式和与地址有关的寻址方式两类。(1)立即寻址方式定义:有一部分指令所用的8位或16位操作数就直接放在指令中,紧跟在操作码的后面,与操作码一同放在代码段区域中。用途:主要用来给寄存器或储存单元赋值。MOVAL,80H(2)寄存器寻址方式定义:指令中操作数由寄存器提供的寻址方式。MOVDL,ALINCCX(3)直接寻址方式定义:有效地址EA在指令的操作码后面直接给出的寻址方式。说明:默认段寄存器DS,若操作数在其他段,应在指令中使用段跨越前缀。即:EA=段寄存器:位移量;PA=(段寄存器)左移4位+位移量MOVAX,[1000H](4)寄存器间接寻址方式定义:EA存放在由指令指明的寄存器中;只有通过访问寄存器才间接得到EA。(BX)(SI)→操作数存放在由DS指示的数据段。(DI)PA=(DS)左移4位+(BX)/(SI)/(DI)(BP)→操作数存放在由SS指示的堆栈段中。PA=(SS)左移4位+(BP)如果DS=2000H,SI=1000H,[21000H]=40H,[21001]=32H。MOVAX,[SI]指令执行后结果:AX=3240H。(5)寄存器相对寻址方式定义:以寄存器(BX、SI、DI和BP)内容为基地址加上位移量(8位或16位)得到有效地址EA的寻址方式。若选择BX、SI、DI寄存器相对寻址,存放操作数的段寄存器默认为DS,若选择BP寄存器相对寻址,则对应的段寄存器默认为SS。如果操作数不在默认段,则要用前缀指出相应的段寄存器名。即操作数的有效地址为:(6)基址变址寻址方式定义:由基址寄存器(BX,BP)的内容加上变址寄存器(SI,DI)的内容得到操作数有效地址EA的寻址方式。操作数的有效地址为:(7)基址变址相对寻址方式由基址寄存器(BX,BP)的内容加上变址寄存器(SI,DI)的内容,再加上位移量(8位或16位)得到操作数有效地址EA的方式称为基址变址相对寻址方式。操作数的有效地址为:MOVAX,[BX+SI+4500H]若DS=3000H,BX=2000H,SI=1000H,[37500H]=56H,[37501H]=12H,指令执行后AX=1256H。在8086指令系统中,有一些对指令的地址进行寻址的指令,这种寻址方式叫与地址有关的寻址方式。(1)段内直接寻址用段内直接寻址方式时,指令中给出一个相对位移量,有效转移地址为IP的当前内容再加上一个8位或16位的位移量。段内直接转移寻址也称为相对寻址。(2)段内间接寻址用段内间接寻址方式时,有效地址总是在寄存器中或者在内存单元中,段内间接寻址方式可适用于于无条件转移指令和调用指令。(3)段间直接寻址用段间直接寻址方式进行寻址时,指令中要给出转移地址的段值和偏移量。产生转移时,将段值送入CS中,将偏移量送入IP中。用这种寻址方式,可以提供一种使程序从一个代码段转移到另一个代码段的方法。(4)段间间接寻址在段间间接寻址方式下产生转移时,IP和CS的内容用内存中2个连续的字来替换。而对这2个内存字,可以通过对数据的各种寻址方式来访问,不过立即数寻址方式和寄存器寻址方式除外。段间转移和段内间接转移必须是无条件转移指令和调用指令。换句话说,条件转移指令只能用段内直接寻址方式,而且转移范围只能是指令所在位置前后的-128~+127个单元。8086/8088的指令系统中包含133条基本指令,可以分为以下六个功能组。(1)传送指令;(2)逻辑运算和移位指令;(3)控制转移指令;(4)算术运算指令;(5)串操作指令;(6)处理器控制指令。8086数据传送指令有如下四类:(1)通用传送指令;(2)累加器专用传送指令;(3)地址传送指令;(4)标志传送指令。1.通用传送指令(GeneralPurposeTransfer)通用传送指令中包括MOV、XCHG、堆栈和地址传送指令。(1)最基本的传送指令格式:MOVDST,SRC功能:把一个字节或字的源操作数送到目标操作数所在的单元。例:MOVAL,BL;BL中的8位数据送AL(2)堆栈操作指令堆栈操作指令分为:入栈指令PUSH和出栈指令POP。格式:PUSHSRC功能:堆栈指针SP减2后,把一个字的源操作数传送到目的操作数所在的单元。格式:POPDST功能:把SP指出的栈顶中的一个字传送到目标操作数所在的单元,然后加2。说明:堆栈是按“先进后出”原则工作的一段存储器区域。例:PUSHAX;将AX的内容推入堆栈PUSHDS;将DS的内容推入堆栈POPBX