版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,朱亚萍 杭州电子科技大学自动化学院,微机原理与接口技术,2,第三章 8086的寻址方式和指令系统,8086的寻址方式 微机系统指令的机器码表示方法(自学) 8086的指令系统,内 容 提 要,3,3-1 8086的寻址方式,概述,3-1 8086的寻址方式 概述,计算机的指令包括:操作码 操作数 操作的性质操作的对象 存放在 寄存器、存储器、I/O端口地址、立即数 (由寻址方式决定) 寻址方式:指令中说明操作数所在地址的方法。 指令分类:单操作数、双操作数、无操作数。 (双操作数指令形式:操作码 目的操作数,源操作数),4,3-1 8086的寻址方式 概述,各种寻址方式的指令执行速度不同:
2、 操作数在寄存器中指令执行速度快:在CPU内部立即执行; 立即数寻址指令执行速度较快:直接从指令队列中取数; 操作数在存储器中指令执行速度较慢:通过总线与CPU交换数据。 CPU进行读/写存储器的操作: 把一个偏移量送到BIU,计算出20位物理地址; 执行总线周期存取操作数。,5,3-1 8086的寻址方式 概述,8086指令的寻址方式类型: 一、立即寻址方式 二、寄存器寻址方式 三、直接寻址方式 四、寄存器间接寻址方式 五、寄存器相对寻址方式 六、基址变址寻址方式 七、相对基址变址寻址方式 八、其它,6,3-1 8086的寻址方式 立即寻址方式,一、立即寻址方式 (Immediate Add
3、ressing),1含义 操作数是立即数(即8位或16位的常数),直接包含在指令中。 2特点 翻译成机器码时,立即数是指令的一部分,紧跟在操作码之后存放在代码段内。在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。 16位数:高字节代码段的高地址单元,低字节低地址单元; 3作用 常用于给寄存器赋初值。,7,3-1 8086的寻址方式 立即寻址方式,例 MOV CX,2A50H 解:将立即数2A50H送到CX寄存器中。 (又例: MOV CL,20H),4注意 立即数可以送到寄存器、一个存储单元(8位)、两个连续的存储单元(16位)中去;,立即数只能作源操作数,不能作目的操
4、作数; 以AF打头的数字出现在指令中时,前面必须加数字0。以免与其它符号相混淆(如:0AF22H)。,8,3-1 8086的寻址方式 寄存器寻址方式,二、寄存器寻址方式 (Register Addressing),1含义 操作数包含在寄存器中,寄存器的名称由指令指定。 2特点 16位操作数:寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP等。 8位操作数:寄存器AH、AL、BH、BL、CH、CL、DH和DL。 3作用:寄存器之间传递数据。 例 MOV DX,AX 解: AX送到DX寄存器中。(AX内容不变) (又例: MOV BL,AL) 4注意:源操作数的长度必须与目的操作数一致。
5、,9,3-1 8086的寻址方式 直接寻址方式,三、直接寻址方式(Direct Addressing),1含义 存储单元的有效地址EA(即:操作数的偏移地址)直接由指令给出。 2特点 机器码中,有效地址存放在代码段中指令的操作码之后,而该地址单元中的数据总是存放在存储器中。须先求出操作数的物理地址,再从存储器中取得操作数。 操作数的物理地址16DSEA 3作用 实现对存储单元的读/写操作。,10,3-1 8086的寻址方式 直接寻址方式,例 MOV AX,2000H 解:设DS = 3000H; (32000H)= 1234H 由指令得:EA = 2000H (16位逻辑地址) 物理地址 =
6、163000H2000H = 32000H,则:AX = 1234H,11,3-1 8086的寻址方式 直接寻址方式,4注意 DS:默认的段寄存器; 指令中有效地址的表示:立即数 ,以便与立即数相区别; 关于段超越前缀:有效地址前用 “:”(称为修改属性运算符)修改运算属性。 可对代码段(CS)、堆栈段(SS)或附加段(ES)寄存器直接寻址。 例:MOV AX,ES : 3000H 源操作数的物理地址16ES3000H,12,3-1 8086的寻址方式 直接寻址方式,关于符号地址:用来代替数值地址,即给存储单元起个名字。 例: AREA1 DW 2000H ;伪指令定义,AREA1代表符号地址
7、 MOV AX,AREA1 ;或:MOV AX,AREA1 解:如右图所示,DS=3000H时,AX = 1234H 例: AREA1 EQU 2000H ;伪指令定义,AREA1 代表立即数 MOV AX,AREA1 解: AX = 2000H,13,3-1 8086的寻址方式 寄存器间接寻址方式,四、寄存器间接寻址方式(Register Indirect Addressing),1含义 操作数的有效地址放在寄存器中。 2特点 使用寄存器:基址寄存器BX、 BP,变址寄存器SI、DI 。 操作数的物理地址 16DSBX/SI/DI 或 16SSBP 3作用 有效地址可以存放在寄存器中。,14
8、,3-1 8086的寻址方式 寄存器间接寻址方式,例 MOV BX,SI 解:设:DS1000H,SI2000H,(12000H)318BH 则:物理地址 16DSSI 10000H2000H 12000H 指令执行后,BX318BH,指令执行过程如图所示。,15,4注意 寄存器名称外必须加方括号,以区别寄存器寻址方式; 段超越前缀来从默认段以外的段中取得数据; 例 MOV BX,ES:SI 关于默认段: 指定寄存器BX、SI或DI,默认操作数存放在数据段中;(DS:BX,SI,DI) 指定寄存器BP,默认操作数存放在堆栈段中;(SS:BP),3-1 8086的寻址方式 寄存器间接寻址方式,1
9、6,3-1 8086的寻址方式 寄存器相对寻址方式,五、寄存器相对寻址方式(Register Relative Addressing),1含义 操作数的有效地址是基址或变址寄存器的内容与8位或16位 位移量(Displacement)之和。即 EA = BX/SI/DI/BP 8位偏移量/16位偏移量 2特点 使用:BX、BP、SI、DI 。 操作数的物理地址 16DSBX/SI/DICOUNT 或 16SSBP+COUNT,17,3-1 8086的寻址方式 寄存器相对寻址方式,例 MOV BX,COUNT SI ;或 MOV BX,COUNTSI 解:设DS3000H,SI2000H,位移量
10、COUNT4000H, (36000H)=318BH 则物理地址 16DS SICOUNT 30000H2000H4000H 36000H,指令执行后, BX318BH,18,3注意 寄存器名称外必须加方括号,位移量可以在括号内,也可以在括号外; 段超越前缀来从默认段以外的段中取得数据; 例 MOV DH,ES:ARRAYSI 关于默认段: 指定寄存器BX、SI或DI,默认操作数存放在数据段DS中(DS:BX,SI,DI) ; 指定寄存器BP,默认操作数存放在数据段SS中(SS:BP) ;,3-1 8086的寻址方式 寄存器相对寻址方式,19,3-1 8086的寻址方式 基址变址寻址方式,六、
11、基址变址寻址方式 (Register Relative Addressing),1含义 操作数的有效地址是一个基址寄存器(BX、BP)的内容与一个变址寄存器(SI、DI)的内容之和。 2特点 使用的寄存器:基址寄存器BX、BP,变址寄存器SI、DI 。 操作数的物理地址 16DSBXSI /DI 或 16SSBPSI /DI 3注意 寄存器SI和DI、BP和BX不能同时出现在 中。,20,3-1 8086的寻址方式 基址变址寻址方式,例 MOV AX, BX SI ;或 MOV BX,BXSI 解:设DS3000H,SI0500H,BX1200H, (31700H)=0ABCDH 则物理地址
12、16DSSI BX 30000H0500H1200H 31700H,指令执行后, AX0ABCDH,21,3-1 8086的寻址方式 相对基址变址寻址方式,七、相对基址变址寻址方式(Relative Based Indexed Addressing),1含义 操作数的有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容,再加上8位或16位位移量之和。即 EA= BX SI/DI或BP SI/DI +位移量 2特点 使用的寄存器:基址寄存器BX、BP,变址寄存器SI、DI 。 操作数的物理地址 16DS BXSI /DI8/16位位移量 或 16SS BPSI /DI8/1
13、6位位移量 3注意 寄存器SI和DI、BP和BX不能同时出现在 中。,22,3-1 8086的寻址方式 相对基址变址寻址方式,例 MOV AX, MASKBX SI 解:设DS2000H,SI0300H,BX1500H,MASK=0200H, (21A00H)=26BFH 则物理地址 16DSSIBXMASK 20000H0300H1500H0200H 21A00H,指令执行后, AX26BFH,23,3-1 8086的寻址方式 寻址方式总结,寻址方式总结: 带方括号的地址表达式必须遵循下列规则: (1) 立即数可以出现在方括号内,表示直接地址,如2000H。 (2)只有BX、BP、SI、DI
14、这四个寄存器可以出现在 内,它们可以单独出现,也可以相加,或与常数相加,但BX和BP寄存器、SI和DI寄存器不允许出现在同一个 内。 (3)方括号表示相加,下面几种写法等价: 6BXSI; BX+6SI; BX+SI+6,24,3-1 8086的寻址方式 寻址方式总结,(4)不同寄存器对应不同的隐含段基址: SS:BP; DS:BX,SI,DI; 物理地址16相应段基址EA EA BX / BPSI / DIDISP (注:可以是单一寄存器、两个寄存器组合、和DISP组合;DISP也可以为0) 可用段超越前缀修改段基址。,25,3-1 8086的寻址方式 其它,八、其它,1隐含寻址 指令中不指
15、明操作数,但有隐含规定的寻址方式。 如:指令DAA ;对寄存器AL中的数据进行十进制数调整,结果仍保留在AL中。 2I/O端口寻址 8086有直接端口和间接端口两种寻址方式。 直接端口寻址方式:指令直接提供端口地址8位立即数。可访问端口00FFH,即256个端口。 例如 IN AL, 63H ;表示将瑞口63H中的内容送进AL寄存器,26,3-1 8086的寻址方式 其它,间接端口寻址方式:端口地址由寄存器DX提供,端口号为0000FFFFH。 例如 MOV DX,213H ;DX=口地址号213H IN AL,DX ;AL端口213H中的内容,27,3-1 8086的寻址方式 其它,3一条指
16、令有多种寻址方式 源操作数和目的操作数同样适用上述寻址方法。 例 MOV BX, AL 解: 设BX3600H,DS1000H,AL=05H 则目的操作数的物理地址16DS BX 10000H3600H 13600H 指令执行结果为(13600H)05H。 源操作数为寄存器寻址,目标操作数为寄存器间接寻址。 4转移类指令寻址(后面讨论),28,3-1 8086的寻址方式,寻址方式举例:,29,3-3 8086的指令系统,3-3 8086的指令系统 分类,分为以下六类: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 转移指令 处理器控制指令,30,一、数据传送指令,注:数据传送指令
17、共14条; 除SAHF和POPF指令外,对标志位均没有影响。,3-3 8086的指令系统 数据传送指令,31,1通用数据传送指令(General Purpose Data Tranfers),3-3 8086的指令系统 数据传送指令, MOV传送指令(Move) 指令格式:MOV 目的,源 指令功能:实现CPU的内部寄存器间或寄存器与存储器间的数据传送。,例: MOV AX,0FF00H MOV DI,AX MOV CX,1000H MOV BL,40H MOV WORD PTRSI,01H MOV AL,BL,32,3-3 8086的指令系统 数据传送指令,注意: 指令中至少要有一项明确说明
18、传送的是字节还是字; IP寄存器不能用作源操作数或目的操作数; 立即数和CS寄存器不能用作目的操作数; 除了源操作数为立即数的情况外,两个操作数中必有一个是寄存器,但不能都是段寄存器;这就是说,MOV指令不能在两个存储单元之间直接传送数据,也不能在两个段寄存器之间直接传送数据。,33,3-3 8086的指令系统 数据传送指令,PUSH进栈指令 指令格式:PUSH 源 指令功能:数据入堆栈 工作过程: SPSP-2;(SP+1,SP)源 源操作数要求:可以是16位通用寄存器、段寄存器、存储器中的数据字,但不能是立即数。,34,3-3 8086的指令系统 数据传送指令,POP出栈指令 指令格式:P
19、OP 目的 指令功能:数据出堆栈 工作过程: 目的 (SP+1,SP) ; SPSP2; 目的操作数要求:可以是16位通用寄存器、段寄存器、存储单元,但CS不能作目的操作数。,35,3-3 8086的指令系统 数据传送指令,工作过程:,36,3-3 8086的指令系统 数据传送指令,XCHG交换指令(Exchange),指令格式:XCHG 目的, 源 指令功能:源操作数、目的操作数数据交换。 操作数要求:交换可以在寄存器之间、寄存器与存储器之间进行;段寄存器不能作为操作数;不能直接交换两个存储单元中的内容。 例 设AX=2000H,DS=3000H,BX=1800H, (31A00H)=199
20、5H。 则执行指令XCHG AX,BX+200H后,结果如何? 解:把内存中的一个字与AX中的内容进行交换。 源操作数的物理地址300010H+1800H+200H31A00H 指令执行后:AX1995H,(31A00H)2000H,37,3-3 8086的指令系统 数据传送指令,指令格式:XLAT 转换表 或:XLAT 指令功能:使累加器(AL)中的一个值变换为内存表格中的某一个值,一般用来实现编码制的转换,即查表功能。 XLAT指令使用步骤: 使用之前必须先建立一个表格,表格中的内容是所需要转换的代码; 将转换表的起始地址装入BX寄存器; 欲查的某项与表头地址的位移量AL,即表格最多包含2
21、56个字节; 执行XLAT指令后,根据位移量从表中查到转换后的代码值AL寄存器中。,XLAT表转换指令(Table LookupTranslation),38,3-3 8086的指令系统 数据传送指令,例 若十进制数字09的LED七段码对照表如表3-4所示,试用XLAT指令求数字5的七段码值。,表34 十进制数的七段显示码表,39,3-3 8086的指令系统 数据传送指令,程序如下: TABLE DB 40H,79H,24H,30H,19H; DB 12H,02H,78H,00H,18H; 建表,表格起始地址为TABLE,七段码存放相于对TABLE的位移量为09的单元中。 MOVAL,5 ;A
22、L数字5的位移量 MOVBX,OFFSET TABLE ;BX表格首地址 XLAT TABLE ;查表得:AL=12H,40,3-3 8086的指令系统 数据传送指令,2输入输出指令(Input nnd Output),IN指令: 从数据端口输入数据或从状态端口输入状态字。 OUT指令:输出数据或命令给指定的I/O端口。 (1)直接输入输出指令 格式:IN AL,PORT ; AL(PORT) IN AX,PORT ; AX(PORT+1,PORT) OUT PORT,AL ;(PORT)AL OUT PORT,AX ;(PORT+1,PORT)AX 注:PORT为输入输出端口号,范围为025
23、5(00 FFH),41,3-3 8086的指令系统 数据传送指令,(2)间接输入输出指令 格式: IN AL,DX ;AL (DX) IN AX,DX ;AX (DX+1,DX) OUT DX,AL ; (DX) AL OUT DX,AX ; (DX+1,DX) AX 在间接输入输出指令之前,需将端口号送入DX寄存器。 MOV DX,XXXXH; 例 OUT85H,AL;85H端口AL内容 MOVDX,0FF4H;端口地址DX=0FF4H OUTDX,AL;FF4H端口AL内容 MOVDX,300H;DX指向300H OUTDX,AX; 300H端口 AL内容,301H端口AH内容,42,3
24、地址目标传送指令(Address Object Transfers),3-3 8086的指令系统 数据传送指令,专用于传送地址码的指令,它可以用来传送操作数的段地址和偏移地址,含以下三条指令: LEA取有效地址指令(Load Effective Address) 指令格式:LEA 目的,源 指令功能:取源操作数地址的偏移量,传送到目的操作数 例 假设SI1000H,DS5000H,(51000H)1234H LEA BX,SI ;执行完该指令后,BX1000H(送地址) MOV BX,SI ;执行完该指令后,BX1234H(送内容) 操作数要求:源操作数必须是存储单元,目的操作数必须是一个除段
25、寄存器之外的16位寄存器。使用时要注意与MOV指令的区别。,43,3-3 8086的指令系统 数据传送指令,LDS将双字指针送到寄存器和DS指令(Load Pointer using DS),指令格式:LDS 目的,源 指令功能:从源操作数指定的存储单元中,取出一个变量的4字节地址指针,送进一对目的寄存器。其中前两个字节(表示变量的偏移地址)送到指令中指定的目的寄存器中,后两个字节(表示变量的段地址)送入DS寄存器。 操作数要求:源操作数必是存储单元,该单元开始的连续4个字节存放一个变量的地址指针。目的操作数必须是16位寄存器,常用SI寄存器,但不能用段寄存器。 例 设DS1200H,(124
26、50H)F346H,(12452H)0A90H, 执行指令LDS SI,450H 后,SIF346H,DS0A90H,44,3-3 8086的指令系统 数据传送指令,LES将双字指针送到寄存器和ES指令(Load Pointer using Es) 指令格式:LES 目的,源 指令功能:与LDS指令的操作基本相同,不同的是:要将源操作数所指向的 存储单元里存放的地址指针中的段地址部分送到ES寄存器中,而不是DS寄存器,目的操作数常用DI寄存器。 例 设DS0100H,BX0020H,(01020H)0300H, (01022H)0500H。 执行指令LES DI,BX 后,DI0300H,ES0500H,45,4标志传送指令(Flag T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南充市顺庆区多功能应急物资储备库项目水土保持报告表
- 机械厂设备检维修办法
- 三下数学思维重点专项练习
- 电子装配生产线质量管控制度
- 天然气购销管理办法
- 2026滨海事业编面试题及答案
- 2026编外医疗面试题目及答案
- 2025年运动数据告诉你补水的常见误区
- 2025年测绘无人机在水利枢纽调度中的监测数据
- 2025年测绘无人机数据在智慧城市交通信号优化中的应用
- 2023年江西新余中考历史真题及答案
- “星火计划”人才培养项目
- 【人教版】八年级数学下册《一次函数与方程、不等式》基础测试卷及答案
- 保险规划综合案例分析-
- 苏教版八年级数学下册期末试卷(必考题)
- 卫生部手术分级目录(2023年1月份修订)
- GB/T 5486.2-2001无机硬质绝热制品试验方法力学性能
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB/T 308.1-2013滚动轴承球第1部分:钢球
- GB/T 193-2003普通螺纹直径与螺距系列
- 小学六年级数学总复习讲座-课件
评论
0/150
提交评论