第03章 8086指令系统简介及寻址方式

合集下载

微机原理课件第三章8086寻址方式和指令系统

微机原理课件第三章8086寻址方式和指令系统
2取 单.如操元果作的指数 地令寄, 址中存钥 。用器匙对寄就于间存或相寄接器=当存D寻B于器SP址×进存间1方行储接6+式间D接I的寻E址A计,寄则算存默器 认操作
数寻在址堆方栈式段来中说,,操就作相数当的于段钥地匙址在段寄存器SS中,操 作放数在的寄物存理器地中址,=即SS寄×存1器6+给BP出。 了要访问的存储单元地址。
DS 3000H ×16

SI 2000H
操作码
+ COUNT 4000H
00
代码段
40
寄存器3相60对00H寻址方式也允许使┋用段超越前缀,
如MOV BX,ES:COUNT[DI]则段地址为ES,物
理地址=ES×16+DI+COUNT。
BH
BL

BX 56
78
36000H
78
56
数据段

指令MOV BX,COUNT[SI]的执行过程
{{ }} 组合起来([B只X能]+相[S加I)]+,D同8或时D还1可6 以加上一个8位或
((1SE86IE8和位A种A种=D的=)I)位也移不[[[[[[[BBB量能BSDBXPPPIIX]],]同]]]]+++但时++++[[[DDDDSDB出8888IIIX现或 或或 或]]]和+++在DDBDDD11P方1188866不66或 或 或括能DDD号111同寄中666时;存出器现相 变在相对 址方对基 寻括寻号址 址址中,
{ 设((D3E86A种S0==0M)300HO0)V[[[[0HBSBD=XIPIB,5]]]]X6或S7,+I8=18H[2S6位0I位0+位0C位H移O,移U量位N量T移] 量COU默 默N认 认T=DS4SS0段 段00H,

第3章 8086寻址方式和指令系统

第3章 8086寻址方式和指令系统

30
31
加法指令(Addition)

ADD 加法指令

ADD 目的,源;目的←源+目的 ADC 目的,源;目的←源+目的+CF,用于多字节加法

ADC带进位的加法指令


目的操作数只能是寄存器和存储单元 源操作数可以是寄存器、存储器或立即数 注意:源和目的操作数不能同时为存储器,必须都是字节或字
AX
(21A00H)=26BFH
16
存储器寻址
5
17
8086指令系统

数据传送指令 算术运算指令 逻辑运算
18
19
数据传送指令
通用数据传送指令



输入输出指令

MOV PUSH
目的,源 源
IN AL,端口地址

OUT 端口Biblioteka 址,ALIN AX,端口地址
IN AL,DX IN AX,DX
CX
12H 34H
操作码 34H 12H CS段 高地址
注意:立即数只能作源操作数,不能作目的操作数; 以A~F开头的数字出现在指令中需在前加0
5
寄存器寻址(Register Addressing)

操作数包含在指令中指定的8位或16位寄存器中 寄存器:AX,BX,CX,DX,SI,DI,SP,BP

物理地址=16×DS+BX+SI(DI)+位移量 物理地址=16×SS+BP+SI(DI)+位移量
15

基址寄存器为BP时,段寄存器为SS

相对基址变址寻址 (Relative Based Indexed Addressing)

微机原理课件第三章 8086的寻址方式和指令系统

微机原理课件第三章 8086的寻址方式和指令系统
EA=(BX、BP之一)+(SI、DI之一)+偏移量(8、16位)
默认关系与段超越同基址变址寻址。
• 例如: MOV AX,COUNT[BX][SI] MOV AX,COUNT[BX+SI] MOV AX,[BX+SI+COUNT]
• 以上三者等价
19
如 MOV AX,MASK[BX][SI] 设DS=4100H,位移量MASK=0134H,BX=2500H,SI=1200H 则EA=(BX)+(SI)+MASK=3834H,PA= (DS)
1、立即寻址方式(Immediate Addressing) 操作数就在指令中,常用来给寄存器赋初值。 如:MOV AX,2000H MOV BL,12H
6
注:a、立即数只能作源,不能作目的 MOV 2000H,AX 非法。
b、若16进制立即数以A~F打头,为区别其他符 号名,应在前面加数字0,因符号名的命名规则 为第一个字符不能为数字。
• 根据有效地址EA(Effective Address)的构成 方式,存储器寻址分为以下五种:
9
• 段寄存器使用的基本约定
10
3、直接寻址方式(Direct Addressing) EA就在指令中,默认段寄存器为DS 如:MOV AX,[2000H] 设DS=3000H 则EA=2000H,PA=DS×16+EA=32000H, 操作数来自32000H(或3000H:2000H处),结果AX=3514H
13
• 例:MOV AX, [BX] • 已知BX=5000H,DS=3000H,则EA=(BX)
=5000H,PA=DS×16+EA=35000H • 该指令执行完,AX=32A0H

微机原理第3章8086指令系统

微机原理第3章8086指令系统

微机原理第3章8086指令系统8086是Intel公司推出的一种16位微处理器,是x86架构的第一代处理器。

8086指令系统是8086微处理器所支持的指令集合,本章将介绍8086指令系统的基本特性和指令编码格式。

8086指令系统采用变长指令编码格式,指令长度可以是1个字节到多个字节,提供了多种寻址方式和丰富的操作类型。

8086指令系统共支持256条标准指令,可以执行各种算术逻辑运算、数据传输和控制流操作。

8086指令由操作码和操作数组成。

操作码指示了执行的具体操作,操作数则是操作码所针对的数据。

8086指令系统提供了多种寻址方式,包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址和基址变址寻址等。

立即寻址是将常数或数据直接作为操作数,如MOVAX,1000H,表示将立即数1000H传送到AX寄存器。

直接寻址是通过指定一个内存单元的地址来作为操作数,如MOVAL,[BX],表示将BX寄存器指向的内存单元的内容传送到AL寄存器。

寄存器寻址是直接将一个寄存器作为操作数,如MOVAX,BX,表示将BX寄存器的内容传送到AX寄存器。

除了寻址方式,8086指令系统还提供了多种操作类型,如算术逻辑运算、数据传输和控制流操作等。

算术逻辑运算可以进行加、减、乘、除等数学运算,如ADD、SUB、MUL、DIV等指令。

数据传输可以进行数据的读取和存储操作,如MOV、PUSH、POP等指令。

控制流操作可以用于程序的跳转和条件判断,如JMP、JZ、JC等指令。

8086指令系统还支持多种数据类型的操作,包括字节、字和双字等。

字节操作是对8位数据进行操作,字操作是对16位数据进行操作,双字操作是对32位数据进行操作。

指令的操作数大小可以根据需要选择合适的寄存器或内存单元。

总之,8086指令系统是8086微处理器所支持的指令集合,提供了多种寻址方式和操作类型,支持多种数据类型的操作。

通过掌握8086指令系统,可以编写出高效、精确的8086汇编程序,实现各种功能和算法。

第3章 8086指令系统

第3章 8086指令系统

MOV AL, 80H
AL
80H
程序存储器 操作码字节 指 令 码
80H
程序存储器
MOV AX, 1234H
AH 12H
AL 34H
操作码字节
34H 12H
指 令 码
2)寄存器寻址方式 例如:INC CX MOV AX, CX
程序存储器 AX
CX
89 C1
指令码 (包括操作数)
3)存储器寻址方式 存储器寻址方式的操作数存放在存储器单元 中。因此,要存取操作数就必须知道其存储器的 单元地址。在指令中可以直接给出或间接给出操 作数的地址,以达到存取操作数的目的。 指令中给出的地址只是操作数的有效地址 (EA),并且是放在方括号(“[ ]”)中。若 要从存储器中存取操作数还须得到实际的地址 (物理地址)。 物理地址=段地址左移四位+有效地址
40000H … … 41444H 45
代 码 段
AH
45
数 据 段
4)I/O端口寻址方式 ⑴ 直接端口寻址方式 IN AL, 21H
I/O接口 01H 02H
……
操作码
21H AL
代 码 段
80
21H
80
⑵ 间接端口寻址方式 OUT DX, AL
I/O接口 12
0001H 0002H
……
DX
34
2.地址的寻址方式 地址的寻址方式其时是程序转移地址的寻 址方式,也就是找出程序转移的地址号,而不 是操作数。 转移地址可以在段内(称段内转移),也 可以跨段(称段间转移)。寻求转移地址的方 法有以下四种: 1)段内直接寻址 转移的地址是当前IP内容和指令规定的8位 或16位位移量之和。 当位移量是8位时,称为短程转移;位移量 是16位时称为近程转移。

