第4章 8086寻址方式与指令系统

合集下载

第4章 8086寻址方式与指令系统

第4章 8086寻址方式与指令系统

⑦ MOV [1000H],DX
⑧ MOV 6[BX],CX ⑨ MOV VAR+5,AX
第4章 8086寻址方式与指令系统
解:
(1)寄存器寻址方式 (2)寄存器间接寻址方式,PA=10300H (3)寄存器间接寻址方式,PA=20200H (4)直接寻址方式,PA=10060H (5)基址变址寻址方式,PA=10500H (6)相对基址变址寻址方式,PA=12306H (7)直接寻址方式,PA=11000H (8)寄存器相对寻址方式,PA=10306H (9)直接寻址方式,PA=10065H

25H 12H

数据段

FFFFFH

第4章 8086寻址方式与指令Fra bibliotek统4.2.5 寄存器相对寻址
操作数的有效地址EA是指令中指定的基址或变址寄存器的 值与位移量之和,可用寄存器:BX、BP、SI、DI。 操作数在内存,使用SI、DI、BX寄存器时,操作数默认存 放在数据段中;使用BP寄存器时,操作数默认存放在堆栈 段中,允许段超越。 位移量是符号数,8位偏移量的取值范围为:00~0FFH(即 +127D~-128D); 16位位移量的取值范围为:0000~0FFFFH(即+32767D~32768D)。 8086汇编允许用下面三种形式表示相对寻址,它们是等效 的。 MOV AX,[BX]+8 MOV AX,8[BX] MOV AX,[BX+8]

代码段

25H 12H

数据段

FFFFFH

第4章 8086寻址方式与指令系统
约束条件及说明 ① 指令中没有用前缀说明操作数存放在哪个段,则操作数默认

第4章 指令系统和寻址方式

第4章 指令系统和寻址方式
操作码 MOD REG R/M* DISP-L DISP-H DATA-L DATA-H
4
第4章 8086CPU指令系统 4.1.4 操作数的寻址方式
在指令中,指定操作数或操作数存放位置的方法称为寻址方 式。 8086/8088CPU指令系统的操作数的来源有以下4种:立即数、 寄存器操作数、存储器操作数、端口操作数。 微机系统中除端口操作数外,有七种基本的操作数寻址方式: 立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接 寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对 基址加变址寻址方式,后五种寻址方式是确定存储器操作数有 效地址的计算方法。
第4章 8086CPU指令系统
5. 寄存器相对寻址(Register Relative Addressing)
操作数的有效地址EA 是8位或16位的位移量 (DISP8/16)与基址寄存器BX或基址指示器BP或某个变
址寄存器(DI或SI)之和,即
EA=(BX或BP或SI或DI)+DISP8/16。 MOV AX,[BX+10H]指令操作示意图如图4.6所示。
7
第4章 8086CPU指令系统
在存储器操作数的五种寻址方式中,数据都存放于存储单元
中,在指令操作过程中需要 BIU 通过一个总线周期的访问,才 能获得操作数。因此,存储器操作数的寻址方式是怎么根据给 出的操作数地址因子,计算出操作数的有效地址 EA(Effective Address)。有效地址EA是以下三个地址因子的组合,由CPU的 执行单元EU计算出来。
13
第4章 8086CPU指令系统
代码段 10000H 1000H:0000H
操作码 BX 20H 00H 操作码
1000H:0100H

第四章 8086指令系统(改)PPT课件

第四章 8086指令系统(改)PPT课件

× MOV AX, BL
; 字长不同
× MOV ES: AX, DX ; 寄存器与段无关
指令操作例:MOV SI,AX ; SI (AX) 指令执行前:(AX)=2233H 指令执行后:(AX)=2233H,(SI)=2233H
AX
2233H
SI
四、 寄存器间接寻址
操作数的偏移地址(有效地址EA)放在寄存器中 只有SI、DI、BX和BP可作间址寄存器
高级语言 面向问题或面向过程的独立于具体机器的语言。
特点:语言规范,可移植性强,内部操作过程比较 复杂,执行时间长。
二、汇编语言指令的构成
每条指令由操作码和操作数两部分组成
目的

