第 3 章 8086指令系统——微机原理课件PPT

合集下载

微机原理课件第三章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,

微机接口ppt课件第3章8086指令系统(上)

微机接口ppt课件第3章8086指令系统(上)

2021/8/17
24
【例3-6】
已知:(DS)=3000H,(BX)=1000H, (DI)=2000H,(33000H)=13H, (33001H)=24H,执行指令:
MOV AX, [BX][DI]
操作数的物理地址为:
(DS)×16+(BX)+(DI)
=3000H×16+1000H+2000H
31
NEAR PTR用来指明的偏移量为16位,称为 近转移,其转移范围为﹣8000H~7FFFH。
NEAR PTR可省略。
指令中的偏移量指的是当前IP值(即JMP指 令的下一条指令)到目标地址之间的距离, 因此,执行JMP指令时,当前(IP)= 2003H。
2021/8/17
32
2.段内间接寻址
2021/8/17
29
【例3-8】
已知:(CS)=3000H,(IP)=2000H, OPR的偏移量为0100H,执行指令: JMP NEAR PTR OPR
如下图所示,执行指令后, (CS)=3000H (IP)=2003H+0100H=2103H
2021/8/17
30
2021/8/17
(32位)。
2021/8/17
39
【例3-11】
已知:(CS)=3000H,(IP)=0100H, DATA指向的存储单元的内容为00H、10H 、00H和40H,执行指令:
JMP DWORD PTR DATA
如下图所示,执行指令后,当前指令的CS 被赋于4000H,IP被赋于1000H,
其物理地址为:4000H×16+1000H= 41000H。
2021/8/17
40
2021/8/17
41

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

微机原理第三章 8086的寻址方式和指令系统ppt课件
①寻址方式不同; ②用DW定义,COUNT单元中的内容可修改,用EQU定义, COUNT为常数。
4、寄存器间接寻址方式 (Register Indirect Addressing)
EA在指定的寄存器中,只能是基址BX、BP,变址SI、 DI四者之一。 MOV AX, [DX] (非法)
默认关系:SS:BP, DS:BX、SI、DI 可进行段超越,如 MOV AX,DS:[BP]
• 根据有效地址EA〔Effective Address〕的构成 方式,存储器寻址分为以下五种:
• 段寄存器使用的基本约定 •
3、直接寻址方式(Direct Addressing) EA就在指令中,默认段寄存器为DS 如:MOV AX,[2000H] 设DS=3000H 则EA=2000H,PA=DS×16+EA=32000H, 操作数来自32000H〔或3000H:2000H处),结果AX=3514H
例如: MOV AX,COUNT[BX][SI] MOV AX,COUNT[BX+SI] MOV AX,[BX+SI+COUNT]
以上三者等价
如 MOV AX,MASK[BX][SI] 设DS=4100H,位移量MASK=0134H,BX=2500H,SI=1200H 则EA=(BX)+(SI)+MASK=3834H,PA= (DS)
• 8086的指令按功能可分为六大类:数据传送指令、 算术运算指令、逻辑运算和移位指令、字符串处 理指令、控制转移指令、处理器控制指令。
一、数据传送指令:负责数据在寄存器、存储器、I/O端口 之间的传递,特点是不影响标志位。
1.通用数据传送指令 (1) MOV 传送指令〔Move) 格式:MOV 目的,源;(源)→(目的)

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

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

04 寻址方式和指令系统的关 系
寻址方式对指令执行的影响
01
寻址方式决定了指令操作数的来源和访问方式,从而
影响指令的执行效率和正确性。
02
不同的寻址方式可能导致指令执行时间不同,因为它
们可能需要不同的计算步骤和内存访问次数。
03
寻址方式的正确选择可以简化指令的执行过程,提高
指令的执行效率。
指令系统对寻址方式的支持
在个人电脑(PC)领域,IBM PC/AT是基于8086的扩展版 80286开发的,奠定了现代PC 的基础。
8086也被广泛应用于工业控制、 自动化设备、仪器仪表等领域。
现代计算机系统中8086的继承和发展
尽管随着技术的进步,更先进的微处理器已经取代了8086在主流应用中的地位, 但8086的设计理念和架构仍然在许多嵌入式系统、低功耗应用中得到继承和发展 。
CALL指令用于调用子程序, 并将返回地址压入堆栈。
处理器控制类指令
处理器控制类指令用于控制 处理器的状态和行为。
包括HLT、INT、IRET等指令。
02
01
03
HLT指令用于暂停处理器执 行,等待中断或系统调用。
INT指令用于触发软件中断, 执行中断处理程序。
04
05
IRET指令用于从中断返回, 恢复程序的执行。
算术运算类指令用于执行 加、减、乘、除等算术运 算。
ADD指令将两个操作数 相加并将结果存储在目标 操作数中。
ABCD
包括ADD、SUB、MUL、 DIV等指令。
SUB指令从第一个操作数中 减去第二个操作数,并将结 果存储在目标操作数中。
逻辑运算类指令
逻辑运算类指令用于执行逻 辑与、或、非等逻辑运算。

