第三章寻址方式讲义
合集下载
微机原理课件第三章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,
数寻在址堆方栈式段来中说,,操就作相数当的于段钥地匙址在段寄存器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,
微机原理第三章 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 目的,源;(源)→(目的)
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课件

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指令从第一个操作数中 减去第二个操作数,并将结 果存储在目标操作数中。
逻辑运算类指令
逻辑运算类指令用于执行逻 辑与、或、非等逻辑运算。
[物理]单片机3第三章寻址方式
![[物理]单片机3第三章寻址方式](https://img.taocdn.com/s3/m/b2ca773355270722192ef7f1.png)
单片机原理及应用
北京化工大学 信息科学与技术学院 郭 青
1
第三章
本章重点
寻址方式
80C51指令系统
指令格式
操作结果及对标志位影响
3.1
111条指令
概述
29 24 24 17
数据传送类指令 数学运算类指令
分类
逻辑运算类指令 控制转移类指令
位操作指令
17
单字节指令 按指令长度分类
双字节指令
三字节指令 12个振荡周期 64
COUNT:PUSH DPH; 保护DPTR内容
PUSH DPL;
MOV DPTR,#TABLE ;赋表首地址给DPTR
MOVC A, @A+DPTR
; POP DPL; 根据A中内容查表 恢复DPTR内容 返回主程序
POP DPH
RET;
ORG 1000H TABLE:DB 00 DB 01 DB 04 DB 09 DB 16 DB 25 DB 36 DB 49 DB 64 DB 81
19
3.3.1 数据传送类指令
按操作方式,分为三种: 数据传送 数据交换 栈操作
一、普通传送类指令 格式: MOV (目的操作数),(源操作数) 操作码助记符 操作: 将源操作数单元内容,传送到目的操作数 单元中,源操作数内容不变。不影响标志 位Cy,AC和OV。
操作数的组合关系
1、立即数的传送 MOV A, #data MOV Rn, #data (A) (Rn) #data #data
d:MOV direct,#data
将8位立即数送入由direct直接寻址的地 址单元中。 direct:00H~FFH,8位二进制地址码
寻址内部RAM(00H~7FH)及SFR
北京化工大学 信息科学与技术学院 郭 青
1
第三章
本章重点
寻址方式
80C51指令系统
指令格式
操作结果及对标志位影响
3.1
111条指令
概述
29 24 24 17
数据传送类指令 数学运算类指令
分类
逻辑运算类指令 控制转移类指令
位操作指令
17
单字节指令 按指令长度分类
双字节指令
三字节指令 12个振荡周期 64
COUNT:PUSH DPH; 保护DPTR内容
PUSH DPL;
MOV DPTR,#TABLE ;赋表首地址给DPTR
MOVC A, @A+DPTR
; POP DPL; 根据A中内容查表 恢复DPTR内容 返回主程序
POP DPH
RET;
ORG 1000H TABLE:DB 00 DB 01 DB 04 DB 09 DB 16 DB 25 DB 36 DB 49 DB 64 DB 81
19
3.3.1 数据传送类指令
按操作方式,分为三种: 数据传送 数据交换 栈操作
一、普通传送类指令 格式: MOV (目的操作数),(源操作数) 操作码助记符 操作: 将源操作数单元内容,传送到目的操作数 单元中,源操作数内容不变。不影响标志 位Cy,AC和OV。
操作数的组合关系
1、立即数的传送 MOV A, #data MOV Rn, #data (A) (Rn) #data #data
d:MOV direct,#data
将8位立即数送入由direct直接寻址的地 址单元中。 direct:00H~FFH,8位二进制地址码
寻址内部RAM(00H~7FH)及SFR
第三章-X的寻址方式和指令系统-.ppt

3.2 机器指令格式
操作码(Op) 地址码(Ad)
操作码(Operation Code) 地址码(Addressable Code)
3.3 寻址方式
存放方式
包含在指令中 立即寻址(Immediate addressing) 存放在CPU中的某个寄存器 寄存器寻址(register
addressing)
ARRAY
7. 相对基址加变址寻址方式
(Relative based indexed addressing)
操作数有效地址是一个基址寄存器和一个变址寄存器的内容 和8位或16位位移量之和 。
除有段跨越前缀之外,形成物理地址有二种方式:
PA=16d×(DS)+ (BX) +
(SI) +
(DI)
8位位移量 16位位移量
寄存器相对寻址方式 MOV AX,COUNT[BP]
用途:这种寻址方式同样用于表格处理。 表格首地址COUNT 修改基址或变址寄存器来取得表格中的值。
例:某数据表的首地址为COUNT 欲读取表中第10个数据,存放到(AL)中。 第10个数据的有效地址: EA= COUNT + 9 MOV SI , 09H MOV AL , [SI+COUNT]
1. 立即寻址(Immediate Addressing)
操作数直接存放在指令中,紧跟在操作码之后,作为 指令 的一部分,存放在代码段里,这种操作数称为立 即数。
例:MOV AX,1234H
AH AL
MOV
34H
代
12H
码
┇
段
2.寄存器寻址(Register addressing)
MOV AX,BX
第3章指令系统和寻址方式3PPT课件

JCXZ OPR:CX寄存器的值为0则转移
说明: 1)条件转移的范围为-128至+127之间,采用
相对转移方式,通过在IP上加一个地址差的方法 实现.
2)通常,在条件转移指令之前,总有用于条件 判别的指令.
3)比较无符号数和有符号数之间的大小所用 的转移指令不同,注意区分。
例:在存储器中有一个首址为ARRAY的N字数组,测试其中 正、负、0的个数存放在DI、SI和AX中。
比较无符号数 JB(JNAE,JC) OPR:低于(<) JNB(JAE,JNC) OPR:不低于( ≧ ) JBE(JNA) OPR:低于或等于(≦) JNBE(JA) OPR:不低于或等于(>)
微机原理2011
比较有符号数 JL(JNGE)OPR:小于(<) JLE(JNG)OPR:不大于(≦) JNL(JGE)OPR:不小于( ≧ ) JNLE(JG)OPR:大于(>)
微机原理2011
(217E0H)=0400H,(217E2H)=9000H,试确定下列转移指
令的转移地址。
1)JMP 2300H
2)JMP
WORD PTR [BX]
3)JMP
DWORD PRT [BX+DATA]
微机原理2011
➢ 条件转移指令 根据执行上一指令后标志寄存器的状态而决定
是否转移 格式: Jcc 标号
根据单个标志位的条件转移指令(见教材P71)
JZ
JP
JNZ
JNP
JC
JS
JNC
JNS
JO
JNO
微机原理2011
例:试分析下列程序段:
ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SHORT L5 如果AX和BX的内容给定如下: AX BX 1)147B 80DC OF=0,CF=0 ,转L1 2)B568 54B7 OF=0,CF=1 ,转L1
说明: 1)条件转移的范围为-128至+127之间,采用
相对转移方式,通过在IP上加一个地址差的方法 实现.
2)通常,在条件转移指令之前,总有用于条件 判别的指令.
3)比较无符号数和有符号数之间的大小所用 的转移指令不同,注意区分。
例:在存储器中有一个首址为ARRAY的N字数组,测试其中 正、负、0的个数存放在DI、SI和AX中。
比较无符号数 JB(JNAE,JC) OPR:低于(<) JNB(JAE,JNC) OPR:不低于( ≧ ) JBE(JNA) OPR:低于或等于(≦) JNBE(JA) OPR:不低于或等于(>)
微机原理2011
比较有符号数 JL(JNGE)OPR:小于(<) JLE(JNG)OPR:不大于(≦) JNL(JGE)OPR:不小于( ≧ ) JNLE(JG)OPR:大于(>)
微机原理2011
(217E0H)=0400H,(217E2H)=9000H,试确定下列转移指
令的转移地址。
1)JMP 2300H
2)JMP
WORD PTR [BX]
3)JMP
DWORD PRT [BX+DATA]
微机原理2011
➢ 条件转移指令 根据执行上一指令后标志寄存器的状态而决定
是否转移 格式: Jcc 标号
根据单个标志位的条件转移指令(见教材P71)
JZ
JP
JNZ
JNP
JC
JS
JNC
JNS
JO
JNO
微机原理2011
例:试分析下列程序段:
ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP SHORT L5 如果AX和BX的内容给定如下: AX BX 1)147B 80DC OF=0,CF=0 ,转L1 2)B568 54B7 OF=0,CF=1 ,转L1
第3讲_1 寻址方式