说明要执行的 操作对象,可以 是什么操作 有0个、1个或2个
指令举例:
MOV AX , BX
操作码 操作数 ADD AX,[SI+6] INC [BX] HLT
+
8位 16位
位移量
(DI)
(BX) (BP)
EA = (SI)
(DI)
以BX、SI、DI间接寻址,默 认的段寄存器为DS ;以 BP 间接寻址时,默认的段寄存
例: MOV AX, [BX] 器为SS 。
MOV CL, [DI]
错误例 :
× MOV AX, [DX]
× MOV CL, [AX]
寄存器间接寻址过程示意图
MOV [BX],CL ( 设BX原值为2010H)
寻找操作数的地址
寻找要执行的下一条指令的地址
在8086指令系统中,说明操作数所在地址
的寻址方式可分为8种:
①立即寻址
⑤ 寄存器相对寻址
②直接寻址
⑥基址-变址寻址

第4章 指令系统

第4章 指令系统

3. 规整性
规整性包括指令系统的对称性,匀齐性,指令 格式和数据格式的一致性.对称性是指:在指 令系统中所有的寄存器和存储器单元都可同等 对待,所有的指令都可使用各种寻址方式.匀 齐性是指:一种操作性质的指令可以支持各种 数据类型.
4.兼容性 兼容性
系列机各机种之间具有相同的基本结构和共 同的基本指令集,因而指令系统是兼容的,即 各机种上基本软件可以通用.但由于不同机种 推出的时间不同,只能做到"向上兼容" .
目前在指令操作码设计上主要采用以下两 种编码方式 1. 固定长度操作码 操作码的长度是固定的,且集中放在 指令字的一个字段中,指令的其余部分全 部用于地址码.例如IBM370机和VAX-11系 列机,操作码的长度均为8位,可表示256 种不同的操作. 2. 可变长度操作码
4.2.2 地址码
地址码用于指定操作数和存放运算结果的地址, 通常称为操作数.操作数可以是一个直接的数或者 是一个数据所在的地址,它以空格与操作码分开.
例如: MOV AX,[SI]
假如用户用高级语言编程,根本不用 考虑寻址方式,因为这是编译程序的事,但 若用汇编语言编程,则应对它有确切的了解, 才能编出正确而又高效的程序.此时应认真 阅读指令系统的说明书,因为不同计算机采 用的寻址方式是不同的,即使是同一种寻址 方式,在不同的计算机中也有不同的表达方 式或含义. 思考:设计指令系统时,数据的寻址方式 越多越好吗?为什么?
4.直接寻址 指令中的形式地址A就是操作数的真实 地址EA,这种寻址方式称为直接寻址方式, 又称为绝对寻址方式.如图5-3所示.
OP 寻址特征 A 主存 A 操作数
图5-3 直接寻址方式
例如: MOV AL,[0080H] MOV AX,[1000H]

第4章8086,8088微机汇编语言程序设计

第4章8086,8088微机汇编语言程序设计

