文档详情

微机原理与接口技术复习资料(3,4)章.docx

发布:2018-05-24约6.93万字共99页下载文档
文本预览下载声明
微机原理与接口技术第三章 8086的寻址方式和指令系统§3-1 8086的寻址方式概述 计算机的指令包括:操作码 + 操作数 ↓ ↓操作的性质 操作的对象 ↓存放寄存器、存储器、I/O端口地址、立即数(由寻址方式决定)寻址方式:指令中说明操作数所在地址的方法。指令分类:单操作数、双操作数、无操作数。(双操作数指令形式:操作码 目的操作数,源操作数)各种寻址方式指令执行速度不同:操作数在寄存器中指令执行速度快:在CPU内部立即执行;操作数在指令队列中(立即数寻址)指令执行速度较快;操作数在存储器中指令执行速度较慢:通过总线与CPU交换数据。CPU进行读/写存储器的操作:把一个偏移量送到BIU,计算出20位物理地址;执行总线周期存取操作数。寻址方式举例:8086指令的寻址方式类型一、立即寻址方式 ( Immediate Addressing )含义:操作数是立即数(即8位或16位常数),直接包含在指令中。特点:翻译成机器码时,立即数是指令的一部分,紧跟在操作码之后存放在代码段内。在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。16位数:高字节→代码段的高地址单元,低字节→低地址单元;作用:常用于给寄存器赋初值。例 MOV CX,2A50H 解:将立即数2A50H送到CX寄存器中。(又例: MOV CL,20H)注意:①立即数可以送到寄存器、一个存储单元(8位)、两个连续的存储单元(16位)中去;②立即数只能作源操作数,不能作目的操作数;③以A~F打头的数字出现在指令中时,前面必须加数字0。以免与其它符号相混淆(如:0AF22H)。二、寄存器寻址方式 (Register Addressing) 含义:操作数包含在寄存器中,寄存器的名称由指令指定。特点:16位操作数:寄存器可以AX、BX、CX、DX、SI、DI、SP和BP等。8位操作数:寄存器AH、AL、BH、BL、CH、CL、DH和DL。作用:寄存器之间传递数据。例: MOV DX,AX解: (AX)送到DX寄存器中。(AX内容不变)( 又例: MOV BL,AL )注意:源操作数的长度必须与目的操作数一致。(注:以下寻址方式下,指令的操作数在存储器中,要先求物理地址才能获得操作数。)三、直接寻址方式(Direct Addressing) 含义:存储单元的有效地址EA(即:操作数的偏移地址)直接由指令给出。特点:有效地址存放在代码段中(指令的操作码之后),而该地址单元中的数据总是存放在存储器中。操作数的物理地址=16×DS + EA作用:实现对存储单元的读/写操作。例 MOV AX,[2000H]解:设DS = 3000H; (32000H)= 1234H 由指令得:EA = 2000H (16位逻辑地址) 物理地址 = 16×3000H + 2000H = 32000H (20位,20根地址线) 则: AX = 1234H 指令执行过程如图所示。(注:如用AL替代AX,则AL=34H)注意:DS:默认的段寄存器;指令中有效地址的表示:[立即数] ,以便与立即数相区别;关于段超越前缀:有效地址前用 “:”(称为修改属性运算符)修改运算属性。可对代码段(CS)、堆栈段(SS)或附加段(ES)寄存器直接寻址。例:MOV AX , ES : [3000H] ; (物理地址=16×ES + 3000H)关于符号地址:用来代替数值地址,即给存储单元起个名字。 例: AREA1 DW 2000H ;伪指令定义 ……… MOV AX,AREA1 ;或:MOV AX,[AREA1]解:如右图所示, DS=3000H时, AX = 1234H例: AREA1 EQU 2000H ;伪指令定义 ……… MOV AX,AREA1解: AX = 2000H四、寄存器间接寻址方式 (Register Indirect Addressing)含义:操作数的有效地址放在寄存器中。特点:使用寄存器:基址寄存器BX、 基址指针寄存器BP,变址寄存器SI、DI 。操作数的物理地址=16×DS+BX/SI/DI或=16×SS+BP作用:有效地址可以存放在寄存器中。 例 MOV BX,[SI]解:设:DS=1000H,SI=2000H,(12000H)=318BH 则:物理地址 = 16×DS + SI= 10000H + 2000H= 12000H 指令执行后,BX=318BH,指令执行过程如图所示。注意:寄存器名称外必须加方括号,以区别寄存器寻址方式; 段超越前缀用来从默认段以外的段中取得数据; 例 MOV BX,ES
显示全部
相似文档