微机原理与接口技术3章.ppt
《微机原理与接口技术3章.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术3章.ppt(227页珍藏版)》请在三一办公上搜索。
1、1,微机原理与接口技术,主讲 尹作友,2,第二章内容回顾,3,第二章 重点之一,8086CPU内部结构,4,目的变址寄存器 Destination Index,SI,DI,BP,SP,AX 累加器 AccumulatorBX 基址寄存器BaseCX 计数寄存器CountDX 数据寄存器Data,IP,PSW,数据段寄存器Data Segment附加段寄存器Extra Segment堆栈段寄存器Stack Segment代码段寄存器Code Segment,状态标志寄存器Processor Status Word,指令指针寄存器Instruction Pointer,变址寄存器,段寄存器,控制寄
2、存器,通用寄存器,源变址寄存器 Source Index,基址指针寄存器 Base Point,堆栈指针寄存器 Stack Point,指针寄存器,数据寄存器,第二章 重点之二,5,第二章 重点之三,逻辑地址的组成段基址:偏移地址物理地址的形成段基址16偏移地址,存储器的分段管理,6,第二章 重点之四,堆栈的概念及工作过程,7,第三章 8086的寻址方式和指令系统,8086的寻址方式微机系统指令的机器码表示方法8086的指令系统,内 容 提 要,8,3-1 8086的寻址方式,概述,3-1 8086的寻址方式 概述,计算机的指令包括:操作码 操作数 操作的性质操作的对象 存放在 寄存器、存储器
3、、I/O端口地址、立即数(由寻址方式决定)寻址方式:指令中说明操作数所在地址的方法。指令分类:单操作数、双操作数、无操作数。(双操作数指令形式:操作码 目的操作数,源操作数),9,3-1 8086的寻址方式 概述,各种寻址方式指令执行速度不同:操作数在寄存器中指令执行速度快:在CPU内部立即执行;立即数寻址指令执行速度较快:直接从指令队列中取数;操作数在存储器中指令执行速度较慢:通过总线与CPU交换数据。CPU进行读/写存储器的操作:把一个偏移量送到BIU,计算出20位物理地址;执行总线周期存取操作数。,10,3-1 8086的寻址方式 概述,寻址方式举例:,11,3-1 8086的寻址方式
4、概述,8086指令的寻址方式类型:一、立即寻址方式二、寄存器寻址方式三、直接寻址方式四、寄存器间接寻址方式五、寄存器相对寻址方式六、基址变址寻址方式七、相对基址变址寻址方式八、其它,12,3-1 8086的寻址方式 立即寻址方式,一、立即寻址方式(Immediate Addressing),1含义:操作数是立即数(即8位或16位的常数),直接包含在指令中。2特点:翻译成机器码时,立即数是指令的一部分,紧跟在操作码之后存放在代码段内。在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。l6位数:高字节代码段的高地址单元,低字节低地址单元;3作用:常用于给寄存器赋初值。,13,
5、3-1 8086的寻址方式 立即寻址方式,例 MOV CX,2A50H 解:将立即数2A50H送到CX寄存器中。(又例:MOV CL,20H),4注意:立即数可以送到寄存器、一个存储单元(8位)、两个连续的存储单元(16位)中去;立即数只能作源操作数,不能作目的操作数;以AF打头的数字出现在指令中时,前面必须加数字0。以免与其它符号相混淆(如:0AF22H)。,MOV CX,2A50H,14,3-1 8086的寻址方式 寄存器寻址方式,二、寄存器寻址方式(Register Addressing),1含义:操作数包含在寄存器中,寄存器的名称由指令指定。2特点:16位操作数:寄存器可以是AX、BX
6、、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注意:源操作数的长度必须与目的操作数致。(注:以下寻址方式下,指令的操作数在存储器中,要先求物理地址才能获得操作数。),15,3-1 8086的寻址方式 直接寻址方式,三、直接寻址方式(Direct Addressing),1含义:存储单元的有效地址EA(即:操作数的偏移地址)直接由指令给出。2特点:机器码中,有效地址存放在代码段中指令的操作码之后,而该地址单元中
7、的数据总是存放在存储器中。须先求出操作数的物理地址,再从存储器中取得操作数。操作数的物理地址16DS EA 3作用:实现对存储单元的读/写操作。,16,3-1 8086的寻址方式 直接寻址方式,例 MOV AX,2000H解:设DS=3000H;设:(32000H)=1234H 由指令得:EA=2000H(16位逻辑地址)物理地址=163000H 2000H=32000H(20位,20根地址线)则:AX=1234H 指令执行过程如图所示。(注:如用AL替代AX,则AL=34H),17,3-1 8086的寻址方式 直接寻址方式,2.段超越前缀MOV AX,ES:500H3.符号地址AREA1EQ
8、U0867HMOVAX,AREA1等价为MOVAX,AREA1,18,3-1 8086的寻址方式 寄存器间接寻址方式,四、寄存器间接寻址方式(Register Indirect Addressing),1含义:操作数的有效地址放在寄存器中。2特点:使用寄存器:基址寄存器BX、BP,变址寄存器SI、DI。操作数的物理地址 16DS BX/SI/DI 或 16SS BP3作用:有效地址可以存放在寄存器中。,19,3-1 8086的寻址方式 寄存器间接寻址方式,例 MOV BX,SI 解:设:DS1000H,SI2000H,(12000H)318BH 则:物理地址 16DS SI 10000H 20
9、00H 12000H 指令执行后,BX318BH,指令执行过程如图所示。,20,4注意:寄存器名称外必须加方括号,以区别寄存器寻址方式;段超越前缀来从默认段以外的段中取得数据;例 MOV BX,ES:SI关于默认段:指定寄存器BX、SI或DI,默认操作数存放在数据段DS中;(DS:BX,SI,DI)指定寄存器BP,默认操作数存放在数据段SS中;(SS:BP),3-1 8086的寻址方式 寄存器间接寻址方式,21,3-1 8086的寻址方式 寄存器相对寻址方式,五、寄存器相对寻址方式(Register Relative Addressing),1含义:操作数的有效地址是基址或变址寄存器的内容与8
10、位或16位位移量(Displacement)之和。即 BX/BP EA=+8位偏移量/16位偏移量 SI/DI 2特点:使用:BX、BP、SI、DI。操作数的物理地址 16DS BX/SI/DI COUNT 或 16SS BP COUNT,22,3-1 8086的寻址方式 寄存器相对寻址方式,例 MOV BX,COUNT SI;或:MOV BX,COUNTSI解:设:DS3000H,SI2000H,位移量COUNT4000H,(36000H)=318BH则:物理地址 16DS SI COUNT 30000H 2000H 4000H 36000H,指令执行后,BX318BH,23,3注意:寄存器
11、名称外必须加方括号,位移量可以在括号内,也可以在括号外;段超越前缀来从默认段以外的段中取得数据;例 MOV DH,ES:ARRAYSI关于默认段:指定寄存器BX、SI或DI,默认操作数存放在数据段DS中;(DS:BX,SI,DI)指定寄存器BP,默认操作数存放在数据段SS中;(SS:BP),3-1 8086的寻址方式 寄存器相对寻址方式,24,3-1 8086的寻址方式 基址变址寻址方式,六、基址变址寻址方式(Register Relative Addressing),1含义:操作数的有效地址是一个基址寄存器(BX、BP)的内容与一个变址寄存器(SI、DI)的内容之和。2特点:使用的寄存器:基
12、址寄存器BX、BP,变址寄存器SI、DI 操作数的物理地址 16DS BX SI/DI 或 16SS BP SI/DI3注意:寄存器SI和DI、BP和BX不能同时出现在 中。,25,3-1 8086的寻址方式 基址变址寻址方式,例 MOV AX,BX SI;或:MOV BX,BXSI解:设:DS3000H,SI0500H,BX1200H,(31700H)=0ABCDH 则:物理地址 16DS SI BX 30000H 0500H 1200H 31700H,指令执行后,AX0ABCDH,26,3-1 8086的寻址方式 相对基址变址寻址方式,七、相对基址变址寻址方式(Relative Based
13、 Indexed Addressing),1含义:操作数的有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容,再加上8位或16位位移量之和。即 EA=BX或 BP+SI或DI+8或16位移量2特点:使用的寄存器:基址寄存器BX、BP,变址寄存器SI、DI 操作数的物理地址 16DS BX SI/DI 8/16位位移量 或 16SS BP SI/DI 8/16位位移量3注意:存器SI和DI、BP和BX不能同时出现在 中,27,3-1 8086的寻址方式 相对基址变址寻址方式,例 MOV AX,MASKBX SI;或:MOV BX,MASKBXSI解:设:DS3000H,S
14、I0300H,BX1500H,MASK=0200H,(21A00H)=26BFH 则:物理地址 16DS SI BX+MASK 20000H 0300H 1500H+0200H 21A00H,指令执行后,AX26BFH,28,3-1 8086的寻址方式 寻址方式总结,寻址方式总结:带方括号的地址表达式必须遵循下列规则:1.立即数可以出现在方括号内,表示直接地址,如2000H。2.只有BX、BP、SI、DI这四个寄存器可以出现在 内,它们可以单独出现,也可以相加,或与常数相加,但:BX和BP寄存器、SI和DI寄存器不允许出现在同一个 内。3.方括号表示相加,下面几种写法等价:6BXSI;BX+6
15、SI;BX+SI+6,29,3-1 8086的寻址方式 寻址方式总结,4不同寄存器对应不同的隐含段基址:SS:BP;DS:BX,SI,DI;物理地址16相应段基址 EA EA BX/BP SI/DI DISP(注:可以是单一寄存器、两个寄存器组合、和DISP组合;DISP也可以为0)可用段超越前缀修改段基址。,30,3-1 8086的寻址方式 其它,八、其它,1隐含寻址:指令中不指明操作数,但有隐含规定的寻址方式。如:指令DAA;对寄存器AL中的数据进行十进制数调整,结果仍保留在AL中。2I/O端口寻址:8086有直接端口和间接端口两种寻址方式。直接端口寻址方式:指令直接提供端口地址8位立即数
16、。可访问端口00FFH,即256个端口。例如,IN AL,63H;表示将瑞口63H中的内容送进AL寄存器,31,3-1 8086的寻址方式 其它,间接端口寻址方式:端口地址由寄存器DX提供,端口号为0000FFFFH。例如,MOVDX,213H;DX=口地址号213H IN AL,DX;AL端口213H中的内容3一条指令有多种寻址方式:源操作数和目的操作数同样适用上述寻址方法。例 MOV BX,AL解:设:BX3600H,DS1000H,AL=05H 则:目的操作数的物理地址16DS BX 10000H十3600H 13600H 指令执行结果为(13600H)05H。,2023/11/13,3
17、.DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,AL=0030H(1)MOV AX,100H 直接寻址方式,10100H 物理地址DS10H+100H=10000H+0100H=10100H(2)MOV AX,VAL 直接寻址方式,10030H 物理地址DS10H+VAL=10000H+0030H=10030H(3)MOV AX,BX 寄存器间接寻址,10100H 物理地址DS10H+BX=10000H+0100H=10100H(4)MOV AX,ES:BX 寄存器间接寻址,20100H 物理地址ES10H+BX=
18、20000H+0100H=20100H,33,(5)MOV AX,SI 寄存器间接寻址,100A0H物理地址=DS10H+SI=10000H+00A0H=100A0H(6)MOV AX,BX+10H 寄存器相对寻址,10110H物理地址=DS10H+BX+10H=10000H+0100H+10H=10110H(7)MOV AX,BP 寄存器间接寻址,35200H物理地址=SS10H+BP=35000H+0200H=35200H,2023/11/13,(8)MOV AX,VALBPSI相对基址变址寻址,352D0H物理地址=SS10H+BP+SI+VAL=35000H+0200H+00A0H+0
19、030H=352D0H(9)MOV AX,VALBXDI相对基址变址寻址,10154H物理地址=DS10H+BX+DI+VAL=10000H+0100H+0024H+0030H=10154H(10)MOV AX,BPDI基址变址寻址,35224H物理地址=SS10H+BP+DI=35000H+0200H+0024H=35224H,35,3-2指令的机器码表示方法,一、机器语言指令的编码目的和特点,3-2 指令的机器码表示方法目的和特点,汇编语言源程序:用汇编语言(即主要由指令系统组成的语言)编写的程序。编译程序 执行源程序 机器码 运算结果 指令通常由操作码和操作数两部分组成。8086指令系统
20、采用变长指令,指令的长度可由16字节组成。,36,3-2 指令的机器码表示方法指令代码的编制,二、机器语言指令代码的编制,其中,第一个字节:高6位是操作码100010;W位说明传递数据的类型是字(Wl)还是字节(W0);D位标明数据传送的方向:D0,数据从寄存器传出;D1,数据传至寄存器;,1编码格式说明(MOV指令为例):,操作码,37,3-2 指令的机器码表示方法指令代码的编制,第二个字节:REG字段:寄存器号,用3位编码寻址8种不同的寄存器,再根据第一字节中W位,选择8位或16位寄存器。如表3-l所示。(对段寄存器,REG字段占2位)例如:REG010,W1时表示寻址DX寄存器;REG0
21、10,W0时寻址DL寄存器。,38,3-2 指令的机器码表示方法指令代码的编制,MOD字段和R/M字段:MOV指令的两个操作数中有一个必为寄存器,另一个操作数可能是寄存器,也可能是存储器单元,由指令代码的第二个字节个的MOD和R/M字段指定。如表3-2所示。(24种不同的编码格式,D8表示8位位移量,D16为16位位移量)对指令进行编码时,若包含8位位移量,则在编码后增加一个宇节存放位移量disp-L;若包含16位的位移量,则增加2个字节存放位移量:第3个字节存放位移量的低字节disp-L,第4个字节存放位移量高字节disp-H。,39,3-2 指令的机器码表示方法指令代码的编制,对MOV指令
22、进行编码的几个示例:,2寄存器间传送指令的编码:例 求指令MOV SP,BX的机器码 解:指令的功能是将BX寄存器的内容送到SP寄存器中。从附录B可知,该指令的操作码为1000l0;传送的是字数据,所以w1;REG字段:选择将SP,则REG字段编码100;D位=1,表示数据传至所选的寄存器(SP);MOD11,因另一个操作数BX也是寄存器。从表3-2查得R/M011。根据Wl及寄存器名称为BX,求得指令编码。,40,3-2 指令的机器码表示方法指令代码的编制,3寄存器与存储器间传送指令的编码 例:求指令MOV CL,BXl234H的机器码。解:功能:将有效地址为(BX1234H)存储单元中的数
23、据字节传送到CL寄存器中;指令的编码如图3-10中所示。第1、2字节可通过查表得到;第3字节存放l6位位移量的低字节34H;第4字节存放高字节12H。所以该指令的编码为8A 8F 34 12H。,41,3-2 指令的机器码表示方法指令代码的编制,4立即数寻址指令的编码 立即数寻址的指令:操作码 12个字节用于存放立即数据。例 求指令MOV BX十2100H,0FA50H 的机器码。解:指令的功能:将16位立即数FA 50H送到有效地址为(BX2100H)的字存储单元中;指令编码如图3-11中所示;其中:低字节50H送列BX2100H单元,高字节FAH送到(BX2101H)单元;指令中不但有16
24、位立即数,还有16位位移量;该指令的6字节编码为:C7 87 00 21 50 FA。,42,3-2 指令的机器码表示方法指令代码的编制,5包含段寄存器的指令的编码 含有段寄存器的指令,寄存器字段REG占有2位,从表3-1可得,相应的编码为:CS01,DS11,ES=00,SSl0。例 求指今MOV DS,AX 的机器码。解:指令功能:将AX寄存器的内容传送到数据段寄存器DS;从附录B中查到该指令的编码格式为:10001110 MOD 0 REG R/M;段寄存器DS的编码为11,即REG字段为11;另一个操作数也是寄存器,所以MOD11,而R/M字段应填上AX的三位代码000;得到该指令的编
25、码为:8E D8H。,43,3-2 指令的机器码表示方法指令代码的编制,6段超越前缀指令的编码 该类指令进行编码时,在指令代码前加一个8位的段超越的缀代码,代码的格式为001110,其中位表明段超越寄存器,编码与上面列出的相同。例 若指令MOV BX,DL 的编码为88 17H,试求指令MOV CS:BX,DL的代码。解:该指令的编码是在不带段超越前缀的指令代码88 17H前,加上一个字节001110。由于段寄存器CS的代码为01,所以指令的第1个字节的编码为00101110,即 2EH。可得到该指令的机器码为2E 88 17H,44,3-3 8086的指令系统,3-3 8086的指令系统 分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术
链接地址:https://www.31ppt.com/p-6572772.html