2)段内偏移量(Offset) 它是标号与段起始地址之间相距的字节数,为一16位 无符号数。 3)类型(Type) 类型表示该标号所代表的指令的转移范围,分NEA R(近)与FAR(远)两种。NEAR类型的标号仅在 同一段内使用,用2字节指针给出转移的偏移量属性(即 只改变IP值,不改变CS值);而FAR类型的标号无此限 制,必须用4字节指针指出转移的段地址与段内偏移量。 当标号用作JMP或CALL等指令的目标操作数时,若 为段内转移或调用则采用NEAR类型;若为段间转移或 调用则应当采用FAR类型。 JMP FAR PTR LINE
第4章 8086/8088汇编语言程序设计
汇编语言程序设计是开发微机系统软件的基本 功,在程序设计中占有十分重要的地位。
由于汇编语言具有执行速度快和易于实现对硬件的控 制等独特的优点,所以至今它仍然是用户使用得较多的程 序设计语言。特别是在对于程序的空间和时间要求很高的 场合,以及需要直接控制设备的应用场合,汇编语言更是必 不可少了。 由于汇编语言本身的特点,本章将选择目前国内广泛 使用的IBM PC机作为基础机型,着重讨论8086/8088汇编 语言的基本语法规则和程序设计的基本方法,以掌握一般 汇编语言程序设计的初步技术。
(1)立即操作数 立即操作数在指令中直接给出,不需要使用 寄存器,也不涉及访问数据区的操作,只能作为 源操作数。立即操作数是整数,可以是1字节或 2字节。在汇编语言中,立即操作数用常量(包 括数值常量和符号常量)以及由常量与有关运算 符组成的数值表达式表示。 如:MOV BX,1000+5*3 (2)寄存器操作数 通用寄存器AX、BX、CX、DX、BP、 SP、DI、SI以及段寄存器CS、SS、D S、ES都可以作为操作数。如:MOV BX,AX

微机原理及应用习题库与答案

微机原理及应用习题库与答案

微机原理及应用习题库与答案习题与练习题1第1章绪论1.计算机分那几类?各有什么特点?2.简述微处理器、微计算机及微计算机系统三个术语的内涵。

答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。

微计算机包括80X86微处理器有几代?各代的名称是什么?80386/80486:32位机。

4.采用一种总线标准进行微型计算机的硬件结构设计具有什么优点?5.一个总线的技术规范应包括哪些部分?6.总线的定义是什么?简述总线的发展过程。

7.微型计算机系统总线由哪三部分组成?它们各自的功能是什么?第3章微处理器结构及微计算机的组成1.8086是多少位的微处理器?为什么?2.EU与BIU各自的功能是什么?如何协同工作?3.086/8088与其前一代微处理器8085相比,内部操作有什么改进?4.8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。

AX、BX、CX、确定5ch+98h后各标志位的值。

并说明结果的正确性。

5.8086对存储器的管理为什么采用分段的办法?6.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。

7.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。

8.8086/8088为什么采用地址/数据引线复用技术?9.8086与8088的主要区别是什么?10.怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同11.8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?12.8086基本总线周期是如何组成的?各状态中完成什么基本操作?13.结合8086最小模式下总线操作时序图,说明ALE、M/IO#、DT/R#、RD#、READY信号的功能。

14.8086中断分哪两类?8086可处理多少种中断?15.8086可屏蔽中断请求输入线是什么?“可屏蔽”的涵义是什么?16.8086的中断向量表如何组成?作用是什么?17.8086如何响应一个可屏蔽中断请求?简述响应过程。

8086寻址方式和指令系统

8086寻址方式和指令系统

表达式是由操作数和运算符组成。即用一个运 算符可以对一个或几个操作数进行运算,构成一个表 达式。 表达式中常用的运算符有以下几种: ⑴ 算术运算符:+、-、*、/和MOD。 ⑵ 逻辑运算符:AND、OR、NOT和XOR。 ⑶ 关系运算符:EQ、NE、LT、GT、LE、GE。 结果只有两个全1或全0。如,
MOV BX,TYPE ARRAY
MOV CX,TYPE STR …

