80X86指令系统PPT课件
合集下载
微机原理第三章80X86寻址方式与指令系统PPT课件

POP BX
源操作数隐含为栈顶字单元
LAHF
源操作数隐含为标志寄存器低字节,
目操作数隐含为寄存器AH
第13页
2020/9/29
微机原理及应用
8086寻址方式——其它方式(2)
2、相对寻址 仅用于进行段内直接转移的控制转移指令。
指令中的操作数是一个8位或16位带符号的相对 偏移量,代表目标地址与正常执行顺序的原地 址之差。
DS:
ES:
ES: — SS: —
—
CS:
CS:
固定 搭配 的寄 存器
SP
DI IP
第12页
2020/9/29
微机原理及应用
8086寻址方式——其它方式(1)
三、其它寻址方式
1、固定寻址(隐含寻址)
操作数并不直接出现在指令中,而是由操作码隐含地指 定为某一固定内容。
例: PUSH DS 目操作数隐含为栈顶字单元
便于书 写可读
指令的书写格式(以8086性为强例)
操作码助记符 [[目操作数助记符], [源操作数助记符]] (操作码:必备;操作数:可以是1个、2个或没有,可以是
8位或16位)
指令的编码格式(以8086为例由)机器
采用变长编码格式,属于CIS识C别。和
低端
执行
高端
指令前缀 操作码字段 寻址方式字段 操作数字段
第5页
2020/9/29
80X86寻址方式(续)
微机原理及应用
非存储器寻址方式
立即数寻址 寄存器(直接)寻址
存储器寻址方式
直接寻址 寄存器间接寻址 基址寻址 变址寻址 基址加变址寻址
其它寻址方式 —固定寻址、相对寻址、I/O端口寻址
第6页
台计算机的数据处理能力--80X86型微处理器具有的寻址方式及指令系统幻灯片PPT

台计算机的数据处理能力-
-80X86型微处理器具有的
寻址方式及指令系统幻灯
片PPT
本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢!
AND [SI+0A],DH CMP BYTE PTR [SI],3F JNZ 011C CMP CX,+01 JBE 011C MOV AL,[BX] STOSB INC BX INC SI DEC CX INC AH MOV AL,[BX] CMP AL,20 JZ 011C STOSB XOR AL,00 STD OR DH,DH
Байду номын сангаас
4.2 指令格式
表示一条指令的机器字,就称为指令字,通常简称指令。 一条指令字的二进制位数称为指令字长,一般采用可变的指令字长 指令格式,则是指令字用二进制代码表示的结构形式。一条指令 的结构可用如下形式来表示:操作码和地址码两部分组成。
操作码字段 地址码字段
4.2.1 操作码 (固定长度的操作码、可变长度的操作码)
一台计算机中所有机器指令的集合,称为这台计算机的指令系 统。
70年代末期,计算机硬件结构随着VLSI技术的飞速发展而越来 越复杂化,大多数计算机的指令系统多达几百条。我们称这些计算 机为复杂指令系统计算机,简称CISC。 如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确 性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。所以在1989年随着80486 DX CPU计算机的诞 生,人们又提出了便于VLSI技术实现的精简指令系统计算机,简称 RISC,有效地减少了指令的执行周期。而且它以RISC技术为基础, 通过几条RISC指令和并行流水线方式来支持经典的CISC型指令。同 时由于组成指令周期的机器周期变得很规整,所以可以用组合逻辑 控制器代替微程序控制器来提高CPU处理速度。
-80X86型微处理器具有的
寻址方式及指令系统幻灯
片PPT
本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢!
AND [SI+0A],DH CMP BYTE PTR [SI],3F JNZ 011C CMP CX,+01 JBE 011C MOV AL,[BX] STOSB INC BX INC SI DEC CX INC AH MOV AL,[BX] CMP AL,20 JZ 011C STOSB XOR AL,00 STD OR DH,DH
Байду номын сангаас
4.2 指令格式
表示一条指令的机器字,就称为指令字,通常简称指令。 一条指令字的二进制位数称为指令字长,一般采用可变的指令字长 指令格式,则是指令字用二进制代码表示的结构形式。一条指令 的结构可用如下形式来表示:操作码和地址码两部分组成。
操作码字段 地址码字段
4.2.1 操作码 (固定长度的操作码、可变长度的操作码)
一台计算机中所有机器指令的集合,称为这台计算机的指令系 统。
70年代末期,计算机硬件结构随着VLSI技术的飞速发展而越来 越复杂化,大多数计算机的指令系统多达几百条。我们称这些计算 机为复杂指令系统计算机,简称CISC。 如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确 性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。所以在1989年随着80486 DX CPU计算机的诞 生,人们又提出了便于VLSI技术实现的精简指令系统计算机,简称 RISC,有效地减少了指令的执行周期。而且它以RISC技术为基础, 通过几条RISC指令和并行流水线方式来支持经典的CISC型指令。同 时由于组成指令周期的机器周期变得很规整,所以可以用组合逻辑 控制器代替微程序控制器来提高CPU处理速度。
第二章 80X86微处理器PPT课件

