微机原理与接口技术第3章sy.ppt
《微机原理与接口技术第3章sy.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术第3章sy.ppt(168页珍藏版)》请在三一办公上搜索。
1、1,杭州电子科技大学 生仪学院,微机原理与接口技术,2,第二章内容回顾,3,第二章 重点之一,8086CPU内部结构,4,第二章 重点之二,8086CPU引脚及功能最小模式、8086区别,5,第二章 重点之三,逻辑地址的组成段基址:偏移地址物理地址的形成段基址16偏移地址,存储器的分段管理,6,8086系统,第二章 重点之四,存储器的分体结构,7,第二章 重点之五,堆栈的概念及工作过程,8,第二章 重点之六,最小模式系统组成、与最大模式系统的区别,2023/11/13,9,读总线周期(动画),第二章 重点之七,8086最小模式下的CPU工作时序基本概念、复位/启动时序、读/写时序,系统的复位与
2、启动(动画),10,第三章 8086的寻址方式和指令系统,8086的寻址方式微机系统指令的机器码表示方法8086的指令系统,内 容 提 要,11,3-1 8086的寻址方式,概述,3-1 8086的寻址方式 概述,计算机的指令包括:操作码 操作数 操作的性质操作的对象 存放在 寄存器、存储器、I/O端口地址、立即数(由寻址方式决定)寻址方式:指令中说明操作数所在地址的方法。指令分类:单操作数、双操作数、无操作数。(双操作数指令形式:操作码 目的操作数,源操作数),12,3-1 8086的寻址方式 概述,各种寻址方式指令执行速度不同:操作数在寄存器中指令执行速度快:在CPU内部立即执行;立即数寻
3、址指令执行速度较快:直接从指令队列中取数;操作数在存储器中指令执行速度较慢:通过总线与CPU交换数据。CPU进行读/写存储器的操作:把一个偏移量送到BIU,计算出20位物理地址;执行总线周期存取操作数。,13,3-1 8086的寻址方式 概述,寻址方式举例:,14,3-1 8086的寻址方式 概述,8086指令的寻址方式类型:一、立即寻址方式二、寄存器寻址方式三、直接寻址方式四、寄存器间接寻址方式五、寄存器相对寻址方式六、基址变址寻址方式七、相对基址变址寻址方式八、其它,15,3-1 8086的寻址方式 立即寻址方式,一、立即寻址方式(Immediate Addressing),1含义:操作数
4、是立即数(即8位或16位的常数),直接包含在指令中。2特点:翻译成机器码时,立即数是指令的一部分,紧跟在操作码之后存放在代码段内。在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。l6位数:高字节代码段的高地址单元,低字节低地址单元;3作用:常用于给寄存器赋初值。,16,3-1 8086的寻址方式 立即寻址方式,例 MOV CX,2A50H 解:将立即数2A50H送到CX寄存器中。(又例:MOV CL,20H),4注意:立即数可以送到寄存器、一个存储单元(8位)、两个连续的存储单元(16位)中去;立即数只能作源操作数,不能作目的操作数;以AF打头的数字出现在指令中时,前面
5、必须加数字0。以免与其它符号相混淆(如:0AF22H)。,17,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)送到CX寄存器中。(AX内容不变)(又例:MOV BL,AL)4注意:源操作数的长度必须与目的操作数致。(注:以下寻址方式下,指令的操作数在存储器中,要先求物理地
6、址才能获得操作数。),18,3-1 8086的寻址方式 直接寻址方式,三、直接寻址方式(Direct Addressing),1含义:存储单元的有效地址EA(即:操作数的偏移地址)直接由指令给出。2特点:机器码中,有效地址存放在代码段中指令的操作码之后,而该地址单元中的数据总是存放在存储器中。须先求出操作数的物理地址,再从存储器中取得操作数。操作数的物理地址16DS EA 3作用:实现对存储单元的读/写操作。,19,3-1 8086的寻址方式 直接寻址方式,例 MOV AX,2000H解:设DS=3000H;且有:(32000H)=1234H 由指令得:有效地址EA=物理地址=则:AX=指令执
7、行过程如图所示。(注:如用AL替代AX,则AL=),2000H,163000H 2000H=32000H,1234H,34H,20,3-1 8086的寻址方式 直接寻址方式,4注意:DS:默认的段寄存器;指令中有效地址的表示:立即数,以便与立即数相区别;关于段超越前缀:有效地址前用“:”(称为修改属性运算符)修改运算属性。可对代码段(CS)、堆栈段(SS)或附加段(ES)寄存器所指出的存储区直接寻址。例:MOV AX,ES:3000H;(物理地址16ES 3000H)关于符号地址:用来代替数值地址,即给存储单元起个名字。例:AREA1 DW 1234H;伪指令定义 MOV AX,AREA1;解
8、:DS=3000H、偏移地址AREA1=2000H时,例:AREA1 EQU 2000H;伪指令定义 MOV AX,AREA1,解:AX=2000H,AX=1234H。如右图所示。等价于:MOV AX,AREA1,21,3-1 8086的寻址方式 寄存器间接寻址方式,四、寄存器间接寻址方式(Register Indirect Addressing),1含义:操作数的有效地址放在寄存器中。2特点:使用寄存器:基址寄存器BX、BP,变址寄存器SI、DI。操作数的物理地址 16DS BX/SI/DI 或 16SS BP3作用:有效地址可以存放在寄存器中。,22,3-1 8086的寻址方式 寄存器间接
9、寻址方式,例 MOV BX,SI 解:设:DS1000H,SI2000H,(12000H)318BH 则:物理地址 指令执行后,BX 指令执行过程如图所示。,16DS SI 10000H 2000H 12000H,318BH,23,4注意:寄存器名称外必须加方括号,以区别寄存器寻址方式;段超越前缀用来从默认段以外的段中取得数据;例 MOV BX,ES:SI关于默认段:指定寄存器BX、SI或DI,默认操作数存放在数据段DS中;(DS:BX,SI,DI)指定寄存器BP,默认操作数存放在数据段SS中;(SS:BP),3-1 8086的寻址方式 寄存器间接寻址方式,24,3-1 8086的寻址方式 寄
10、存器相对寻址方式,五、寄存器相对寻址方式(Register Relative Addressing),1含义:操作数的有效地址是基址或变址寄存器的内容与8位或16位位移量(Displacement)之和。即 BX/BP EA=+8位偏移量/16位偏移量 SI/DI 2特点:使用:BX、BP、SI、DI。操作数的物理地址 16DS BX/SI/DI COUNT 或 16SS BP COUNT,25,3-1 8086的寻址方式 寄存器相对寻址方式,例 MOV BX,COUNT SI;或:MOV BX,COUNTSI解:设:DS3000H,SI2000H,位移量COUNT4000H,(36000H)
11、=318BH 则:物理地址,指令执行后,BX,318BH,16DS SI COUNT,30000H 2000H 4000H 36000H,26,3注意:寄存器名称外必须加方括号,位移量可以在括号内,也可以在括号外;段超越前缀来从默认段以外的段中取得数据;例 MOV DH,ES:ARRAYSI关于默认段:指定寄存器BX、SI或DI,默认操作数存放在数据段DS中;(DS:BX,SI,DI)指定寄存器BP,默认操作数存放在数据段SS中;(SS:BP),3-1 8086的寻址方式 寄存器相对寻址方式,27,3-1 8086的寻址方式 基址变址寻址方式,六、基址变址寻址方式(Register Relat
12、ive Addressing),1含义:操作数的有效地址是一个基址寄存器(BX、BP)的内容与一个变址寄存器(SI、DI)的内容之和。2特点:使用的寄存器:基址寄存器BX、BP,变址寄存器SI、DI。操作数的物理地址 16DS BX SI/DI 或 16SS BP SI/DI3注意:寄存器SI和DI、BP和BX不能同时出现在 中。,28,3-1 8086的寻址方式 基址变址寻址方式,例 MOV AX,BX SI;或:MOV AX,BXSI解:设:DS3000H,SI0500H,BX1200H,(31700H)=0ABCDH 则:物理地址,指令执行后,AX,16DS SI BX,30000H 0
13、500H 1200H 31700H,0ABCDH,29,3-1 8086的寻址方式 相对基址变址寻址方式,七、相对基址变址寻址方式(Relative Based Indexed Addressing),1含义:操作数的有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容,再加上8位或16位位移量之和。即 BX SI EA=+位移量 BP DI2特点:使用的寄存器:基址寄存器BX、BP,变址寄存器SI、DI。操作数的物理地址 16DS BX SI/DI 8/16位位移量 或 16SS BP SI/DI 8/16位位移量3注意:寄存器SI和DI、BP和BX不能同时出现在 中。
14、,30,3-1 8086的寻址方式 相对基址变址寻址方式,例 MOV AX,MASKBX SI;或:MOV AX,MASKBXSI解:设:DS3000H,SI0300H,BX1500H,MASK=0200H,(21A00H)=26BFH 则:物理地址,指令执行后,AX,16DS SI BX+MASK,20000H 0300H 1500H+0200H 21A00H,26BFH,31,3-1 8086的寻址方式 寻址方式总结,寻址方式总结:带方括号的地址表达式必须遵循下列规则:1.立即数可以出现在方括号内,表示直接地址,如2000H。2.只有BX、BP、SI、DI这四个寄存器可以出现在 内,它们可
15、以单独出现,也可以相加,或与常数相加,但:BX和BP寄存器、SI和DI寄存器不允许出现在同一个 内。3.方括号表示相加,下面几种写法等价:6BXSI;BX+6SI;BX+SI+6,32,3-1 8086的寻址方式 寻址方式总结,4不同寄存器对应不同的隐含段基址:SS:BP;DS:BX,SI,DI;物理地址16相应段基址 EA EA BX/BP SI/DI DISP(注:可以是单一寄存器、两个寄存器组合、和DISP组合;DISP也可以为0)可用段超越前缀修改段基址。,33,3-1 8086的寻址方式 其它,八、其它,1隐含寻址:指令中不指明操作数,但有隐含规定的寻址方式。如:指令DAA;对寄存器
16、AL中的数据进行十进制数调整,结果仍保留在AL中。2I/O端口寻址:8086有直接端口和间接端口两种寻址方式。直接端口寻址方式:指令直接提供端口地址8位立即数。可访问端口00FFH,即256个端口。例如,IN AL,63H;表示将瑞口63H中的内容送进AL寄存器 间接端口寻址方式:端口地址由寄存器DX提供,端口号为0000FFFFH。例如,MOVDX,213H;DX=口地址号213H IN AL,DX;AL端口213H中的内容,34,3-1 8086的寻址方式 其它,3一条指令有多种寻址方式:源操作数和目的操作数同样适用上述寻址方法。例 MOV BX,AL解:设:BX3600H,DS1000H
17、,AL=05H 则:目的操作数的物理地址16DS BX 10000H十3600H 13600H 指令执行结果为(13600H)05H。4转移类指令寻址(后面讨论),35,3-2指令的机器码表示方法(3-2节自学,不做考试要求),3-2 指令的机器码表示方法目的和特点,汇编语言源程序:用汇编语言(即主要由指令系统组成的语言)编写的程序。编译程序 执行 源程序 机器码 运算结果编码特点:8086指令的二进制编码非常多,很难以一张表实现指令与机器语言的对照。为每种基本指令类型给出一个编码格式,对照格式填上不同的数字表示不同的寻址方式、数据类型,即可求得每条指令的机器码。指令通常由操作码和操作数两部分
18、组成。8086指令系统采用变长指令,指令的长度可由16字节组成。,36,3-3 8086的指令系统,3-3 8086的指令系统 分类,分为以下六类:数据传送指令 算术运算指令 逻辑运算和移位指令 字符串处理指令 控制转移指令 处理器控制指令,37,一、数据传送指令,注:数据传送指令共14条;除SAHF和POPF指令外,对标志位均没有影响。,3-3 8086的指令系统 数据传送指令,38,1通用数据传送指令(General Purpose Data Tranfer):,3-3 8086的指令系统 数据传送指令,MOV传送指令(Move)指令格式:MOV 目的,源 指令功能:实现CPU的内部寄存器
19、间或寄存器与存储器间的数据传送。,例:MOV AX,0FF00H;MOV DI,AX;MOV CX,1000H;MOV BL,40 MOV WORD PTR SI,01H;MOV AL,BL;,39,3-3 8086的指令系统 数据传送指令,注意:指令中至少要有项明确说明传送的是字节还是字;IP寄存器不能用作源操作数或目的操作数;立即数和CS寄存器不能用作目的操作数;除了源操作数为立即数的情况外,两个操作数中必有一个是寄存器,但不能都是段寄存器;这就是说,MOV指令不能在两个存储单元之间直接传送数据,也不能在两个段寄存器之间直接传送数据。,40,3-3 8086的指令系统 数据传送指令,通常,
20、数据通常存放在数据段中。例如,某个程序的数据段:DATASEGMENT;数据段开始 AREA1DB 14H,3BH;定义字节变量 AREA2DB 3 DUP(0);复制操作 ARRAYDW 3l00H,01A6H;定义字变量 STRINGDB GOOD DATAENDS;数据段结束 汇编后,DATA将被赋予一个具体的段地址。各变量将自偏移地址0000H开始依次存放,各符号地址等于它们在数据段中的偏移量。AREA1的偏移地址为0000H,AREA2的偏移地址为0002H,ARRAY的偏移地址为0005H,STRING的偏移地址为0009H。,41,3-3 8086的指令系统 数据传送指令,例 M
21、OV DX,OFFSET ARRAY解:ARRAY的偏移地址DX。(OFFSET:取后面的符号偏移地址的值)设:ARRAY的定义如上图所示 则:DX=0005H,例 MOV AL,AREA1;ALAREA1中的内容14H MOV AREA2,AL;0002H单元14H 例 MOV AX,TABLEBPDI 解:将地址为l 6SSBPDITABLE的字存储单元中的内容送进AX。,42,3-3 8086的指令系统 数据传送指令,PUSH进栈指令 指令格式:PUSH 源 指令功能:数据入堆栈 工作过程:SPSP-2;(SP+1,SP)源 源操作数要求:可以是16位通用寄存器、段寄存器、存储器中的数据
22、字,但不能是立即数。POP出栈指令 指令格式:POP 目的 指令功能:数据出堆栈 工作过程:目的(SP+1,SP);SPSP2;目的操作数要求:可以是16位通用寄存器、段寄存器、存储单元,但CS不能作目的操作数。,高地址,栈底,(SP),压入,弹出,栈顶,(SS),最大容量64K,SP总是指向偶地址单元,段址,43,3-3 8086的指令系统 数据传送指令,工作过程:,44,3-3 8086的指令系统 数据传送指令,XCHG 交换指令(Exchange),指令格式:XCHG 目的,源 指令功能:源操作数、目的操作数数据交换。操作数要求:交换可以在寄存器之间、寄存器与存储器之间进行;段寄存器不能
23、作为操作数;不能直接交换两个存储单元中的内容。例 设AX=2000H,DS=3000H,BX=1800H,(3lA00H)=1995H。则执行指令XCHG AX,BX+200H后,结果如何?解:把内存中的一个字与AX中的内容进行交换。源操作数的物理地址3000H10H十1800H十200H31A00H,指令执行后:AX1995H,(3lA00H)2000H,45,3-3 8086的指令系统 数据传送指令,指令格式:XLAT 转换表 或:XLAT指令功能:使累加器(AL)中的一个值变换为内存表格中的某一个值,一般用来实现编码制的转换,即查表功能。XLAT指令使用步骤:使用之前必须先建立一个表格,
24、表格中的内容是所需要转换的代码;将转换表的起始地址装入BX寄存器;欲查的某项与表头地址的位移量AL,即表格最多包含256个字节;执行XLAT指令后,根据位移量从表中查到转换后的代码值AL寄存器中。,XLAT 表转换指令(Table LookupTranslation),46,3-3 8086的指令系统 数据传送指令,例 若十进制数字09的LED七段码对照表如下表所示,试用XLAT指令 求数字5的七段码值。,解:程序如下:TABLE DB 40H,79H,24H,30H,19H;建表,表格起始地址为TABLE DB 12H,02H,78H,00H,18H;七段码存于对TABLE的;位移量为 09
25、的单元位移 MOV AL,5;AL数字5的位移量 MOV BX,OFFSET TABLE;BX表格首地址 XLAT TABLE;查表得:AL=12H,47,3-3 8086的指令系统 数据传送指令,2输入输出指令(Input and Output):,IN指令:指定端口中的数据累加器OUT指令:累加器中的数据指定端口 IN输入指令(Input)指令格式:IN AL,端口地址;端口地址(00FFH)直接包含在IN指令里,或 IN AX,端口地址;共允许寻址256个端口。直接寻址 IN AL,DX;端口地址0FFH 时,先将端口号送DX寄存器,再执行输入操作。或 IN AX,DX;共允许寻址64K
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 sy
链接地址:https://www.31ppt.com/p-6572787.html