; (BX)←4
;(CX)←1
● LENGTH运算符。如果一个变量已用重复操作符DUP 说明其变量的个数,则利用LENGTH 运算符可得到这个变量的 个数。如果未用DUP说明,则得到的结果总是1。 例如,上面的例子中已经用“10 DUP(?)”说明变量ARRAY 的个数,则LENGTH ARRAY的结果为10。
为段地址和偏移地址等。分析运算符有SEG 、OFFSET 、 TYPE、SIZE和LENGTH等。
分析运算符表达式
带分析运算符的表达式 OFFSET 变量名或标号 SEG 变量名或标号 TYPE 变量名或标号 SIZE LENGTH 变量名 变量名 表达式的意义
取出变量名或标号所在段的偏移地址 取出变量或标号所在段的段地址 取出变量或标号的类型 取出变量的大小 取出变量的长度
5.1.2 汇编语言语句的类型和格式
1. 语句分类
① 指令性语句:也称指令语句,指令系统的指令, 汇编后产生目标代码。
② 指示性语句:也称伪指令语句,告诉汇编程序 如何汇编,汇编后不产生目标代码。
③ 宏指令语句:自定义语句,由指令语句和伪指 令语句组成的指令集合,不展开时不产生目标代码。
2. 语句的格式 指令语句与伪指令语句的格式是类似的。一般情况下,汇编 语言的语句可以由1~4部分构成: [名字] 助记符 [操作数] [;注释] 其中带方括号的部分表示任选项,既可以有,也可以没有。 例5.1中有如下语句:

8086寻址方式与指令系统

8086寻址方式与指令系统
堆栈是一种单端操作的存储结构,有两种形式: 一种是硬堆栈,即用寄存器组来实现的。另一种是 软堆栈,即用主存的一部分空间作堆栈。堆栈主要 用于暂存数据以及在“过程”调用或处理中断时暂 存断点信息。
27
8086堆栈的构造
栈底(Bottom) 为堆栈空间的高地 址单元。
段地址:SS 0000H
栈顶(TOP) 为低地址单元。
DS 8000 BX 2000 DI 1000
...
操作码



+ DATA 0200
83200
...
83200H
78H
56H
AX AH AL
...
数 据 段
18
段 寄 存 器 的 使 用 规 定
默认的 访问存储器的方式 段寄存器 偏移地址
可跨越的 段寄存器
取指令
CS
IP

堆栈操作
SS
SP

一般数据访问
指令执行后: AX=1234H
DS 8000
...
操作码
BX 2000
+ SI 1000
83000
...
83000H
34H
AX AH AL
12H
...
代码段
数据段
16
( 7 ) 相对基址变址寻址方式:由一基址寄存器(BX/BP) 和一变址 寄存器(SI/DI)和偏移量相加作为参加操作的数所在的有效地址。
• 段间寻址 段间直接寻址 JMP FAR PTR NEXT
段间间接寻址 JMP DWORD PTR [ BX ]
8086指令系统
共133条基本指令,按功能分为六大类 • 数据传送指令 • 算术运算指令 • 逻辑运算和移位指令 • 串操作指令 • 程序控制指令 • 处理器控制指令

楼第4章指令系统习题解答

楼第4章指令系统习题解答

楼第4章指令系统习题解答习题解答:1、什么叫寻址方式?8086/8088cpu共有哪几种寻址方式?请问:指令的串行方式就是指赢得操作数所在地址的方法。

8086/8088cpu指令的串行方式可以分成8种,为立即串行、轻易串行、寄存器串行、寄存器间接串行、寄存器相对串行、基址变址串行、基址变址相对串行、暗含串行。

2、指出下列指令中源操作数和目的操作数的寻址方式(1)movax,[si]源操作数:寄存器串行目的操作数:寄存器间接串行(2)movdi,100源操作数:寄存器串行目的操作数:立即串行(3)mov[bx],al源操作数:寄存器间接串行目的操作数:寄存器串行(4)mov[bx+si],cx源操作数:基址变址串行目的操作数:寄存器串行(5)adddx,106h[si]源操作数:寄存器串行目的操作数:寄存器相对串行3、判读以下指令的对错(1)sti对(2)call1000h错(3)divax,dl错(4)shlal,4错(5)popax对(6)inal,[30h]弄错(7)inccs错(8)out40h,al对4、根据已知条件,计算划线部分的物理地址。