15
⑤基址变址寻址(2)
基址变址寻址的格式: [BX+SI+位移量] [BX+DI+位移量] [BP+SI+ [BP+SI+位移量] [BP+DI+位移量] ] [BP+DI+ ] [BX+SI] [BX+DI] [BP+SI] [BP+DI] 错误的写法: [BX+BP] [SI+DI] 位移量的范围: 补码表示的8位或16位 (-128~+127,-32768~+32767)
3.3 寻址方式
3.3.1 3.3.2 3.3.4 3.3.5 操作数的种类 寻址方式 段更换和段跨越 有效地址的计算时间
1
3.3.1 操作数的种类
(1) 立即操作数: 指令要操作的数据在指令代码中, MOV AL,10H ;指令码B010. (2) 存储器操作数:指令要操作的数据在存储器(内 存)中, MOV AL,[1234H]; 指令码A03412. (3)寄存器操作数:指令要操作的数据在CPU的寄存 器中, MOV AL,BL; 指令码88D8. (4)I/O端口操作数, IN AL,20H; 指令码E420.
假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指 令在执行完后的结果分别是什 么? ① MOV AX,[BX+100H] ② MOV AX,[BP+100H]
19
寻址方式中不能出现的情况
立即数只能用于源操作数寻址 除源操作数为立即寻址方式外,其中一个操 作数的寻址方式必须是寄存器直接寻址,即 两个操作数不能同时为存储器操作数 例如 MOV data1,12h MOV data1,data2 错
⑤基址变址寻址(2)
基址变址寻址的格式: [BX+SI+位移量] [BX+DI+位移量] [BP+SI+ [BP+SI+位移量] [BP+DI+位移量] ] [BP+DI+ ] [BX+SI] [BX+DI] [BP+SI] [BP+DI] 错误的写法: [BX+BP] [SI+DI] 位移量的范围: 补码表示的8位或16位 (-128~+127,-32768~+32767)
3.3 寻址方式
3.3.1 3.3.2 3.3.4 3.3.5 操作数的种类 寻址方式 段更换和段跨越 有效地址的计算时间
1
3.3.1 操作数的种类
(1) 立即操作数: 指令要操作的数据在指令代码中, MOV AL,10H ;指令码B010. (2) 存储器操作数:指令要操作的数据在存储器(内 存)中, MOV AL,[1234H]; 指令码A03412. (3)寄存器操作数:指令要操作的数据在CPU的寄存 器中, MOV AL,BL; 指令码88D8. (4)I/O端口操作数, IN AL,20H; 指令码E420.
假定 DS=1000H, SS=2000H, BP=0100H, BX=0100H, 如下指 令在执行完后的结果分别是什 么? ① MOV AX,[BX+100H] ② MOV AX,[BP+100H]
19
寻址方式中不能出现的情况
立即数只能用于源操作数寻址 除源操作数为立即寻址方式外,其中一个操 作数的寻址方式必须是寄存器直接寻址,即 两个操作数不能同时为存储器操作数 例如 MOV data1,12h MOV data1,data2 错
指令系统和寻址方式.ppt