80x86/Pentium处理器的寄存器模型
2
❖ EIP是一个专用寄存器,用于寻址当前需要 取出的指令字节。当CPU从内存中取出一个指 令字节后,EIP就自动加1,指向下一指令字节。 当微处理器工作在实模式下时,这个寄存器为 IP(16位);当80386及更高型号的微处理器工作 于保护模式下时,则是EIP(32位)。
❖ 逻辑地址是编程时所使用的地址。或者说程序设计时 所涉及的地址是逻辑地址而不是物理地址。编程时不 需要知道产生的代码或数据在存储器中的具体物理位 置。这样可以简化存储资源的动态管理。在实模式下 的软件结构中,逻辑地址由“段基值”和“偏移量” 两部分构成。
11
逻辑地址
.
15 段寄存器 0
. 段基值(16位)
从地址FFFF0H~FFFFFH这16个字节单元保留给系 统的初始化代码。当处理器加电或复位(Reset)时, CPU执行的第一条指令就是起始于地址FFFF0H的。通 常是在FFFF0H处存放一条无条件转移指令,以转移到 系统程序的入口处。
通用区域用来存储一般的程序指令和数据。由图可
见,它的地址范围为00400H~FFFEFH。
在实模式下存储器的地址空间为1M字节单元, 其地址范围为00000H~FFFFFH。
实模式下的存储器地址空间被分为通用和专用两 种存储区。
从地址00000H~003FFH这第一个1024个字节单 元是专用的。这个存储区为中断向量表区,专门用 来存放256个中断服务程序的入口地址(也称中断向 量),每个入口地址占4个字节单元。
标 跟踪标志 志
Trace Flag
进位标志
奇偶标志
状
半进位标志 态
零标志
标 志
符号标志
80x86的指令系统和寻址方式(1).ppt