已知:ss=1000h,es=2000h,ds=3000h,cs=4000h,bx=5000h,di=1200h,bp=2300h(1)(2)(3)(4)(5)5、设sp初值为2400h,ax=4000h,bx=3600h,则执行指令pushax后,sp=?,再执行pushbx和popax后sp=?请问:则继续执行指令pushax后,sp=2400h-2=23feh,再继续执行pushbx和popaxmovax,[2300h]计算公式:ds×16+2300hmov[bx][di],ax计算公式:ds×16+bx+diaddax,es:[2100h]计算公式:es×16+2100hsubdx,[bp+6]计算公式:ss×16+bp+6movax,[di]计算公式:ds×16+di后sp=23feh。

8086指令系统课件

8086指令系统课件
根据操作数个数的不同指令格式分为以下几种:
第3页,共175页。
第四章 8086 指令系统
(1)零操作数指令
格式:
操作码
即指令中只有操作码,没有操作数,也称为无操作数指 令。有两种情况使用这种指令:
一是指令中不需要任何操作数,如空操作指令、停机指令 等;
二是指令的操作数是默认,如加法的ASCII码 调整、 十进制BCD调整指令等。
不同的指令系统。
第2页,共175页。
第四章 8086 指令系统
4.1.2 汇编指令格式
一条指令一般包含操作码和操作数两部分。
操作码用来表示该指令所要完成的操作,不同的指令用
不同的操作码表示;
操作数用来描述指令的操作对象,操作数可以是立即数、
寄存器和存储器的地址,不同的指令可以有一个、 二个、三个 或无操作数。
第14页,共175页。
第四章 8086 指令系统
6.基址变址寻址( Based Indexed Addressing)
操作数的有效地址为基址寄存器(BX或BP)和变址 寄存器(SI或DI)的内容之和。
物理地址=16(段寄存器)+(基址寄存器)+ (变址寄存器)
【例4.7】 MOV AX,[BX][DI]
=30000H+1000H+2000H+250H=33250H
第16页,共175页。
第四章 8086 指令系统
4.2.2 与程序转移有关的寻址方式
指令在顺序执行时,下一条指令的地址总是由指令指针IP 自动递增得到。
若程序非顺序执行,将要执行的指令的地址如何得 到呢? 又分为段内转移和段间转移:
段内转移:需要给出即将执行的那条指令的偏移地址,并用 它取代IP的原有内容;

8086指令系统及寻址方式共105页

8086指令系统及寻址方式共105页

