




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第三章8086的寻址方式和指令系统 指令有单操作数、双操作数和无操作数之分。如果是双操作数指令,要用逗号将两个操作数分开,逗号右边的操作数称为源操作数,逗号左边的为目的操作数。8086的寻址方式二、寄存器寻址方式 2.段超越前缀 如果要对代码段、堆栈段或附加段寄存器所指出的存储区进行直接寻址,应在指令中指定段超越前缀。3.符号地址(变量名) 在汇编语言中还允许用符号地址代替数值地址,实际上就是给存储单元起一个名字,这样,要与这些单元打交道,只要使用其名字即可,不必记住具体数值是多少。例如MOVAX,AREA1这里的AREA1就是操作数的符号地址,该指令执行后,将从有效地址为AREA1的存储单元中取出一个字送到AX中去。四、寄存器间接寻址方式例如MOVBX,[SI] 设DS=1000H,SI=2000H,(12000H)=3456H 则物理地址=DS×16+SI =10000H+2000H =12000H 此指令的功能就是(12000H)字→BX,因此指令执行后BX=3456H。执行过程如下图所示。指令MOVBX,[SI]的执行过程例如指令MOVAX,[BP],则默认操作数在堆栈段中,操作数的物理地址=SS×16+BP。 设SS=4000H,BP=1000H,(41000H)=5678H 则物理地址=SS×16+BP =40000H+1000H =41000H 此指令的功能就是(41000H)字→AX,因此指令执行后AX=5678H。执行过程如下图所示。指令MOVAX,[BP]的执行过程寄存器间接寻址方式的指令中也可以指定段超越前缀来从默认段以外的段中取得数据,如: MOVBX,DS:[BP] 物理地址=DS×16+BP MOVAX,ES:[DI] 物理地址=ES×16+DI五、寄存器相对寻址方式 操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的8位或16位位移量之和。这种寻址方式与寄存器间接寻址十分相似,主要区别是前者在有效地址的基础上还要加一个位移量。同样,当指令中指定的寄存器是BX,SI或DI时,默认的段寄存器是DS,当指定寄存器是BP时,默认的段寄存器是SS。指令MOVBX,COUNT[SI]的执行过程六、基址变址寻址方式 操作数的有效地址是一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容之和,两个寄存器均由指令指出。 若基址寄存器BX时,段寄存器用DS; 若基址寄存器BP时,段寄存器用SS。指令MOVAX,[BX][SI]的执行过程七、相对基址变址寻址方式 操作数的有效地址是一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容,再加上指令中指定的8位或16位位移量之和。 若基址寄存器BX时,段寄存器用DS; 若基址寄存器BP时,段寄存器用SS。指令MOVAX,MASK[BX][SI]的执行过程从以上这些寻址方式可以看到,在涉及到操作数的地址时,常常要在指令中使用方括号,有关带方括号的地址表达式必须遵循下列规则:③由于方括号有相加的含义,下面几种写法都是等价的: 6[BX][SI] [BX+6][SI] [BX][SI+6] [BX+SI+6]八、其它寻址方式3.一条指令有几种寻址方式 前面介绍的各种寻址方式都是针对源操作数的,目的操作数均用寄存器来表示。实际上,目的操作数也可以除立即寻址方式以外的所有寻址方式指定。3-2指令的机器码表示方法 通常,计算机用户采用汇编语言编写 程序时,一般可不必了解每条指令的机器 码。不过,若要透彻了解计算机的工作原 理,以及能看懂包含机器码的程序清单, 对程序进行正确的调试、排错等,就需要 熟悉机器语言。所以我们要简单介绍一下 机器语言指令的基本概念和编码方式。 2.机器语言指令的编码特点 对于Z80、8085等8位微处理器,进行 指令编码是很容易的事,只要有一张指令 编码表,汇编语言源程序与机器码之间的对应关系就一目了然,很容易通过查表求 出每条指令的机器码。但对于8086系统来 说,由于其很多种寻址方式,很难列出一 张8086指令与机器语言的对照表。但我们 可以为每种基本指令类型给出一个编码格 式,对照格式填上不同的数字来表示不同 的寻址方式、数据类型等,就能求得每条 指令的机器码。指令通常由操作码和操作 数两部分组成,每条指令的操作码列于附 录B中。二、 机器语言指令代码的编制 1.编码格式说明 我们用寄存器之间或寄存器与存储器 之间交换数据的MOV指令,来说明指令的 编码格式,具体格式如图3-7所示。W(位):说明传送数据的类型; W=0,为字节 W=1,为字 D(位):标明数据传送的方向; D=0,数据从寄存器传出 D=1,数据传送到寄存器 REG(3位):说明寄存器(段寄存器除 外

王子****青蛙
实名认证
内容提供者


最近下载