第3章 80x86的指令系统和寻址方式
• 指令系统
一组指令的集合
指令
操作码 操作数 ... 操作数
• 寻址方式
与数据有关的寻址方式 与转移地址有关的寻址方式
物理地址的形成
3.1.1 8086中数据寻址方式
以 MOV 指令为例
• 立即寻址
MOV AX , 3069H
• 寄存器寻址
MOV AL , BH
JMP
目标地址的范围:段内
• 段内转移——近转移(near)
– 在当前代码段64KB范围内转移
代
( ±32KB范围)
码 段
– 不需要更改CS段地址,只要改变IP偏
移地址
• 段内转移——短转移(short)
代 码
– 转移范围可以用一个字节表达,在段
段
内-128~+127范围的转移
目标地址的范围:段间
• 段间转移——远转移(far)
– 从当前代码段跳转到另一个代码 段,可以在1MB范围
代 码
– 需要更改CS段地址和IP偏移地址
段
– 目标地址必须用一个32位数表达,
叫做32位远指针,它就是逻辑地
代
址
码
段
实际编程时,汇编程序会根据目标地址的距离, 自动处理成短转移、近转移或远转移
程序员可用操作符short、near ptr 或far ptr 强制
假设(35000H)=1234H, 那么 (AX)=1234H
* 适于数组、字符串、表格的处理
(6) 基址变址寻址方式*
有效地址 =
(BX) +
(SI)
(BP) (DI)
指令格式:
MOV MOV MOV
AX, [BX] [DI] AX, [BX+DI] AX, ES:[BX] [SI]
• 指令系统
一组指令的集合
指令
操作码 操作数 ... 操作数
• 寻址方式
与数据有关的寻址方式 与转移地址有关的寻址方式
物理地址的形成
3.1.1 8086中数据寻址方式
以 MOV 指令为例
• 立即寻址
MOV AX , 3069H
• 寄存器寻址
MOV AL , BH
JMP
目标地址的范围:段内
• 段内转移——近转移(near)
– 在当前代码段64KB范围内转移
代
( ±32KB范围)
码 段
– 不需要更改CS段地址,只要改变IP偏
移地址
• 段内转移——短转移(short)
代 码
– 转移范围可以用一个字节表达,在段
段
内-128~+127范围的转移
目标地址的范围:段间
• 段间转移——远转移(far)
– 从当前代码段跳转到另一个代码 段,可以在1MB范围
代 码
– 需要更改CS段地址和IP偏移地址
段
– 目标地址必须用一个32位数表达,
叫做32位远指针,它就是逻辑地
代
址
码
段
实际编程时,汇编程序会根据目标地址的距离, 自动处理成短转移、近转移或远转移
程序员可用操作符short、near ptr 或far ptr 强制
假设(35000H)=1234H, 那么 (AX)=1234H
* 适于数组、字符串、表格的处理
(6) 基址变址寻址方式*
有效地址 =
(BX) +
(SI)
(BP) (DI)
指令格式:
MOV MOV MOV
AX, [BX] [DI] AX, [BX+DI] AX, ES:[BX] [SI]
80X86指令系统13课件

(23000H)=2211H, (23002H)=4433H
JMP DWORD PTR [BX][SI]
则: BX + SI =3000H
IP=(PA)=( 16d(DS)+(BX)+(SI) )=(23000H)=2211H
CS =(PA+2)=4433H
19
第20页,共74页。
( 2) Jcc 条件转移指令
20250H
…
…
18
第19页,共74页。
段间间接转移:(CS) 、 (IP)都改变
格式:JMP DWORD PTR OPR
OPR —使用存储器
(除立即数和寄存器以外的任何一种寻址方式)
执行操作: IP ←(EA)
CS←(EA+2)
例:已知 BX =1000H, SI =2000H , DS =2000H
执行操作: IP ← IP 当前+D8 SHORT 短属性标号
8位位移量D8的范围在(-128 ~ 127)之间,占有一个字节。 而指令本身占有两个字节。
12
第13页,共74页。
例如:代码段内有一条无条件转移指令,在汇编语言中使用符号 地址JMP SHORT NEXT指令执行过程:
NEXT—在汇编语言中使用符号地址 IP ← IP当前 + D8
执行操作:
IP (EA)
或 IP reg16
指令格式举例:
JMP AX JMP TABLE [BX] JMP ALPHA_WORD
JMP SI ; 操作数已定义为16位存储器 ;操作数已定义为16位存储器
JMP WORD PTR [BP][DI]
15
第16页,共74页。
80X86 Instructions80x86指令幻灯片PPT

PSHB
; save value in ACCB
MUL
; ACCD = ACCA*ACCB
ADCA #$00 ; round to 8 bits
PULB
; restore ACCB
Cont..
Using the Stacks
• Using the stack
o You can also use the stack to save intermediate
Cont..
HC11 Implementation
PUSH Instructions
• Push instructions
o PSHA, PSHB, PSHX, PSHY
➢ Stores data in memory at address pointed to by SP
➢ Decrements SP ➢ For 16-bit values, low-
o Register that points to the memory location immediately preceding the top of the stack
o In other words, the SP normally contains the address for a new data item to be pushed
• Bottom of the stack is at highest memory address, and top of the stack is at the lowest address
o Stack grows from high to low address
CoVBU, stack is usually placed at $01FF • Stack Pointer (SP)
第3章 80x86指令系统与寻址方式1精品PPT课件

