预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共252页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

微机原理与接口技术主要内容:§3.1概述了解:一、指令与指令系统1、指令格式指令格式指令格式:2、指令中的操作数立即数操作数寄存器操作数:存储器操作数存储器操作数例四、指令字长与机器字长3.1.2、指令的执行时间3.1.3、CISC和RISC指令系统(p97)指令格式3.2寻址方式寻址方式8086/8088指令系统中有哪些寻址方式? 立即寻址方式(ImmediateAddressing) 直接寻址方式(DirectAddressing) 寄存器寻址方式(RegisterAddressing) 寄存器间接寻址方式(RegisterIndirectAddressing) 寄存器相对寻址方式(RegisterRelativeAddressing) 基址——变址寻址方式(BasedIndexedAddressing) 基址——变址相对寻址方式(RelativeBasedIndexedAddressing) 隐含寻址3.2.1立即寻址方式(ImmediateAddressing) 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。立即寻址方式(ImmediateAddressing) 立即操作数可以是8位或16位,并且是指令的一部分。立即数据总是紧跟在指令操作码之后并和操作码一起存放在代码段中,因而立即数据总是和操作码一起被放入BIU中的指令队列里,在指令执行时不需再存取存储器。 MOVAH,80HADDAX,1234H MOVECX,123456HMOVB1,12H MOVW1,3456HADDD1,32123456H其中:B1、W1和D1分别是字节、字和双字单元。以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第一操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。使用立即寻址的指令主要用来给寄存器赋初值。立即寻址操作过程示意如图3.2.2直接寻址 操作数的有效地址(EffectiveAddress,EA。在IBMPC中把操作数的偏移地址称为有效地址)是指令的一部分,它与操作码一起存放在代码段中,但操作数一般是在数据段中,因而这种寻址方式是以DS的内容为基准。直接寻址方式(DirectAddressing) 若DS=4000H,则此指令式将数据段中物理地址为42000H单元的内容传送AL寄存器。例: MOVAL,[1200H];[DS*10H+1200H]送AL; MOVAX,[1200H];[DS*10H+1200H]送AL,[DS*10H+1200H+1]送AH; MOVAL,ES:[1200H]; 这里ES是段超越前缀,所以源操作数是在ES*10H+1200H的内存单元中。 MOV[1200H],AL; 目的操作数采用直接寻址,将AL送[DS*10H+1200H]的内存单元。3.2.3寄存器寻址 操作数包含在CPU的内部寄存器中,如寄存器AX、BX、CX、DX等,指令指定寄存器号。 寄存器寻址方式(RegisterAddressing) 对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP或BP; 而对8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH或DL。 特点: 操作数在CPU内,不用通过总线读写,速度快; 目的和源操作数均可采用此寻址方式。 MOVAX,BX; MOVCL,DL; MOVESI,EDI; INCCX; ROLAH,1;3.2.4寄存器间接寻址 操作数的有效地址EA存放在基址寄存器(BX或BP)或变址寄存器(DI或SI)中。寄存器间接寻址例寄存器间接寻址 MOVAL,[BX]; [DS*10H+BX]送AL 设DS=3000H,BX=2000H,(32000H)=45H,则执行该指令后,AL=45H。 MOVAL,[BP]; [SS*10H+BP]送AL 设DS=2000H,SS=1000H,BP=0100H,(10100H)=3BH,(20100H)=4CH。执行这条指令后,AL=3BH。 MOVAX,[BX]; [DS*10H+BX]送AL,[DS*10H+BX+1]送AH寄存器间接寻址寄存器间接寻址3.2.5寄存器相对寻址 操作数的有效地址EA是8位或16位的位移量与基址寄存器BX或基址指示器BP或某个变址寄存器(DI或SI)之和。寄存器相对寻址方式(RegisterRelativeAddressing) MOVAL,5[BX] MOVAL,[BX+5] COUNTEQU5 MOVAL,COUNT[BX] 以上三个例子是等价的,它执行的操作是:[DS*10H+BX+5]送AL。这里,5称为位移量(displacement),它可以是8位或