第三章 8086的指令系统()PPT课件

第三章 8086的指令系统()PPT课件

7、串寻址(String addressing)
串寻址方式仅在8086的串指令中 使用。规定源操作数的逻辑地址为 DS:SI;目的操作数的逻辑地址为 ES:DI。当执行串指令的重复操作时, 根据设定的方向标志(DF),SI和 DI会自动调整。
8、I/O(输入/输出)端口寻址 (I/O port addressing)
2、MOV数据传送指令
其格式为:
MOV 目的操作数,源操作数
目的操作数和源操作数均可采用不 同的寻址方式,但两个操作数的类 型必需一致。
二、寻址方式介绍
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后
面,作为指令一部分存放在内存的代 码段中,这种操作数称为立即数。
1、通用数据传送指令
1)、MOV 传送指令 指令格式为: MOV 目的 ,源
2)PUSH 进栈指令
指令格式为:PUSH 源操作数 其操作过程是: a、SP-1,
指示堆栈中可以存放数据的位置,存源 操作数的高8位; 。
3)POP 出栈指令
指令格式为:POP 目的操作数
一、8086的操作码
指令由操作码和操作数(地址码) 组成。8086的指令长度是可变的,一 条指令一般由1-6个字节组成(加上 前缀字节,最长可为7字节)。
二、8086指令中寄存器的编码
8086指令中通常使用一个或两个 操作数,在少数指令中有隐含的第三 个操作数。
三、指令中的操作数
1、单指令操作数
当操作数在外部设备时,使用I/O指令。 此时有两种不同的寻址方式访问I/O端口。 (1) 直接端口寻址方式。 (2) 采用寄存器间接寻址方式 (3) 输入指令中目的操作数可为AL或
AX;输出指令中源操作数可为AL或AX。 例:

微机原理及接口技术课件第3章 8086寻址方式与指令系统

微机原理及接口技术课件第3章 8086寻址方式与指令系统
8086汇编语言指令由4部分组成,格式如下: [标号:] [前缀] 助记符 [操作数] [ ; 注释]
其中,方括号表示的部分为任选部分,在具体指令中不是必需的。
4
第3章 8086寻址方式与指令系统
3.1 指令格式 3.2 8086寻址方式 3.3 8086指令系统 3.4 数据传送指令 3.5 算术运算指令 3.6 逻辑运算和移位指令 3.7 串操作指令 3.8 程序控制指令 3.9 处理器控制指令
; 将立即数1234H送入累加器AX ; 将立即数0FH送入累加器AL ; 将立即数12H送入变量VAR指向的存储单元 ; 把0000H送入DI ; 把字母A的ASCII码(41H)送入AH ; 把ASCII码(4241H)送入BX ; 把二进制数10100011B送入CL ; 把100(64H)送入数据段由SI和SI+1指向的 ; 两个存储单元中
25
3.2 8086寻址方式
一般情况下指令是顺序逐条执行的,但实际上也经常发生执行转移指令改变程 序执行流向的现象。与前述数据寻址方式是确定操作数的地址不同,转移地址 寻址方式是用来确定转移指令的转向地址(又称转移的目标地址)。下面首先 说明与程序转移有关的几个基本概念,然后介绍4种不同类型的转移地址寻址 方式,即段内直接寻址、段内间接寻址、段间直接寻址和段间间接寻址。图36展示了4种程序转移地址的寻址方式。
4.寄存器间接寻址
寄存器间接寻址分为两种情况: (1)以SI、DI、BX间接寻址,通常操作数在现行数据 段区域中,此时DS×16+REG为操作数的地址,REG表示 寄存器是SI、DI、BX之一。 ( 2 ) 以 寄 存 器 BP 间 接 寻 址 , 操 作 数 在 堆 栈 段 中 , 即 SS×16+BP为操作数的地址。

05第3章 8086寻址方式和指令系统1PPT课件

05第3章 8086寻址方式和指令系统1PPT课件