寻址方式选择得正确与否,直接影响程序的执行效率。 next
第3章 80x86指令系统与寻址方式
3.2 寻址方式
寻址方式 分类
与数据有关的寻址方式 与转移地址有关的寻址方式
next
第3章 80x86指令系统与寻址方式
对源操作数分别使用7 种寻址方式: (1)立即掌寻握址寻方址式方(式Im的m要edi点ate:Addressing ) (2)寄存❖器特寻点址(方区式别(于R其eg他iste寻r A址dd方re式ssin)g ;) (3)直接❖寻使址用方方式法((D语ir法ect形Ad式dr)ess;ing ) (4)寄存❖器用间途接(寻什址么方情况式下(使Re用gis)ter Indirect Addressing ) (5)寄存器相对寻址方式 ( Register Relative Addressing ) (6)基址变址寻址方式( Based Index Addressing ) (7)相对基址变址寻址方式( Relative Based Index Addressing )
next
第3章 80x86指令系统与寻址方式
例如: MOV AX,[BX] ;PA=(DS) ×16+(BX) 特点: (寄存器) = 操作数的偏移地址 用途: 可用于处理数组
next
第3章 80x86指令系统与寻址方式
(5)寄存器相对寻址方式 ( Register Relative Addressin
限制:只能用于源操作数
next
第3章 80x86指令系统与寻址方式
(2)寄存器寻址方式(Register Addressing ) 例如: MOV SI, CX
特点:操作数存在寄存器中。 用途:用寄存器提供操作数时存取速度快。
第3章 80x86指令系统与寻址方式
3.2 寻址方式
寻址方式 分类
与数据有关的寻址方式 与转移地址有关的寻址方式
next
第3章 80x86指令系统与寻址方式
对源操作数分别使用7 种寻址方式: (1)立即掌寻握址寻方址式方(式Im的m要edi点ate:Addressing ) (2)寄存❖器特寻点址(方区式别(于R其eg他iste寻r A址dd方re式ssin)g ;) (3)直接❖寻使址用方方式法((D语ir法ect形Ad式dr)ess;ing ) (4)寄存❖器用间途接(寻什址么方情况式下(使Re用gis)ter Indirect Addressing ) (5)寄存器相对寻址方式 ( Register Relative Addressing ) (6)基址变址寻址方式( Based Index Addressing ) (7)相对基址变址寻址方式( Relative Based Index Addressing )
next
第3章 80x86指令系统与寻址方式
例如: MOV AX,[BX] ;PA=(DS) ×16+(BX) 特点: (寄存器) = 操作数的偏移地址 用途: 可用于处理数组
next
第3章 80x86指令系统与寻址方式
(5)寄存器相对寻址方式 ( Register Relative Addressin
限制:只能用于源操作数
next
第3章 80x86指令系统与寻址方式
(2)寄存器寻址方式(Register Addressing ) 例如: MOV SI, CX
特点:操作数存在寄存器中。 用途:用寄存器提供操作数时存取速度快。
第三章 80X86微处理器的指令系统PPT课件

隐含使用变址寄存器 SI、DI的特殊寄存 器间接寻址
SI:源操作数偏移地址
DI:目的操作数偏移地址
执行串操作指令后,SI和DI自动增/减量, 指向下一个操作数的偏移地址,增减量
由DF位及字长决定。
DF=0:字节 +1;字 +2
DF=1:字节 -1;字 -2
当串操作指令前有重复操作前缀REP,
则执行一次,CX-1CX,直到CX=0时停
第3章 8086的汇编语言程序设计
3.1 8086 的指令系统
3.1.1 8086指令的寻址方式 操作数的表示方式,大多情况是给出计算 操作数地址的方法 操作数分为两类:数据和转移地址,其寻 址方式有所不同 以8086为例
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
3.1.1数据的寻址方式
立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 基址变址寻址 寄存器相对寻址 相对基址变址寻址 带比例因子的变址寻址
3
1.立即寻址
指令码的最后一个字节或两个字节是操作 数,例:MOV AX,1090H 立即数只能为整数和作为源操作数,可以 是二、十、十六进制数或用‘的字符串, 若为十六进制数的以A~F打头的应前面加0。
类型属性
FAR:段间转移;NEAR:
段内转移(不改变CS值)。
若转移范围在当前指令的-128~+127内,在 操作数前加SHORT。
例2:段间直接转移寻址
JMP FAR PTR START
14
2)段内寄存器寻址
指令中寄存器内容是转移地址,适用于段 内转移,寄存器可用通用寄存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 例:MOV AX, 2[SI] MOV BL ,2[SI]
假设 (DS) = 3000H, (SI) = 2000H , (32002H)=12H, (32003H)=34H
那么 PA = 32002H 则 (AX)= 3412H ,(BL)=12H
3.2.6、基址变址寻址* * — 操作数在存储器中,偏移地址
• 间接端口寻址 :外设端口地址(端口号)为16位立即
数时,先将它放在DX寄存器中。
{ { 例: MOV DX, 278H
MOV DX, 280H
OUT DX , AL
OUT DX , AX
• IN和OUT指令是累加器专用传送指令,进行字节
操作时采用AL,进行字操作时采用AX。
13
3.2.9、隐含寻址* * ——— 指令中没有操作数,但隐含着
PA=(DS)×16+(BX)或(SI)或(DI)+位移量 PA=(SS) ×16+(BP)+位移量
指令格式举例
MOV DX, 100H MOV AX , [100H] MOV AX, VAR MOV AX, BX MOV AX, [BX]
对 固定对象的操作,也称固定寻址。
例: AAA(加法的ASCII调整指令) ;隐含对AL操作
14
寻址方式
立即寻址
寻址方式小结 操作数地址(PA)
操作数由指令给出
直接寻址
操作数的有效地址由指令直接给出
寄存器寻址 操作数在寄存器中
寄存器 间接寻址
变址寻址
PA=(DS)×16+(BX)或(SI)或(DI) PA=(SS) ×16+(BP)
11
3.2.7、串寻址* * — 字符串操作指令使用隐含的变址寄存
器寻址 例: 源串操作数用SI,段地址用DS; 目的串操作数用DI,段地址用ES。
12
3.2.8、端口寻址* * ——CPU寻址外设设备
• 直接端口寻址:外设端口地址(端口号)为8位立即数
例: IN AX , 28H ; IN AL ,35H
包括
有效地址 =三部(分BX:) 基+址寄(S存I) 器+ 、8变位址寄位存移器量和位移量。
(BP)
(DI) 16位
• BX (DS) • BP (SS)
•例如: MOV AX , MASK [BX] [SI] •必须是一个基址寄存器和一个变址寄存器的组合
MOV AX, 2[BX][BP] MOV AX , 2[SI][DI]
偏移地址在寄存器 BX、BP、SI、DI 中
• BX, SI, DI (DS)
(BX)
物理地址 PA = 16 (DS) + (SI)
• BP (SS)
(DI)
物理地址 PA = 16 (SS) + (BP)
• 例如:
MOV AX , [BX]
PA = 16d (DS) + (BX)
MOV DL , [BP]
DS);如果操作数不是存放在数据段中,则必须给出段寄存器 名。例如:
MOV BX,VAR ;
MOV DA_BYTE,0FH ; DS
MOV CL,DA+3 ;
BX
上述3条指令分别等价于:
VAR EA FFH 00H
00FFH
M○V BX,DS:VAR
MOV DS:DA_BYTE,0FH
MOV CL,DS:DA+3
7
3.2.3、寄存器寻址* * —— 操作数在指定的寄存器中
MOV AX , BX
MOV AL , BH
• 操作数可以在任一个通用寄存器中。
• 字节寄存器只有 AH AL BH BL CH CL DH DL
• 源与目的的字长一致。
MOV AH , BX
8
3.2.4、寄存器间接寻址* * —— 操作数在存储器中,
第三章 80X86指令系统
熟练掌握 8086的九种寻址方式的含义以及 实现过程。
熟练掌握8086常用指令的功能。 了解80X86的寻址方式和指令集的特点。
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
3-1 8086指令格式和操作数类型
❖ 立即数
MOV AX ,1000H
❖寄存器操作数 ADD DI ,SI
❖ 存储器操作数 必须找到操作数所在的存储器的物理地址
MOV AL ,[2000H]
MOV AL ,[SI]
3
3-2 8086的寻址方式
3.2.1、立即寻址* * —— 操作数在指令中给出
MOV AL , 5
MOV AX , 3064H
• 立即数只能用于源操作数字段 MOV 5, AL
• 传送大于寄存器位数的数值时将引起错误。
MOV AH , 3064H
✓ MOV BX , 64H
3.2.2、直接寻址* * — 操作数在存储器中(默认操作数在数据
段中)
偏移地址由指令直接给出
• 隐含使用数据段寄存器
物理地址 PA = 16d (DS) + EA
▪ 8086的指令格式: 操作码(指令助记符)+ 操作数
MOV dst , src ; (dst) (src)
↑
↑↑
助记符 目的操作数 源操作数
❖ 无操作数指令 NOP ; HLT
❖ 单操作数指令 DEC AX ;INC BX
❖ 双操作数指令 MOV AX ,1000H ; ADD DI ,SI
▪ 操作数类型
PA = 16d (SS) + (BP)
MOV AX , ES:[BX]
PA = 16d (ES) + (BX)
9
3.2.5、变址寻址* * —操作数在存储器中,偏移地址包括两
部分
(BX)
偏移地址 =
(SI) + 8位 位移量
(DI)
16位
(BP)
• BX, SI, DI (DS)
• BP (SS)
例:MOV AX, [2000H] 假设(DS)=3000H 物理地址 PA = 30000H + 2000H = 32000H
• 也可用符号地址(变量名或标号)代替数值地址。
例: MOV AH , DATA1
•也允许段超越方式使用其它段寄存器
5
例:MOV AX, ES:[2000H]
(1)直接寻址方式(Direct Addressing) 直接寻址方式是指: 操作码 。。。位移量
EA
直接寻址方式可以用数值地址或符号地址来表示。
MOV BX,DS:[1000H]
操作码 MOD/RM
00H 10H
DS
BX
1234H
34H 12H
6
位移量
1000H
EA
用.符用号符地号址地表址示表的示直接寻址方式来存取操作数。操作数知果存 放在数据段中,则指令中不必给出数据段寄存器名(即隐含使用
假设 (DS) = 3000H, (SI) = 2000H , (32002H)=12H, (32003H)=34H
那么 PA = 32002H 则 (AX)= 3412H ,(BL)=12H
3.2.6、基址变址寻址* * — 操作数在存储器中,偏移地址
• 间接端口寻址 :外设端口地址(端口号)为16位立即
数时,先将它放在DX寄存器中。
{ { 例: MOV DX, 278H
MOV DX, 280H
OUT DX , AL
OUT DX , AX
• IN和OUT指令是累加器专用传送指令,进行字节
操作时采用AL,进行字操作时采用AX。
13
3.2.9、隐含寻址* * ——— 指令中没有操作数,但隐含着
PA=(DS)×16+(BX)或(SI)或(DI)+位移量 PA=(SS) ×16+(BP)+位移量
指令格式举例
MOV DX, 100H MOV AX , [100H] MOV AX, VAR MOV AX, BX MOV AX, [BX]
对 固定对象的操作,也称固定寻址。
例: AAA(加法的ASCII调整指令) ;隐含对AL操作
14
寻址方式
立即寻址
寻址方式小结 操作数地址(PA)
操作数由指令给出
直接寻址
操作数的有效地址由指令直接给出
寄存器寻址 操作数在寄存器中
寄存器 间接寻址
变址寻址
PA=(DS)×16+(BX)或(SI)或(DI) PA=(SS) ×16+(BP)
11
3.2.7、串寻址* * — 字符串操作指令使用隐含的变址寄存
器寻址 例: 源串操作数用SI,段地址用DS; 目的串操作数用DI,段地址用ES。
12
3.2.8、端口寻址* * ——CPU寻址外设设备
• 直接端口寻址:外设端口地址(端口号)为8位立即数
例: IN AX , 28H ; IN AL ,35H
包括
有效地址 =三部(分BX:) 基+址寄(S存I) 器+ 、8变位址寄位存移器量和位移量。
(BP)
(DI) 16位
• BX (DS) • BP (SS)
•例如: MOV AX , MASK [BX] [SI] •必须是一个基址寄存器和一个变址寄存器的组合
MOV AX, 2[BX][BP] MOV AX , 2[SI][DI]
偏移地址在寄存器 BX、BP、SI、DI 中
• BX, SI, DI (DS)
(BX)
物理地址 PA = 16 (DS) + (SI)
• BP (SS)
(DI)
物理地址 PA = 16 (SS) + (BP)
• 例如:
MOV AX , [BX]
PA = 16d (DS) + (BX)
MOV DL , [BP]
DS);如果操作数不是存放在数据段中,则必须给出段寄存器 名。例如:
MOV BX,VAR ;
MOV DA_BYTE,0FH ; DS
MOV CL,DA+3 ;
BX
上述3条指令分别等价于:
VAR EA FFH 00H
00FFH
M○V BX,DS:VAR
MOV DS:DA_BYTE,0FH
MOV CL,DS:DA+3
7
3.2.3、寄存器寻址* * —— 操作数在指定的寄存器中
MOV AX , BX
MOV AL , BH
• 操作数可以在任一个通用寄存器中。
• 字节寄存器只有 AH AL BH BL CH CL DH DL
• 源与目的的字长一致。
MOV AH , BX
8
3.2.4、寄存器间接寻址* * —— 操作数在存储器中,
第三章 80X86指令系统
熟练掌握 8086的九种寻址方式的含义以及 实现过程。
熟练掌握8086常用指令的功能。 了解80X86的寻址方式和指令集的特点。
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
3-1 8086指令格式和操作数类型
❖ 立即数
MOV AX ,1000H
❖寄存器操作数 ADD DI ,SI
❖ 存储器操作数 必须找到操作数所在的存储器的物理地址
MOV AL ,[2000H]
MOV AL ,[SI]
3
3-2 8086的寻址方式
3.2.1、立即寻址* * —— 操作数在指令中给出
MOV AL , 5
MOV AX , 3064H
• 立即数只能用于源操作数字段 MOV 5, AL
• 传送大于寄存器位数的数值时将引起错误。
MOV AH , 3064H
✓ MOV BX , 64H
3.2.2、直接寻址* * — 操作数在存储器中(默认操作数在数据
段中)
偏移地址由指令直接给出
• 隐含使用数据段寄存器
物理地址 PA = 16d (DS) + EA
▪ 8086的指令格式: 操作码(指令助记符)+ 操作数
MOV dst , src ; (dst) (src)
↑
↑↑
助记符 目的操作数 源操作数
❖ 无操作数指令 NOP ; HLT
❖ 单操作数指令 DEC AX ;INC BX
❖ 双操作数指令 MOV AX ,1000H ; ADD DI ,SI
▪ 操作数类型
PA = 16d (SS) + (BP)
MOV AX , ES:[BX]
PA = 16d (ES) + (BX)
9
3.2.5、变址寻址* * —操作数在存储器中,偏移地址包括两
部分
(BX)
偏移地址 =
(SI) + 8位 位移量
(DI)
16位
(BP)
• BX, SI, DI (DS)
• BP (SS)
例:MOV AX, [2000H] 假设(DS)=3000H 物理地址 PA = 30000H + 2000H = 32000H
• 也可用符号地址(变量名或标号)代替数值地址。
例: MOV AH , DATA1
•也允许段超越方式使用其它段寄存器
5
例:MOV AX, ES:[2000H]
(1)直接寻址方式(Direct Addressing) 直接寻址方式是指: 操作码 。。。位移量
EA
直接寻址方式可以用数值地址或符号地址来表示。
MOV BX,DS:[1000H]
操作码 MOD/RM
00H 10H
DS
BX
1234H
34H 12H
6
位移量
1000H
EA
用.符用号符地号址地表址示表的示直接寻址方式来存取操作数。操作数知果存 放在数据段中,则指令中不必给出数据段寄存器名(即隐含使用