当前位置:文档之家› 8086操作数的寻址方式

8086操作数的寻址方式


第三章 操作数的寻址方式
二、寄存器寻址方式
参与操作的数据寄存器中。在语句格式中表示为寄存器 名。比如:AL,BX,CX,DS,IP等等。 例1: MOV AX,2050H 目的操作数AX是寄存器寻址方式。 例2: MOV BX,AX 上面指令中的AX和BX都是寄存器寻址方式。
4
第三章 操作数的寻址方式
第三章 操作数的寻址方式
练习3:给定 BX=637DH,SI=2A9BH,偏移量=7237H,试确 定在以下各种寻址方式下的偏移地址是什么? ①直接寻址:_____________ ②使用BX的间接寻址:_____________ ③使用BX的寄存器相对寻址:_____________ ④基址变址寻址:_____________ ⑤基址变址相对寻址: _____________ 答: ①=7237H ②=637DH ③=637DH+7237H ④=637DH+2A9BH ⑤=637DH+2A9BH+7237H
答:偏移地址=0500H+0010H=0510H 物理地址==20000H+0510H=20510H
13
第三章 操作数的寻址方式
七、基址加变址加相对寻址方式
用一个基址寄存器(BX和BP)与一个变址寄存器(DI和SI) 的值相加后,再加一个相对量,将计算结果作为操作数的偏移 地址(根据基址寄存器确定段寄存器:BP对应SS,BX对应DS) 例1: MOV AX,[BX+SI+10H]
16
④MOV AX,[BP]
⑤MOV AX,[BP][SI]
第三章 操作数的寻址方式
例3:假设ARRAY是字数组的首地址,写出将第5个字元素取 出送AX寄存器的指令,要求使用以下几种寻址方式: ①直接寻址 ②寄存器间接寻址 ③寄存器相对寻址 ④基址变址寻址 答案: ① MOV AX, [ARRAY+8] ② MOV SI, ARRAY+8 MOV AX ,[SI] ③ MOV SI,8 MOV AX ,[ARRAY+SI] ④ MOV BX,ARRAY MOV SI ,8 17
③指令执行完后AX为多少? 答案:① 偏移地址= 0500H+0010H=0510H ② 物理地址= 20000H+0510H=20510H ③ 执行完后AX=3412H
18
第三章 操作数的寻址方式
练习
练习1:设(DS)=2000H,(BX)=0100H,(SS)=1000H, (BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。 求下列每条指令源操作数的存储单元地址。 MOV AX,[1234H] MOV AX,[BX] MOV AX,TABLE[BX] MOV AX,[BP] 19 MOV AX,[BP][SI]
五、寄存器相对寻址方式
把参与操作数的偏移地址写在寄存器和一个相对位移量 中,而操作数在内存中。 偏移地址(或有效地址)通过寄存器间接给出,可用的 寄存器为BX、BP、SI、DI。 段寄存器可以指定,也可以不指定。如果没有指定段寄 10 存器,则使用默认的寄存器(BP对应SS,其余3个对应DS)
第三章 操作数的寻址方式
源操作数的物理地址=DS*16+BX+SI+10H
例2: MOV AX,[BP+DI+35H] 源操作数的物理地址=SS*16+BP+DI+35H 注意:①允许段超越。 ②[BX+BP]或[SI+DI]是非法搭配。
14
第三章 操作数的寻址方式
习题讲解
例1:指出下列MOV指令的源操作数的寻址方式(TABLE是 一个变量名)(提示:TABLE代表地址) ①MOV AX,1234H ①立即数寻址 ②MOV AX,BX ②寄存器寻址 ③MOV AX,[BX] ③寄存器间接寻址 ④MOV AX,TABLE ④直接寻址 ⑤MOV AX,[1234H] ⑤直接寻址 ⑥MOV AX,[BX+1234H] ⑥寄存器相对寻址 ⑦MOV AX,[BP][SI] ⑦基址变址寻址 ⑧MOV AX,[BX+SI-1234H] ⑧基址变址相对寻址 15
三、直接寻址方式
把参与操作的数据的偏移地址写在指令中,而操作数在 内存中。物理地址的计算需要利用段寄存器(默认为DS)。
DS寄存器 段地址 指令 偏移地址 存储器 操作数
例1: MOV AX,[2050H] 原操作数 [2050H] 是直接寻址方式。
5
第三章 操作数的寻址方式
指令MOV AX,[2050H]的示意图 执行结果 AX=AA55H
1
第三章 操作数的寻址方式
1、微机指令格式(补充):操作码 2、说明:
操作码:每条指令必有。
操作数
操作数:不同的指令其操作数的个数不同 例如: MOV AX,2050H
在上面的MOV指令中,MOV是操作码,AX和2050H是操作 数。其中: AX是目的操作数, 2050H是源操作数。该指令的 作用是将2050H存入寄存器AX中。
例1: MOV [BX+10H],2050H 源操作数的物理地址=DS*16+BX+10H 例2: MOV AX,[BP+15H] 源操作数的物理地址=SS*16+BP+15H 例3:把TABLE是在数据段定义的一个字节数组的首地址标号 (也称变量名),又设:MOV SI,5 则指令:MOV AL,TABLE[SI] 是寄存器相对寻址 指令也可写成:MOV AL,[TABLE+SI] 例4:TABLE是数据段中定义的一个变量,假设它在数据段中的 偏移地址为0100H,有指令:MOV AX,TABLE[SI] ,若 (DS)=2000H,(SI)=00A0H,(201A0H)=12H,(201A1H)=34H,则 物理地址物理地址为多少? 答:物理地址=20000H+0100H+00A0H=20000H+01A0H=201A0H 11
第三章 操作数的寻址方式
六、基址加变址寻址方式
用一个基址寄存器(BX和BP)与一个变址寄存器(DI和SI) 的值相加,计算结果作为操作数的偏移地址。
指令中 基址寄存器 变址寄存器 基址寄存器 基地址 变址寄存器 变地址 段寄存器 段地址 存储器 操作数
偏移地址
注意: ①允许段超越。 ②[BX+BP]或[SI+DI]是非法搭配。 ③根据基址寄存器确定段寄存器:BP对应SS,BX对应DS
第三章 操寄存器中,而操作数在内 存中。物理地址的计算需要利用段寄存器。 偏移地址(或有效地址)通过寄存器间接给出,可用的 寄存器只能为BX、BP、SI、DI。 段寄存器可以指定,也可以不指定。如果没有指定段寄 存器,则使用默认的寄存器(BP对应SS,其余3个对应DS) 例1: MOV [BX],2050H 目的操作数[BX]是寄存器间接寻址方式。 例2: MOV AX,[BP] 原操作数[BP]是寄存器间接寻址方式。 8
第三章 操作数的寻址方式
观察下面指令中的源操作数的地址计算方法:
例1:MOV AX,[BX] 源操作数的物理地址=DS×16+BX 例2: MOV AL,[BX] 源操作数的物理地址= DS×16+BX 例3: MOV AX,[SI] 源操作数的物理地址= DS×16+SI 例4: MOV AX,[DI] 源操作数的物理地址= DS×16+DI 例5: MOV AX,[BP] 源操作数的物理地址= SS×16+BP 例6: MOV AX,ES:[BX]
12
第三章 操作数的寻址方式
例1:写出下面指令中的源操作数的物理地址计算方法 1、MOV AX,[BX+SI] 或者 MOV AX,[SI+BX] 答:源操作数的物理地址=DS*16+BX+SI 2、MOV AX,[BP+DI] 或者 MOV AX,[BP][DI] 答:源操作数的物理地址=SS*16+BP+DI 例2: MOV AX,[BX] [SI] 或写为: MOV AX,[BX+SI], 若(DS)=2000H,(BX)=0500H,(SI)=0010H,则偏移地址为多 少?物理地址为多少?
第三章 操作数的寻址方式
例4:指令MOV AX,[BX] [SI] ( 或写为MOV AX,[BX+SI] ) 若(DS)=2000H,(BX)=0500H,(SI)=0010H, (2050FH)=00H,(20510H)=12H,(20511H)=34H, (20512H)=56H。则: ①偏移地址为多少? ②物理地址为多少?
第三章 操作数的寻址方式
例2:假设TABLE的物理地址为2000AH,(DS)=2000H, (BX)=0100H,(SS)=1000H, (BP)=0010H, (SI)=0002H,
求下列每条指令源操作数的存储单元地址。
①MOV AX,[1234H] ②MOV AX,[BX] ③MOV AX,TABLE[BX] 答: ① 21234H ② 20100H ③ 4010AH ④ 10010H ⑤ 10012H
9
第三章 操作数的寻址方式
例6:已知指令 MOV AX,[BX]。如果(DS)=3000H,(BX)=1010H, (31010H)=12H,(31011H)=24H,则操作数的物理地址为多少? 指令执行完后AX为多少? 答:物理地址=30000H+1010H=31010H,执行完后,(AX)=2412H
20
第三章 操作数的寻址方式
练习4:已知DS=2000H,BX=0100H,SI=0002H,存储 单元 [20100H] ~[20103H]依次存放12H、 34H、 56H、 78H,[21200H] ~[21203H]依次存放2AH、 4CH、 B7H、 65H,说明下列每条指令执行后AX寄存器的内容。 答: ① 1200H ①MOV AX,1200H ② 0100H ②MOV AX,BX ③ ③MOV AX,[1200H] ④ ④MOV AX,[BX] ⑤ ⑤MOV AX,[BX+1100H] ⑥ 21 ⑥MOV AX,[BX+SI] ⑦
相关主题