2020/10/30
11
指令中符号的判别(1)
• 直接寻址在汇编语言书写形式上类似立即数寻址,必 须从整个程序上下文分析中才能得出正确结论。
例如:
DSEG SEGMENT
DATANDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START: MOV AX, DSEG
AX AH AL
代码段
OP 64 30
操作码
操作数 (立即数)
2020/10/30
6
3.1.2 寄存器寻址方式
指令 寄存器号
寄存器 操作数
寄存器寻址方式示意图
• 操作数在寄存器中,指令指定寄存器号。对于16位操作数, 寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP等; 对于8位操作数,寄存器可以是AH、AL、BH、BL、CH、 CL、DH和DL等。这种寻址方式操作数的示意如上图所示。
2020/10/30
3
3.1 8086的寻址方式
• 立即数寻址方式 • 寄存器寻址方式 • 直接寻址方式 • 寄存器间接寻址方式 • 寄存器相对寻址方式 • 基址变址寻址方式 • 相对基址变址寻址方式 • 其他
2020/10/30
4
3.1.1 立即数寻址方式
• 操作数直接存放在指令中,紧跟在操作码之后,它作 为指令的数字段存放在指令代码中,这种操作数称为 立即数。立即数可以是8位的或16位的。如果是16位立 即数,则低位字节数存放在低地址单元中,高位字节 数存放在高地址单元中。机器码存放形式如下所示:
微型计算机原理与接口技术 第5讲
电子邮件:gqz@
1
第3章 8086寻址方式和指令系统
• 本章介绍以下内容

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

微机原理课件第三章8086寻址方式和指令系统
8086处理器的中断系统
支持外部中断和内部中断,用于处理各种事 件和异常。
通过寄存器的内容来访问数据。
寄存器相对寻址
通过寄存器的内容加上偏移量来计算内存地 址,然后访问数据。
指令格式
操作码和操作数
指令由操作码和操作数组成。
操作数的个数
指令前缀
指令可以有不同数量的操作数, 包括零个、一个、两个或更多。
指令前缀用于改变指令的行为 或影响指令的执行方式。
指令系统
1
数据传送指令
微机原理课件第三章8086 寻址方式和指令系统
本章将介绍8086微处理器的寻址方式和指令系统。内容包括不同的寻址方式, 指令格式,指令系统,指令执行周期,以及8086处理器的特点和功能。
寻址方式
直接寻址
通过直接给出内存地址来访问数据。
寄存器间接寻址
通过寄存器的内容所指向的内存地址来访问 数据。
寄存器直接寻址
从内存中获取指令。 执行指令中的操作。 将结果存储回内存。 处理器响应中断请求。
8086处理器
8086处理器的特点
具有16位的数据总线和地址总线,支持最多 1MB的内存。
8086处理器的工作模式
包括实模式和保护模式,可以用于运行不同 类型的软件。
8086处理器的寄存器
包括通用寄存器、段寄存器和指令指针寄存 器。
用于在寄存器和内存之间传输数据。算,如加法、减法、乘法、除法和位操作。
3
逻辑指令
执行逻辑操作,如与、或、非和异或。
4
比较指令
用于比较两个值的大小,并根据比较结果设置标志位。
5
转移指令
用于无条件或有条件地改变指令执行的顺序。
指令执行周期
取指令周期 执行指令周期 存储指令周期 中断响应周期

7微机原理 第三章8086指令系统3PPT课件

7微机原理 第三章8086指令系统3PPT课件
3
❖ 串比较: ❖ CMPSB ❖ [(ES:DI)]-[(DS:SI)]; ❖ SI=SI±1,DI=DI±1; ❖ 重复前缀控制前两步 ❖ CMPSW ❖ [(ES:DI)]-[(DS:SI)]; ❖ SI=SI±2,DI=DI±2; ❖ 重复前缀控制前两步
4
❖ 串搜索: ❖ SCASB ❖ AL-[(ES:DI)]; ❖ DI=DI±1; ❖ 重复前缀控制前两步 ❖ SCASW ❖ AX-[(ES:DI)]; ❖ DI=DI±2; ❖ 重复前缀控制前两步
5
❖ 存串 ❖ STOSB ❖ AL→[(ES:DI)];DI=DI±1; ❖ 重复前缀控制前两步 ❖ STOSW ❖ AX→[(ES:DI)];DI=DI±2; ❖ 重复前缀控制前两步
6
❖ 取串: ❖ LODSB ❖ [(DS:SI)]→AL;SI=SI±1; ❖ 一般不用重复前缀 ❖ LODSW ❖ [(DS:SI)]→AX;SI=SI±2; ❖ 一般不用重复前缀
7
❖ 注意以下几个问题:
❖ (1) SI(源串地址),DI(目的地址), CX(字串长度),AL(存取或搜索的默 认值)。
❖ (2) 源串在数据段DS,
❖ 目的串在附加段ES。
❖ (3) DF=1,地址减1修改;DF=0时,地 址加1修改,
❖ MOVS、STOS、LODS指令不影响标志 位。
8
❖ MOVS指令的功能:
1
整体概况
+ 概况1
您的内容打在这里,或者通过复制您的文本后。
概况2
+ 您的内容打在这里,或者通过复制您的文本后。
概况3
+ 您的内容打在这里,或者通过复制您的文本 ❖ [(ES:DI)]←[(DS:SI)]; ❖ SI=SI±1,DI=DI±1; ❖ REP控制重复前两步 ❖ MOVSW ❖ [(ES:DI)]←[(DS:SI)]; ❖ SI=SI±2,DI=DI±2;REP控制重复前两步

