8086指令系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章8086指令系统

第一节8086的寻址方式

第二节8086的指令系统

§4-1 指令的寻址方式

指令的基本组成:

操作码,操作数(0,1,或2个)

汇编语言指令的基本格式:

指令助记符操作数表示符1,操作数表示符2;注释

一、概述

1.操作数(Operand)

操作数是指令的基本构成要素。根据指令的功能,指令中的操作数可以是如下三种:•无操作数,例:HLT;

•单一操作数,例:INC AX;

•双操作数,例:ADD AX,1234H;

在双操作数情况下,第一个操作数通常保存运算结果,故称目的操作数,第二个操作数则称为源操作数。

2.寻址方式(Addressing Mode)

指令由操作码和操作数组成,而操作数部分通常不是直接给出操作数的数据本身,而是给出该数据的位置信息。

指令中,操作数位置信息的表示方式称为寻址方式。

所谓寻址,就是按照指令中所给出的操作数位置信息,找出操作数的数据来。

3.操作数可能的存放位置

程序存储器(或内存的代码段)中,这种操作数称为立即数。

数据存储器(或内存的数据段)中,这种操作数称为存储器操作数。

CPU的内部寄存器中,这种操作数称为寄存器操作数。

按照操作数的存放位置,将操作数的寻址方式分为三大类:♠立即数寻址

♠寄存器寻址

♠存储器寻址

二、立即数寻址方式

1.特点

–指令代码中操作数部分就是数据本身。

因此,总线操作中除取指周期外,不需要额外的取操作数周期。

2.举例

–MOV AL,80H ;

将字节数80H送入AL中。

指令代码(B0H,80H)中,80H即为操作数本身。

–MOV AX,1090H ;

将字型数1090H送到AX中。

指令代码(B8H,90H,10H)中,1090H即为操作数本身。

3.用途

立即数寻址方式主要用来对寄存器或存储器单元赋值。

4.注意事项

立即数可以为8位,也可以为16位;

立即数只能作为源操作数。

三、寄存器寻址方式

1.特点

操作数在CPU内部寄存器中。

因此,总线操作中除取指周期外,也不需要额外的取操作数周期。

2.举例

MOV AL,80H ;将字节数80H送入AL中。

指令代码(B0H,80H)中,操作码B0H中隐含了目的操作数为寄存器AL。

本条指令中,目的操作数为寄存器寻址,源操作数为立即数寻址。

OR AX,BX ;

将BX内容与AX内容相或,结果回送到AX中。

目的操作数和源操作数均为寄存器寻址。

3.用途

绝大部分操作功能都是借助于寄存器(尤其是累加器)来完成的,因此,通

常是先将立即数、存储器数据或IO接口

数据暂存与寄存器中,以便于后续指令

直接进行操作。

4.注意事项

16位操作数,寄存器可用AX、BX、CX、DX、SI、DI。必要时,也可以用SP、BP、DS、ES、

SS、CS,但CS只能做源操作数。

8位操作数,寄存器可用AH、AL、BH、BL、CH、CL、DH、DL。

四、存储器寻址方式

1.特点

操作数在数据存储器(数据段)中,指令操作数部分仅是操作数在内存中的位

置信息。

因此,总线操作中除取指周期外,还需要额外的取操作数周期。当然,取数之前,必须先计算出存放

地址。

2.举例1

MOV AX,[3100H] ;

指令代码(A1H,00H,31H)中,操作数部分直接指明操作数在数据段的存放地址,即逻辑地址为

DS:3100H。这种方式称为存储器直接寻址。

2.举例2

MOV AX,[SI] ;

将以DS为段地址、以SI为偏移地址的存储器字单元的内容送到累加器AX中。

指令代码(89H,43H)中,操作数部分间接给出操作数在数据段的存放地址,即逻辑地址为DS:

(SI),寄存器SI的内容才是操作数的偏移地址。

这种方式称为存储器间接寻址。由于间接寻址寄

存器为变址寄存器,故这种间接寻址方式又称为

存储器变址寻址。

变址寻址寄存器有SI和DI,对应的段寄存器均为DS。

2.举例3

MOV AX,[BX] ;

将以DS为段地址、以BX为偏移地址的存储器字单元的内容送到累加器AX中。

指令代码(89H,25H)中,操作数部分间接给出操作数在数据段的存放地址,即逻辑地址为DS:

(BX),寄存器BX的内容才是操作数的偏移地址。

这种方式称为存储器间接寻址。由于间接寻址寄

存器为基址寄存器,故这种间接寻址方式又称为

存储器基址寻址。

基址寻址寄存器有BX和BP,BX对应的段寄存器为DS,而BP对应的段寄存器为SS。

2.举例4——组合

MOV AX,[BX+SI+0200H] ;

将以DS为段地址、以[(BX)+(SI)+0200H]为偏移地址的存储器字单元的内容送到累加器AX中。

MOV AX,[BX+DI+34H] ;

将以DS为段地址、以[(BX)+(DI)+34H]为偏移地址的存储器字单元的内容送到累加器AX中。

MOV AX,[BP+SI+0200H] ;

将以SS为段地址、以[(BP)+(SI)+0200H]为偏移地址的存储器字单元的内容送到累加器AX中。

MOV AX,[BP+DI+34H] ;

将以SS为段地址、以[(BP)+(DI)+34H]为偏移地址的存储器字单元的内容送到累加器AX中。

相关文档
最新文档