[工学]第三章 8086的寻址方式和指令系统

[工学]第三章 8086的寻址方式和指令系统

19
3.2
8086指令系统的概况
3.2.1 指令格式 说明:① 指令系统规定一条指令只能包含1个或2个
操作数。涉及一个操作数的指令称为单操作数指令; 单操作数指令中的操作数可能由指令本身提供,也可 能用指令隐含指出。涉及2个操作数的称为双操作数 指令;双操作数指令中至少有1个操作数必须通过寄 存器指出,不允许2个操作数均在存储器中。
操作数就在 CPU 的内部寄存器 (AX、BX、CX、DX、DI、 SI、BP、SP)中,寄存器名由指令指出。 例: DEC BL ;将BL的内容减1 MOV DX,AX ;将AX中的值送入DX中 ROL AH,1 ;将AH中的内容循环左移一位 说明:①采用此寻址方式的指令在执行时,操作数就在 CPU 内部进行,不需要使用总线周期,指令执行速度快。 ②一条指令中可以对源操作数、也可对目的操作数、 还可两者都采用寄存器寻址方式。 7
3. 双操作数指令:
例:MOV
AX,[BX+2000H]
25
指令编码格式举例:
26
3.2.2 指令的执行时间
指令周期:是指计算机完成对一条指令从取指开始至 执行完毕所需要的时间叫指令周期。与时 钟周期长短和所需要的时钟数有关。 即包括:

一条指令基本执行时间加上计算有效地址所需要的时间。 计算有效地址所需要的时间由寻址方式决定。
0
OP
例如:HLT指令编码为:
7
0
11110100
F4H
22
2. 单操作数指令:
单操作数在寄存器中
格式一:
7
格式二:
000—AX 001—CX 010—DX 011—BX 100—SP 101—BP 110—SI 111—DI

第3章 8086的指令系统

第3章 8086的指令系统

第三章8086的寻址方式和指令系统基本内容:8086寻址方式的概念,7种寻址方式的操作过程,8086的指令系统的构成及六大类基本指令。

基本要求:掌握8086的7种寻址方式,掌握8086指令系统的汇编格式,掌握每一个指令的功能用法。

重点内容:8086的7种寻址方式,传送指令、算术运算指令、逻辑指令、控制转移指令。

难点:立即寻址与直接寻址,寄存器寻址与寄存器间接寻址的区别,相对寻址的寄存器搭配使用,算术指令中寄存器的使用及结存放移位指令的使用,控制转移指令的操作过程。

第一节8086的寻址方式计算机中的汇编指令由操作码字段和操作数字段组成,操作码字段指示CPU执行哪一种操作,如传送、运算等;操作数为参与操作的数据,如寄存器中的数据或内存单元中的数据等。

(如加法指令须指明两个被加数)操作数字段可以直接给出操作数本身或者指明操作数的存放地址,如是在寄存器中存放须指出寄存器名称,若是在存储器中存放,须给出此操作数在存储器中的地址。

8086中对操作数的寻址方式可分为下列7种寻址方式。

一、立即数寻址方式特征:操作数由指令直接给出,紧跟于操作码之后,做为指令的一部分。

注意:1、立即数可做源操作数,不能是目的操作数;2、立即数只能是8位或16位的整数,不能是小数,且与目的操作数格式要一致;例:MOV BX,107DHMOV AL,90H不能写为MOV90H,AL操作数的立即数可以是16进制,十进制或二进制,但必须注明。

例:MOV BL,90(D)――十进制后缀可不写,系统默认。

MOV AL,10010000B特点:不启动总线周期,速度快。

二、寄存器寻址特征:操作数存放于寄存器中,指令中用寄存器名指出。

16位操作数---------AX,BX,CX,DX,SI,DI,SP,BP等。

8位操作数---------AL,BL,CL,DL,AH,BH,CH,DH特点:不访问存储器,速度快。

例:MOV AX,BX 执行前(AX)=OFC56H (BH)=0100H执行后(AX)=0100H (BH)=0100H不变INC DL 执行前(DL)=02H 执行后(DL)=03H注:寄存器寻址时,寄存器可以是源操作数,也可以目的操作数。

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