微机原理第三章 8086指令系统01PPT课件

微机原理第三章  8086指令系统01PPT课件
❖ 串数据类型——是指位、字节、字或双字 的连续序列。 位串:最多 2321 位。 字节串:包含字节、字或双字,范围 从0~ 2321 字节
7
3.2 8086的指令格式
❖ 指令用助记符表示,格式如下:
标号: 助记符 参数1,参数2,参数3;注释
操作码场
操作数场
注意:参数1,参数2,参数3 三个操作数是任
选的,根据指令的不同,可以是0~3个。
例:SUM: ADD AX, [BX] ; 加法运算入口 8
3.3 8086的寻址方式
❖ 寻找操作数的方式,在微型计算机中操作数可 能的位置不外乎三种: 1.包含在指令中——立即寻址 2.包含在CPU的某个寄存器中——寄存器 寻址 3. 操作数在内存的数据区中,指令中包含此操 作数的地址。该地址由两部分构成:此单元所 在段的基地址(多数情况在DS段)和此单元 与段基址的距离——段内偏移量。指令中规定 的就是这个偏移量,也叫有效地址EA。 根据EA构成情况的不同,对应不同的寻址方 式。
操作数所在内存单元的完整地址表达式:
段寄存器R : [基址R+变址R+位移量]
通知CUP访问哪个 逻辑段
有效地址/偏移地址
19
在内存中的操作数由段选择子和偏移量引用。 段选择子规定包含操作数所在的段:
段选择子能隐含或显式规定,基本约定见书 上P.49表3-2。 以下的默认段,不能被超越: (1) 必须从码段取指令; (2) 在串操作中的目的必须存储在由ES寄存器 指向的数据段; (3) 入栈和出栈操作必须是引用SS 段。
注意:立即寻址主要用来给寄存器或存储器赋初 值。
12
立即寻址示意图: 存储器
AH AL
OP 64 指令 30
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 3 章 8086பைடு நூலகம்令系统
3.1 基本数据类型 3.2 8086的指令格式 3.3 8086指令的操作数寻址方式 3.4 8086的通用指令
3.1 基本数据类型
x86系列处理器的基本数据类型是字节、 字、双字、四字和双四字。
一个字节是8位,一个字是两个字节(16 位),双字是4字节(32位),四字是8字 节(64位),双四字是16字节(128位)。
3.2 8086的指令格式
当指令用符号(助记符)表示时,就是使用8086 汇 编语言的子集。在此子集中,指令有以下格式:
标号:助记符 [参数1 [, 参数2 [, 参数3] ] ] 其中: (1) 标号(label)是一个标识符后面跟有冒号(:); (2) 助记符(mnemonic code)是一类具有相同功能的指令操
•MOV AH, 80H
ADD AX, 1234H
•MOV ECX, 123456H MOV B1, 12H
•MOV W1, 3456H ADD D1, 32123456H
其中:B1、W1和D1分别是字节、字和双字单元。 以上指令中的第二操作数都是立即数,在汇编语言中,规定:
立即数不能作为指令中的第一操作数。该规定与高级语言中 “赋值语句的左边不能是常量”的规定相一致。 使用立即寻址的指令主要用来给寄存器赋初值。
(2) 符号整数
符号整数是保存在字节、字、双字或四 字中的带符号的二进制数。对于符号整数 的所有操作都假定用2的补码表示。符号位 定位在操作数的最高位。
负数的符号位为1,正数的符号位为0。 整数值的范围,对于字节,从-128到+127; 对于字从-32768到+32767;对于双字,从231到+(231-1);对于四字,从-263到+ (263-1)。
(1) 指令(立即数); (2) 寄存器; (3) 存储单元;(这里一般指数据段或堆栈段) (4) I/O 端口。
3.3.1 立即数寻址方式(Immediate Addressing )
某些指令用包含在指令中的数据作为源操作数, 这些操作数称为立即操作数(或简称为立即数)。
立即操作数可以是8位或16位,并且是指令的一部分。立即 数据总是紧跟在指令操作码之后并和操作码一起存放在代码段 中,因而立即数据总是和操作码一起被放入BIU中的指令队列 里,在指令执行时不需再存取存储器。
作码的保留名;
(3) 操作数参数1(argument1)、参数2(argument2)和参 数3(argument3)是任选的,可以有零到三个操作数。
指令的机器码格式请参考教材P416页附录2
操作数参数的数量取决于操作码。若存在 操作数参数,它们可能是文字或数据项的标 识符、操作数标识符、寄存器的保留名或者 是在程序的另一部分中声明的赋予数据项的 标识符。
四字是在Intel 80486处理器中引入IA32 结构的,双四字是在具有SSE扩展的 Pentium Ⅲ 处理器中引入的。
基本数据类型作为内存中的操作数引用时的字节顺序。
低字节(位0至位7)占用内存中的最低地址, 该地址也是此操作数的地址。
3.1.1 字、双字、四字和双四字的对齐
字、双字和四字在内存中并不需要对齐至自然 边界。(字、双字和四字的自然边界是偶数编号 的地址,对于双字和四字来说,地址要分别能被4 和8除尽。)
然而,为了改进程序的性能,数据结构(特别 是堆栈)只要可能就应该在自然边界上对齐。因 为对于不对齐的存储访问,处理器要求做两次存 储访问操作;而对于对齐的访问,只要进行一次 存储访问操作。
00001H 00003H 00004H
00000H 00002H 00004H
D0…D7 D8…D15
FFFFFH
当在算术和逻辑等指令中存在两个操作数 时,右边的操作数是源,左边的操作数是目 的。
例:
STC
MOV AX, [BX]
MOV AX, ES:[BX + SI + 100]
3.3 8086指令的操作数寻址方式
8086 机器指令有零个或多个操作数。某些操 作数是显式规定的,有的是指令中隐含的。一个 操作数能定位在以下之一中:
当在内存中存储整数值时,字整数存放
在两个连续字节中;双字整数存放在四个 连续字节中;四字整数存放在八个连续的 字节中。
2. 浮点数据类型
IA-32结构定义和操作三种浮点数据类型: 单精度浮点数、双精度浮点数和扩展的双 精度浮点数。
3.1.3 指针数据类型
指针是内存单元的地址,如图所示。IA-32 结构定义两 种类型的指针:近(near)指针(32位)和远(far)指 针(48位)。near指针是段内的32位偏移量(也称为有效 地址)。Near指针在平面存储模式中用于所有存储器引用; 或在分段存储模式中用于同一段内的存储器引用。far指针 是一个48位的逻辑地址,包含16位段选择子和32位的偏 移量。far指针用于在分段存储模式中的跨段存储引用。
8086是16位段地址+16位偏移量
3.1.4 位字段数据类型
一个位字段是连续的位序列。它能在内 存中任何字节的任一位位置开始并能包含 最多至32位。
3.1.5 串数据类型
串是位、字节、字或双字的连续序列。 位串能从任一字节的任一位开始并能包含 多至232-1位。字节串能包含字节、字或双 字,其范围能从0至232-1字节(4GB)。
FFFFEH
3.1.2 数字数据类型
虽然字节、 字和双字是IA32 结构的基本 数据类型,但某 些指令对这些数 据类型的附加解 释允许在数字数 据类型(带符号 的或无符号整数 和浮点数)上操 作。这些数字数 据类型如图所示。
1. 整数
IA-32结构定义两种类型整数:无符号整数和 符号整数。
无符号整数是原始二进制值,范围从0到所选 择的操作数尺寸能编码的最大正数;
符号整数是2的补码二进制值,能用于表示正 的和负的整数值。
-3 原码: 1000 0011 正数的反码、补码均与原码相同 反码: 1111 1100 补码: 1111 1101
或用0减原码
(1) 无符号整数
无符号整数是包含字节、字、双字和四 字中的无符号的二进制数。它们的值的范 围,对于字节是从0到255;对于字,从0到 65535;对于双字,从0到232-1;对于四字, 从0到264-1。无符号整数有时作为原始数引 用。
相关文档
最新文档