例1 编程实现 c =a+b,并在屏幕上显示出结果。
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{ int a,b,c;
a=1; b=2;
编译后的目标文 件达到3.59KB
c=a+b;
printf("c=%d\n",c);
1011010000001010 10001101000101100011000100000000 1100110100100001 1011010000000110 1011000000010100 1011011100011001 1011010100001011 1011000100010011 1011011000001101 1011001000111100 1100110100010000 1101010000000010 1101011100000000 1101000000001100 1101001000010100 1100110100010000 1011010000001001 10001101000101100000000000000000 1100110100100001 11001011
第4章 MASM汇编基础及上机
4.1 MASM汇编语言基础
4.1.1 汇编语言的基本概念
❖机器语言
S = 768 + 12288 - 1280 机器码:
101100000000000000000011 000001010000000000110000 001011010000000000000101 假如将程序错写成以下这样,请找处错误: 101100000000000000000011 000001010000000000110000 000101101000000000000101

8086 寻址方式和指令系统

8086  寻址方式和指令系统
某寄存器中,寄存器寻址。 内存的数据区中,存储器寻址。 I/O端口中: IN AL, 40H
7
有效地址(EA):存储器寻址时,指令的操作数部分给出 的地址是段内偏移地址,也称有效地址。 EA包括: 基址寄存器内容;变址寄存器内容;偏移量; 计算方法:
EA=[基址寄存器]+[变址寄存器] +偏移量
该寻址方式主要用于二维数组。用基址寄存器存放数组首地 址,而用变址寄存器来定位数组中的各元素。

下面两种表示方法是等价的: MOV AX,[BX+DI] MOV AX,[DI][BX]
20
例如:MOV AX ,[BX+ DI] 假设:(DS)=5000H, (BX)=1223H , (DI)=54H
EA= [基址寄存器]+[变址寄存器] +位移量
MOV
MOV MOV
AX,[BX+DI+1234H]
AX,1234H[BX+DI] AX,1234H[DI][BX]
MOV
AX,1234H[BX][DI]
22
例如:MOV AX ,[BX+ DI-2] 假设:(DS)=5000H, (BX)=1223H , (DI)=54H
M
DS 50000

+
AH AL 89
SI 1234 51234 50000
操作码
代 码 段

AX
67

数 据 段
51234
89H 67H

16
5


寄存器相对寻址
操作数的有效地址
EA=[基址或变址寄存器]+位移量
基址寄存器为BP、BX, BX以DS作为默认段寄存器,BP以SS 作为默认段寄存器。

第4章 8086的指令系统

第4章 8086的指令系统

与高级语言相比,汇编语言是最接近机 器语言的,而高级语言是最接近自然语 言的,有人把C语言不偏不倚插在中间, 说是高低级语言之间的桥梁 8086的寻址方式机动灵活,初学者很难 胜任用“手工”把一个数据从计算机中 的一个地方搬到另一个地方,无论是作 为数据源还是数据目的地,都要人为规 定数据存放地点,这就是寻址。
二、教学重点和难点 1. 8086的寻址方式。 *立即数寻址;*寄存器寻址;*直接寻址; *△寄存器间接寻址; 2、8086的指令系统。 △指令格式;△指令执行时间;*△传 送指令、*△算术运算指令、*△逻辑运 算和移位指令;*△串操作指令;*△控 制转移指令(含中断指令等)
3、汇编语言中的标记、表达式和伪指令。 *标识符;*保留字;*界符;*操作数;* 运算符;*语句; *符号定义伪指令;*△数据定义伪指令; △段与模块定义伪指令;△过程定义伪 指令; 4、常用的系统功能调用 △ MS-DOS 的软件中断;△系统功能调 用 5、汇编语言程序设计的基本技术 *顺序程序设计;*循环程序设计;*分 支程序设计;*子程序设计
5.相对的基址+变址 可以带一个8位或 16位位移量 MOV AX, [BX+SI+0050] ; 将BX和SI的 内容与0050相加作有效地址 也有如果用了 BP ,默认段寄存器为 SS , 否则默认DS的约定。 相对的基址+变址 ――3数相加再加段 代码
多种写法: MOV AX,MASK[BX][DI] MOV AX,[MASK+BX+DI] MOV AX,[BX][DI]+MASK MOV AX,[BX+DI] +MASK
2.以BP寄存器进行间接寻址――堆栈段基 址寻址 MOV BX, [BP] ;若SS=4000H,BP= 2000H,则42000H、42001H内容送BX 3.以SI、DI寄存器进行变址寻址 SI、DI――源和目的变址寄存器,常用于 对数组的操作和串操作 MOV CX, [SI] ;若DS=7000H,SI =8000H,则78000H、78001H内容送 CX
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

段寄存器使用规则
直接 使用BX、SI、 使用BP的 堆栈 源串 目标串 指令 寻址 DI的间接寻址 间接寻址 操作 指针 指针 指针
默认
段寄 DS
DS
存器
SS
SS DS ES CS
加段 前缀 可以 超越
ES: SS: CS:
ES: SS: CS:
DS:
ES:
ES:
— SS: —

CS:
CS:
固定 搭配 的寄 存器
例: IN AL,DX OUT DX,AX
事先已向 DX赋值
§4.3 8086的指令格式
便于书 写可读
指令的书写格式(以8086性为强例)
操作码助记符 [目的操作数助记符], [源操作数助记符]
(操作码:必备;操作数:可以是1个、2个或没有;可以是 8位或16位)
指令的编码格式(以8086为例由)机器
➢高级语言,如BASIC、FORTRAN语言;
例:加法,可采用语句X=A+B,与数学表达的格 式相同,学习较容易。
➢机器语言,指令以二进制码的形式表示,计算机 可以直接执行。不易书写、检查。
例:将累加器AX中加上一个常数 02, 其二进制 码表示的指令为: 050200H。
➢助记符指令, 采用字母、数字或符号,来代替机器 码的助记符。容易书写、记忆和交流。
其它寻址方式 — 固定寻址、相对寻址、I/O端口寻址
8086寻址方式
一、非存储器寻址方式
1、立即数寻址方式
源操作数在代码段机器码指令中,为8位或16位常数。一 般用于赋值。
例:MOV AL,5FH (机器码:B05F)
执十行六完进立操制即作数数码来可B表0以H示用,。二可如进立:制即数从、的八续进单制元数中通、得用十到寄进存操器制作、数数以。及
2、寄存器寻址方式 MOV AL, 10

段寄存器均可
操作数在8位或16位寄存器中。执行速度最快。例:
MOV MSIO,VDAXL;, 0源01操00作10数1B为寄;存器寻址方式
MOV AL, 0目AH的操作数也;为十寄六存进器制寻(址H方)式
8086寻址方式(续)
二、存储器寻址方式
1、直接寻址方式
3、I/O端口寻址 仅用于I/O指令IN、OUT。
I/O直接寻址——端口地址在8位以内时,用端口地址直接 做操作数。可寻址的I/O空间为256字节。
例: IN AX,43H
OUT 0FH,AL
I/O寄存器间接寻址——端口地址超过8位时,用DX间接寻 址提供16位端口的地址。可寻址的I/O空间为65536字节。
对指令中操作数符号的约定如下:
OPRD: 操作数(operand
OPRD1, OPRD2:多操作数指令中,OPRD1为 目标操作数, OPRD2为源操作数;
变址寻址过程示意图
MOV [SI]10H ,AH ( 设SI原值为008CH)
Bit 19
43 0
DS(SI、DI默认段)值 0000
ES值
0000
SS值
0000
CS值
0000
SI: +)位移量:
0000 0000 1000 1100 0000 0000 0000 1010
20 位 物 理 地 址
20 位 物 理 地 址
Memory
…… ××
8086寻址方式——变址寻址
4、变址寻址方式(寄存器相对寻址方式) 使用变址寄存器(SI或DI)、并带位移量的间接寻址。
操作数EA=(SI/DI)+位移量。 使用SI/DI操作数默认在数据段(DS)。
例:MOV [SI+10],AH 其它等效写法:
MOV [SI]10,AH MOV 10[SI],AH 寻址过程示意
MOV DL,[BP]2 MOV DL,2[BP] 寻址过程示意
基址寻址过程示意图
MOV DL,[BP+2] ( 设BP原值为4000H)
Bit 19
43 0
DS(BX的默认段)值 0000
ES值
0000
SS(BP的默认段)值 0000

CS值
0000
BP: +)位移量:
0100 0000 0000 0000 0000 0000 0000 0010
寻址方式字节
D2 立DD即1A数TAD0
R/M
第立六字即节数
单字节指令(隐含的操作数)
操作码
1、操作码域:
单字节指令(寄存器模式)
操作码 REG 寄存器到寄存器
REG——寄存器 MOD——模式 R/M——寄存器或内存
操作码
11 REG R/M
不带位移量的寄存器和内存之间的传送
一般用指令的
第一个字节或者头 两个字节表示指令 的操作码和寻址方 式——操作码域。
其它等效写法: 寻址过程示意
例:MOV [BX+DI+4],CX
MOV [BX+DI]4,CX MOV 4[BX+DI],CX MOV [BX][DI]4,CX MOV 4[BX][DI],CX
基址加变址寻址过程示意图
MOV [BX+DI+4] ,CX
CH
( 设BX原值为1000H,DI原值为0300H) CL
1字节
1字节
1字节
1~4字节
OP操C位作O号码DE D7 操作第码一字字节节
寻址D6方式M与OD寄5D存器D号4 D3 位移RD量E2G或立D即1数
D
第二字节
方式第寄三存字器节
操作码字节(mod字节)
D0 位移RD7/量M或立D即6 数 D5 DD立4IS即P数D3
W
MOD
第四字节
REG
位第移五量字节
寻址过程示意 例: MOV [BX],CL
8086寻址方式——基址寻址
3、基址寻址方式(寄存器相对寻址方式) 使用基址寄存器(BX或BP)、并带位移量的间接寻址。
操作数EA=(BX/BP)+位移量。 使用BX,操作数默认在数据段(DS);使用BP,操作
数默认在堆栈段(SS) 。
例:MOV DL,[BP+2] 其它等效写法:
BL
BX
010100
101
01110
立即CX数送内存[S(I]设C带L16 位位移1量1[0S)I]+D8 SI
[DI]
[DI]+D8
操D作X码D16(直M接O地DD址操L) 作码 R/M11[1BP]+位D移8 量D低I 位
[SCI]H+D16 10 AH SS SP
[DI]+D16
CH
BP
位移[量BDP高H]+位D16 数据1低1 位DH D数S据高SI位
Memory
…… ××
8086寻址方式——基址加变址寻址
5、基址加变址寻址方式 指令中使用一个基址寄存器和一个变址寄存器的间接
相对寻址。 操作数EA=(BX/BP)+( SI/DI)+位移量。 操作数所在段由基址寄存器决定,使用BX操作数默认
在数据段(DS),使用BP操作数默认在堆栈段(SS) 。
第四章 8086寻址方式与指令系统
4.1 汇编语言和汇编程序的基本概念 4.2 8086寻址方式 4.3 8086的指令格式 4.4 8086指令系统
习题: 4-1,4-2,4-6,4-7,4-9,4-12,4-13,4-17,4-19
4.1 汇编语言和汇编程序的基本概念
4.1.1汇编语言与机器语言
➢机器指令中的操作码和操作数
例:ADD AX, 02 的机器码050200H 其中,05是操作码,表示AX+常数
0200H是操作数,即常数02(低字节在前, 高字节在后)
先执行操作码,后执行操作数。
➢ 操作码→指明指令要做的动作(操作) ➢ 操作数→指明要操作的对象(或数据) 注意:操作码不与操作助记符简单对应
Bit 19
43 0
DS(BX的默认段)值 0000
ES值
0000
SS(BP的默认段)值 0000
CS值
0000
BX: DI: +)位移量:
0001 0000 0000 0000 0000 0011 0000 0000 0000 0000 0000 0100
20 位 物 理 地 址
Memory
…… ×× ××
8086寻址方式——其它方式(1)
三、其它寻址方式
1、固定寻址(隐含寻址)
操作数并不直接出现在指令中,而是由操作码隐含地指 定为某一固定内容。
例: PUSH DS 目的操作数隐含为栈顶字单元
POP BX
源操作数隐含为栈顶字单元
LAHF
源操作数隐含为标志寄存器低字节,
目操作数隐含为寄存器AH
8086寻址方式——其它方式(2)
2、相对寻址 仅用于进行段内直接转移的控制转移指令。
指令中的操作数是一个8位或16位带符号的相对 偏移量,代表目标地址与正常执行顺序的原地址 之差。
目标地址=顺序执行的原地址+相对偏移量 编程时一般使用目标地址的标号作为操作数,
不需要计算相对偏移量。 例: JNZ NEXT
8086寻址方式——其它方式(3)
采用变长编码格式。
识别和
低端
执行
高端
指令前缀 操作码字段 寻址方式字段 操作数字段
1字节
1字节
1字节
1~4字节
每条指令都由操作码和操作数两部分组成,操作
码表示计算机执行某种指令功能,操作数表示操作
中所需要的数据或者所需数据与输出数据的存放位
置(又称地址码)。
低端
高端
指令前缀 操作码字段 寻址方式字段 操作数字段
相关文档
最新文档