第3章8086寻址方式与指令系统
❖使用基址寄存器BP时,操作数默认存放在堆 栈段中,允许段超越。
❖操作数的物理地址 =(DS)×10H+(SI)/(DI)+(BX) 或 =(SS)×10H+(SI)/(DI)+(BP)
第3章 8086寻址方式与指令系统
❖例如: MOV AX,[BX] [SI] ❖该指令的源操作数采用基址变址寻址方式。 ❖若(DS)=2000H,(BX)=2008H,(SI)=8H,
第3章 8086寻址方式与指令系统
❖例如: MOV AX,[SI]
❖该指令的源操作数采用寄存器间接寻址方式。 ❖若(DS)=2000H,(SI)=2010H,那么指令执行后
,(AX)=1225H。 ❖如操作数不存放在间址寄存器默认的段,则指
定段超越的指令可采用如下形式。 MOV AX,ES:[SI]
寄存器寻址方式指令执行示意图
存储器
AH
AX
20H
00000H
~~
AL
10H
操作码
10H
代码段
20H
~~
FFFFFH
第3章 8086寻址方式与指令系统
寄存器寻址方式说明
❖在一条指令中,寄存器寻址方式既可用于源操作 数,也可用于目标操作数,还可以两者都用寄存 器寻址方式。
❖源操作数与目标操作数的长度应一致。例如,不 能将寄存器AX的内容传送到寄存器BH中,也不能 将寄存器BH的内容传送到寄存器AX中。
第3章 8086寻址方式与指令系统
❖8086汇编指令中的操作数可以有零个、一个或两 个,通常称为零地址、一地址或二地址指令。
❖二地址指令中的两个操作数分别称为源操作数和 目标操作数。
第3章 8086寻址方式与指令系统
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11/50
内容提要
立即寻址 例3.1 例3.2
寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
一、立即寻址 操作数本身作为指令的一部分直接出现在 指令中,即为立即数,寻找该立即数的寻 址方式称为立即寻址。 例3.1 MOV AL,36H
20/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
注意: (1) 所用寄存器只能是BX、BP、SI、DI; (2) 当使用寄存器BX、SI、DI时,默认的
段寄存器是数据段寄存器DS; (3) 当使用寄存器是BP时,默认的段寄存
25/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
六、基址变址寻址 操作数放在存储器的存储单元中,其有效 地址是一个基址寄存器(BX、BP)与一 个变址寄存器(SI、DI)的内容之和,该 操作数的这种寻址方式称为基址变址寻址。
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
三、直接寻址 操作数放在存储器的存储单元中,在指令 中直接给出该操作数在存储器中的偏移地 址,这种寻址方式称为直接寻址。 该偏移地址也称有效地址EA(Effective Address)。
23/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
注意: (1) 当使用寄存器BX、SI、DI时,默认的
段寄存器是DS; (2) 当使用的寄存器是BP是,默认的段寄
存器是SS; (3) 寄存器相对寻址方式允许使用段跨越
(BX)=4567H 则指令执行后,(AX)=?,
(BX)=? 该指令中源操作数和目的操作数的寻址方 式都是寄存器寻址。
15/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
可以使用的8位寄存器有:
29/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.10
3.2 寻址方式
注意: (1) 当基址寄存器BX的内容作为有效地址
的一部分时,默认的段寄存器是DS; (2) 当基址寄存器BP的内容作为有效地址
的一部分时,默认的段寄存器是SS; (3) 相对基址变址寻址方式允许使用段跨
缀。
27/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
例3.10 MOV AX,[BX][SI] 也可写成:MOV AX,[BX+SI] 已知:(DS)=2100H,(BX)=0158H,
AL、AH、BL、BH、CL、CH、DL、DH
可以使用的16位寄存器有:
AX、BX、CX、DX、SI、DI、BP、SP、 DS、CS、SS、ES
注意: (1)段寄存器CS只能做源操作数; (2)当段寄存器DS、SS、ES作目的操
作数时,源操作数不能是立即数。
16/50
内容提要
立即寻址 寄存器寻址 直接寻址
越前缀。
30/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.11
3.2 寻址方式
例3.11 MOV AX,NUM[BP][SI] 也可写成:MOV AX,NUM[BP+SI]
或:MOV AX,[NUM+BP+SI] 已知:(SS)=3000H,(BP)=2000H,
硬指令格式: [标号:] 操作符 [目的操作数] [,源操作数] [;注释] 伪指令格式: [名字] 定义符 [操作数] [;注释]
5/50
3.1 指令的分类及格式 [标号:] 操作符 [目的操作数] [,源操作数] [;注释] [名字] 定义符 [操作数] [;注释]
标号:指出了该条硬指令的起始地址,程序员可 通过标号来引用所标识的硬指令。
例3.6 MOV AX,ES:[1000H] 在汇编语言程序中,通常用符号地址(变 量名)来代替数值地址。 例如:MOV AX,Value
18/50
内容提要
立即寻址 寄存器寻址 直接寻址
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
器是堆栈段寄存器SS。 (4) 寄存器间接寻址方式允许使用段跨越
前缀。
21/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.8 MOV AX,[BX] 已知:(DS)=2000H,(BX)=1000H 则该指令执行后:(AX)=?
前缀。
24/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
例3.9 MOV AX,NUM[BX] 也可写成:MOV AX,[NUM+BX] 已知:(DS)=3000H,(BX)=2000H,
NUM=3000H 则该指令执行后: (AX)=?
名字:在伪指令中用来定义变量名、过程名等。
6/50
内容提要
指令分类 指令格式
3.1 指令的分类及格式
标号和名字统称为标识符。 关于标识符的规定:
长度不能超过31个字符,组成该字 符串的字符可以是字母(A~Z或a~z)、 数字(0~9)、特殊符号(“?”、“.”、 “@”、“_”、“$”)。其中数字不能做 第一个字符,标识符中如果使用到“.”, 则该字符必须是第一个字符。
3/50
内容提要
指令分类 硬指令 伪指令
指令格式
3.1 指令的分类及格式
2. 伪指令:指一些固定格式的约定符号, 用于指示汇编程序如何工作, 不产生任何目标代码。
4/50
内容提要
指令分类 指令格式
3.1 指令的分类及格式
二、指令的格式 8088/8086汇编语言的硬指令和伪指令的 格式基本相同。
指令执行后,(DL)=? 该指令中目的操作数的寻址方式是 寄存器寻址。
14/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.4 MOV AX,BX 如果指令执行前(AX)=1234H,
17/50
内容提要
立即寻址 寄存器寻址 直接寻址
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.5 MOV AX,[1000H] 缺省情况下,操作数有效地址的作用域是 DS所指向的数据段,但也允许使用段跨 越前缀将作用域指定为其他的段。
26/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
注意: (1) 当基址寄存器BX的内容作为有效地址
的一部分时,默认的段寄存器是DS; (2) 当基址寄存器BP的内容作为有效地址
的一部分时,默认的段寄存器是SS; (3) 基址变址寻址方式允许使用段跨越前
注意:立即数只能用作源操作数,不能用 作目的操作数,且源操作数的长度 与目的操作数的长度必须一致。
13/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
二、寄存器寻址 当源操作数已经存储在某个寄存器中,或 者要把目的操作数存入某个寄存器时,指 令中就指出所要使用的寄存器名称,该操 作数的寻址方式即为寄存器寻址方式。 例3.3 MOV DL,81H
22/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
五、寄存器相对寻址 操作数放在存储器的存储单元中,其有效 地址是基址寄存器(BX、BP)或变址寄 存器(SI、DI)的内容与指令中给定的8 位或16位位移量之和,该操作数的这种寻 址方式称为寄存器相对寻址。
3学时
本章主要内容 一、指令的分类及格式 二、寻址方式 三、数据传送指令
2/50
内容提要
指令分类 硬指令 伪指令
指令格式
3.1 指令的分类及格式
一、指令的分类 汇编语言中所使用的指令分成两类: 1. 硬指令:与二进制的机器指令一一对应,
由计算机来执行。 硬指令(简称指令)分成6类: 数据传送指令、算术运算指令、位操作 指令、串处理指令、控制转移指令、处 理机控制指令。
(SI)=10A5H 则该指令执行后: (AX)=?
28/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变 操作数放在存储器的存储单元中,其有效 地址是以下三个量之和:一个基址寄存器 (BX、BP)的内容、一个变址寄存器 (SI、DI)的内容、一个8位或16位位移 量,该操作数的这种寻址方式称为相对基 址变址寻址。
相关文档
最新文档