第3章 指令系统和寻址方式
每条指令由两部分组成:操作码字段和地址码字段。 格式如图3.1所示。
操作码
操作数(地址码)
图3.1 指令格式 操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直 接给出操作数,或者给出操作数存放的寄存器编号,或 者给出操作数存放的存储单元的地址或有关地址的信息。
第3章 指令系统和寻址方式
代码段
AL
OPΒιβλιοθήκη 0FFH图3.3 8位立即寻址操作示意图
第3章 指令系统和寻址方式
AX
代码段
OP 34H 12H
图3.4 16位立即寻址操作示意图
第3章 指令系统和寻址方式
由此看出,这种寻址方式不需要访问存储器而是立 即从指令中取得操作数。这正是立即寻址方式名称的 含义所在。
由于在这种寻址方式中操作数是指令的一部分,不 能修改,而一般情况下,指令所处理的数据都是在不 断变化的,比如本条指令的操作数是上一条指令的执 行结果。因此,这种寻址方式只能适用于操作数固定 的情况。例如,给某一寄存器赋初值或给某存储单元 提供常数等。
第3章 指令系统和寻址方式
此外要注意,这种寻址方式不能用于单操作数指令; 若 用于双操作数指令,也只能用于源操作数字段,不 能用于目的操作数字段。
第3章 指令系统和寻址方式
因此,人们就用一些助记符来代替这种基2码表示的指 令,这就形成了汇编指令。汇编指令中的助记符通常 用英文单词的缩写来表示,如加法用ADD,减法用 SUB,传送用MOV等等。这些符号化了的指令使得书 写程序、阅读程序和修改程序变得简单、方便,但计 算机不能直接识别和执行,在把它交付给计算机执行 之前,必须翻译成计算机所能识别的机器指令。这个 翻译过程由一个被称为“汇编程序”的工具软件自动 实现。汇编指令与机器指令是一一对应的,本书中的 指令都使用汇编指令形式书写,便于读者学习和理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8088/8086 CPU 的寻址方式
定义:
确定操作数存在的方式,称为寻址方式
寄存器寻址方式
立即数寻址方式 存储器寻址方式 其它寻址方式
微机原理及应用
8088/8086 CPU 的寻址方式
立即数寻址
非存储器寻址方式
寄存器寻址
直接寻址
寄存器间接寻址
存储器寻址方式
基址寻址 变址寻址 基址加变址寻址
寄存器寻址方式 b7、b6 = 00、01、10
存贮器寻址方式
微机原理及应用
8088/8086 CPU 通用指令格式
b3 ~ b5(REG)—— 寄存器名编码
b5 b4 b3 W = 0(8位REG) W = 1 (16位REG) 0 0 0 AL AX 0 0 1 CL CX 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 DL BL AH CH DH BH DX BX SP BP SI DI
•
微机原理及应用
指令助记符 ADD AH,[ BX+20H ] 指令机器码 02H、67H、20H 分析
• B1 = 02H = 00000010B OP = 000000 ADD 基本操作码码头 D=1 AH为目的寄存器操作数 AH在B2中为REG编码 [BX+20H]在B2中为R/M 编码 W= 0 • MOD = 01 REG = 100 R/M = 111 • B3 = 20H AH为字节操作数, 存储器寻址方式编码 目的寄存器操作数 AH 的编码 源存储器操作数 [BX+D8] 的编码 存储器相对寻址中的 D8 值 B2 = 67H = 01100111B
• B1 = 8BH = 10001011B
OP = 100010 D=1 基本操作码码头 CX为目的寄存器操作数(总指向目的操作数) CX在B2中为REG 编码 AX在B2中为R/M 编码 W=1 CX、AX 为字操作数 寄存器寻址方式编码
•
B2 = C8H = 11001000B
MOD = 11
微机原理及应用
8088/8086 CPU 的寻址方式
立即数寻址方式
定义:操作数立即出现在操作码的后面
指 令: MOV AL,20H 机器码: B0H(码)、20H(8 位立即数) 功 能:(AL) = 20H
指 令: MOV AX,2000H 机器码: B8H(码)、00H、20H (16位立即数) 功 能:(AX) = 2000H
微机原理及应用
存储器寻址方式机器码分析
• ADD AH,[BX+20H] 机器码为 02H、67H、20H
ADD [BX+20H],AH 机器码为
00H、67H、20H
•
D = 0 指向目的寄存器
D = 1 指向源寄存器
• 源、目的寄存器、存储器交换位置后
机器码 B1字节变,B2字节不变
微机原理及应用
注:OP 与操作码有关;dst、src 是操作数
微机原理及应用
指令的基本格式
8088/8086 CPU 的操作码段
一字节操作码 二字节操作码
8088/8086 CPU 的操作数段
字节数从 0 字节到 4 字节 由不同的寻址方式寻找操作数
微机原理及应用
指令的基本格式
操作数的存在形式
微机原理及应用
立即寻址与直接寻址比较
• 立即寻址 MOV AX,2000H 操作数为 2000H,在CS段 CS段
B8H
00H
20H
• 直接寻址
MOV AX,[ 2000H ] 操作数存放在 DS 段的偏移 地址 2000H 中
CS段
A1H
00H
20H
微机原理及应用
存储器寻址中的段超越前缀
概念:从 DS 段外的其它段中寻找操作数 MOV AX,[ 2000H ] 注:省略段符时,隐含为 DS 段 MOV AX,DS:[ 2000H ] MOV AX,SS:[ 2000H ] MOV AX,ES:[ 2000H ] MOV AX,CS:[ 2000H ] 注:给出段符时,确定了操作数的段特性
D = 0 寄存器操作数为源操作数
D = 1 寄存器操作数为目的操作数
注: D 值影响 B2 中 REG 的确定
b0 (W) —— 操作数的类型定义
W = 0 字节操作数,8bit W = 1 字操作数,16bit
微机原理及应用
8088/8086 CPU 通用指令格式
B2字节的位定义(寻址方式定义)
微机原理及应用
8088/8086 CPU 的寻址方式
存储器寻址方式
定义:操作数段为操作数存放的存储器地址值
• 特点:寻址方式多样、灵活、应用广泛
需进行地址运算,相对速度较慢 • 条件:指令中仅有一个存储器操作数, 可以是源操作数或者目的操作数 • 形式:存储器操作数助记符表示为 [ ]
微机原理及应用
微机原理及应用
8088/8086 CPU 通用指令格式
b0 ~ b2(R/M) —— 存贮器寻址方式编码
b2 b1 b0
0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1
MOD=00
[BX+SI] [BX+DI] [BP+SI] [BP+DI]
MOD = 01
[BX+SI+D8] [BX+DI+D8] [BP+SI+D8] [BP+DI+D8]
注:可变长度,从 1 字节指令 ~ 7 字节指令
微机原理及应用
8088/8086 CPU 通用指令格式
B0 —— 前缀操作码字节(扩展)
确定操作数存放在 DS、ES、SS、CS 段中
B1、B2 —— 可变操作码段字节
B1字节 —— 基本操作码定义(必要条件) B2字节 —— 寻址方式定义(充分条件)
AX为目的寄存器操作数(总指向目的操作数)
•
B2 = C8H = 11000001B
MOD = 11
REG = 000
R/M = 001
目的寄存器操作数 AX 的编码
源寄存器操作数 CX 的编码
微机原理及应用
寄存器寻址方式机器码分析
• MOV CX,AX 的机器码为 8BH、C8H
MOV AX,CX 的机器码为 8BH、C1H • D 必为1,即指向目的寄存器操作数 • 源、目的寄存器交换位置后 机器码 B1字节不变,B2字节变
指令中有源操作数且有目的操作数出现
微机原理及应用
指令的基本格式
计算机中的指令集 复杂指令集 —— CISC (Complex Instruction Set Computer)
指令较复杂,每条指令字节长度不一致及指令种 类多,以Intel公司为代表的CPU,例如8086CPU芯片
精简指令集 —— RISC (Reduced Instruction Set Computer)
操作数隐含在操作码中 操作数本身在代码段中 操作数在寄存器中寻找 操作数在数据段中寻找
微机原理及应用
指令的基本格式
指令中的操作数
无操作数指令
指令中操作数隐含
例:XLAT 例:PUSH AX 例:MOV AX,BX
单操作数指令 双操作数指令
指令中仅有源操作数或者目的操作数出现
B3、B4、B5、B6 —— 可变操作数段字节
操作数或操作数存放的直接地址定义 字节操作数或字操作数的类型定义
微机原理及应用
8088/8086 CPU 通用指令格式
B1字节的位定义(基本操作码定义)
b2 ~ b7 (OP)—— 64 种基本的操作码定义
b1 (D) —— 寄存操作数的位置定义
微机原理及应用
指令助记符 ADD [ BX+20H ],AH 指令机器码 00H、67H、20H 分析
• B1 = 00H = 00000000B OP = 000000 D=0 ADD 基本操作码码头 AH为源寄存器操作数 AH在B2中为REG编码 [BX+20H]在B2中为R/M 编码 W=0 • MOD = 01 REG = 100 R/M = 111 • B3 = 20H AH为字节操作数 存储器寻址方式编码 源寄存器操作数 AH 的编码 目的存储器操作数 [BX+D8] 的编码 存储器相对寻址中的 D8 值 B2 = 67H = 01100111B
其它寻址方式
固定寻址、相对寻址、I/O端口寻址
微机原理及应用
8088/8086 CPU 的寻址方式
寄存器寻址方式
定义:操作数隐含在寄存器中 指 令: PUSH AX 机器码: 50H(一字节操作码) 功 能:(AX) → [ SS:SP ]
指 令: MOV AX,BX 机器码: 8BH、C3H (二字节操作码) 功 能:(AX) ← (BX)
微机原理及应用
8088/8086 CPU 指令系统 主要内容
指令的基本格式
8088/8086CPU 的寻址方式
8088/ 8086CPU 指令系统
中断指令和 DOS 功能调用
微机原理及应用
指令的基本格式
人类语言的共同点
语言
中文: 我是学生
英文: I am student
语法
主体 —— 动作
指令较简单,每条指令字节长度一致及指令种 类少,以 IBM 公司为代表的 CPU ,例如 POWER PC 芯片
微机原理及应用
8088/8086 CPU 通用指令格式