最新微机原理课件第3章2PPT课件.ppt

上传人:豆**** 文档编号:77615485 上传时间:2023-03-15 格式:PPT 页数:61 大小:1.35MB
返回 下载 相关 举报
最新微机原理课件第3章2PPT课件.ppt_第1页
第1页 / 共61页
最新微机原理课件第3章2PPT课件.ppt_第2页
第2页 / 共61页
点击查看更多>>
资源描述

《最新微机原理课件第3章2PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理课件第3章2PPT课件.ppt(61页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、微机原理课件第微机原理课件第3 3章章2 23.2 80863.2 8086指令分类指令分类指令系统指令系统 是指是指CPUCPU能完成的所有能完成的所有指令的集合,它是在指令的集合,它是在CPUCPU设计时就确定了的。设计时就确定了的。所以,对不同的所以,对不同的CPUCPU,其指令系统中所包含,其指令系统中所包含的具体指令将是各不相同的。但的具体指令将是各不相同的。但8088/8086 8088/8086 CPUCPU的指令系统是完全一样的。的指令系统是完全一样的。立即寻址主要用来给立即寻址主要用来给REGREG或或M M赋初值。赋初值。注意:注意:只能用于源操作数字段,不能用于目的操只能

2、用于源操作数字段,不能用于目的操作数字段。作数字段。如:如:MOV 12H,AL (语法错误语法错误)3.3 3.3 数据寻址方式数据寻址方式2.2.寄存器寻址寄存器寻址 数据放在指令规定的寄存器中,对数据放在指令规定的寄存器中,对1616位数据,位数据,REGREG可以是可以是AXAX、BXBX、CXCX、DXDX、SISI、DIDI、SPSP、BPBP以及以及段寄存器段寄存器,而对于,而对于8 8位数据,位数据,REG REG可以是可以是AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DLDL。3.3 3.3 数据寻址方式数据寻址方式例:例:MOV AX,BXMOV

3、AX,BXA XA X B XB X 若(若(AXAX)=1234H,(BX)=5678H=1234H,(BX)=5678H,则,则CPUCPU执行上条执行上条指令后,(指令后,(AXAX)=5678H=5678H,而(,而(BXBX)不变。)不变。又如:又如:MOV CX,DL MOV CX,DL(语法错误语法错误)错误原因:类型不一致。错误原因:类型不一致。3.3 3.3 数据寻址方式数据寻址方式 在程序设计中,一般存放数据时,寄存器选在程序设计中,一般存放数据时,寄存器选择通用寄存器,而存放结果时尽可能的使用择通用寄存器,而存放结果时尽可能的使用AXAX累累加器,因为使用加器,因为使用A

4、XAX累加器要比用其它寄存器存放累加器要比用其它寄存器存放结果,指令执行时间要短一些。结果,指令执行时间要短一些。寄存器寻址既可以作寄存器寻址既可以作DST,DST,也可以作也可以作SRCSRC。3.3 3.3 数据寻址方式数据寻址方式 这类寻址方式,操作数在存储器中,而这类寻址方式,操作数在存储器中,而存储器单元的地址由以下存储器单元的地址由以下五种五种寻址方式的任寻址方式的任何一种均可以找到何一种均可以找到。但在指令中给出的只是。但在指令中给出的只是要寻找的操作数所在单元的段内偏移地址,要寻找的操作数所在单元的段内偏移地址,而操作数所在单元的段地址除非指令中用段而操作数所在单元的段地址除非

5、指令中用段前缀特别指明,否则是默认的前缀特别指明,否则是默认的DSDS。3.3.存储器寻址存储器寻址3.3 3.3 数据寻址方式数据寻址方式PA(段寄存器段寄存器)16+指令中给出的偏移地址指令中给出的偏移地址 指令中直接给出了要寻找操作数所在单元的指令中直接给出了要寻找操作数所在单元的1616位偏移地址。位偏移地址。操作数所在单元的物理地址操作数所在单元的物理地址:PA(段寄存器段寄存器)16+指令中给出的偏移地址指令中给出的偏移地址直接寻址(直接寻址(Direct AddressingDirect Addressing )指令中直接给出的操作数所在单元的指令中直接给出的操作数所在单元的16

6、16位偏移位偏移地址地址,默认在数据段。也可以通过增加段前缀来改变默认在数据段。也可以通过增加段前缀来改变操作数所在的段地址。操作数所在的段地址。3.3 3.3 数据寻址方式数据寻址方式A XA XCSCS段段操作码操作码例例1 1:MOV AX,2000HMOV AX,2000H若若DSDS为为3000H3000H,则:,则:A HA H A LA L 32000H32000H32001H32001H3 0 0 0 0 H3 0 0 0 0 H +DSDS 存储器存储器数据段数据段20H20H00H00HA1HA1H 2 0 0 0 H 2 0 0 0 H PA=3 2 0 0 0 HPA=

7、3 2 0 0 0 H 3.3 3.3 数据寻址方式数据寻址方式34H34H12H12H(AX)=1234H(AX)=1234HCSCS段段操作码操作码例例2 2:MOV 2000H,ALMOV 2000H,AL若若DSDS为为3000H3000H,则:,则:A LA L 32000H32000H3 0 0 0 0 H3 0 0 0 0 H +DSDS 存储器存储器数据段数据段20H20H00H00H 2 0 0 0 H 2 0 0 0 H PA=3 2 0 0 0 HPA=3 2 0 0 0 H 3.3 3.3 数据寻址方式数据寻址方式CSCS段段操作码操作码例例3 3:MOV ES:200

8、0H,ALMOV ES:2000H,AL若若ESES为为2050H2050H,则:,则:A LA L 22500H22500H2 0 5 0 0 H2 0 5 0 0 H +ESES存储器存储器附加数据段附加数据段20H20H00H00H 2 0 0 0 H 2 0 0 0 H PA=2 2 5 0 0 HPA=2 2 5 0 0 H 前缀码前缀码3.3 3.3 数据寻址方式数据寻址方式 在实际的汇编语言程序设计中,如果程在实际的汇编语言程序设计中,如果程序比较复杂,而用到的存放数据的单元又很序比较复杂,而用到的存放数据的单元又很多,那么在直接寻址方式当中,用户就要记多,那么在直接寻址方式当中

9、,用户就要记住存放数据的每个单元的地址,同时还要记住存放数据的每个单元的地址,同时还要记住该地址单元存放的数据的意义,这样对设住该地址单元存放的数据的意义,这样对设计程序带来了很大的困难。如:计程序带来了很大的困难。如:MOV ES:2000H,ALMOV ES:2000H,AL3.3 3.3 数据寻址方式数据寻址方式所以在实际的汇编语言程序设计中,常常所以在实际的汇编语言程序设计中,常常采用给存放数据的单元,定义一个符号地采用给存放数据的单元,定义一个符号地址名,即址名,即变量名变量名/变量变量。如:。如:COUNT DB 20H COUNT DB 20H这样,在程序设计中就可以用这个变量名

10、代替这样,在程序设计中就可以用这个变量名代替原来的存储器单元的实际地址。原来的存储器单元的实际地址。3.3 3.3 数据寻址方式数据寻址方式例例4 4:若:若(DS)=1500H,TABLE(DS)=1500H,TABLE为在为在DSDS段定义的一个字变量,段定义的一个字变量,且偏移地址为且偏移地址为0004H0004H。则。则CPUCPU执行执行 MOV AX,TABLE MOV AX,TABLE 指令完指令完成的操作如下:成的操作如下:1 5 0 0 0 H1 5 0 0 0 H +DSDS存储器存储器数据段数据段 0 0 0 4 H 0 0 0 4 H PA=1 5 0 0 4 HPA=

11、1 5 0 0 4 H A HA H A LA L 15004H15004H15005H15005HTABLETABLE3.3 3.3 数据寻址方式数据寻址方式例例5 5:若:若VAR1VAR1为字变量,为字变量,VAR2 VAR2和和VAR3VAR3为字节变量,为字节变量,判断下列指令的书写格式是否正确,正确的说出判断下列指令的书写格式是否正确,正确的说出SRCSRC和和DSTDST的寻址方式,不正确说出错误原因。的寻址方式,不正确说出错误原因。MOV AX ,VAR1 MOV AX ,VAR1 SRCSRC为直接寻址为直接寻址 DST DST为寄存器寻址为寄存器寻址 MOV AX ,VAR

12、2 MOV AX ,VAR2 类型不一致类型不一致 MOV VAR2,VAR3 MOV VAR2,VAR3 两存储器单元之间不两存储器单元之间不 能直接传送数据能直接传送数据 MOV 0200H,12H MOV 0200H,12H 类型不明确类型不明确3.3 3.3 数据寻址方式数据寻址方式例例6 6:将例:将例5 5中语法不正确的语句改对。中语法不正确的语句改对。MOV AX ,VAR2 MOV AX ,VAR2 类型不一致类型不一致 改:改:MOV AL,VAR2MOV AL,VAR2 MOV VAR2,VAR3 MOV VAR2,VAR3 两存储器单元之间不两存储器单元之间不 改:改:M

13、OV AL,VAR3 MOV AL,VAR3 能直接传送数据能直接传送数据 MOV VAR2,AL MOV VAR2,AL MOV 0200H,12H MOV 0200H,12H 类型不明确类型不明确 改:改:MOV BYTE PTR 0200H,12HMOV BYTE PTR 0200H,12H 或者:或者:MOV WORD PTR 0200H,12HMOV WORD PTR 0200H,12H注:注:PTRPTR为临时属性修改符。为临时属性修改符。3.3 3.3 数据寻址方式数据寻址方式 这种寻址方式,要寻找的操作数在某存储器这种寻址方式,要寻找的操作数在某存储器单元中,该存储器单元地址的

14、段内单元中,该存储器单元地址的段内1616位偏移地址位偏移地址在指令中以在指令中以BXBX、SISI、DIDI某一个寄存器给出。其段某一个寄存器给出。其段地址默认在地址默认在DSDS段。段。SISIDIDIBXBXEAEA=寄存器间接寻址寄存器间接寻址Register Indirect AddressingRegister Indirect Addressing3.3 3.3 数据寻址方式数据寻址方式例例1 1:MOV AX,BXMOV AX,BX 其其SRCSRC为寄存器间接寻址;为寄存器间接寻址;DST DST为寄存器寻址;为寄存器寻址;指令完成的功能为:指令完成的功能为:AX (DS A

15、X (DS:(BX):(BX)若:若:DS=3000H,BX=1050HDS=3000H,BX=1050H 则:则:SRCSRC所在单元的物理地址为:所在单元的物理地址为:PA=(DS)PA=(DS)16+(BX)16+(BX)=30000H+1050H =30000H+1050H =31050H =31050H3.3 3.3 数据寻址方式数据寻址方式CSCS段段操作码操作码A HA H A LA L 31050H31050H31051H31051H 存储器存储器数据段数据段A XA X8BH8BH07H07H3 0 0 0 0 H3 0 0 0 0 H DS:DS:+1 0 5 0 H 1

16、0 5 0 H3 1 0 5 0 H3 1 0 5 0 H BX:BX:PA:PA:3.3 3.3 数据寻址方式数据寻址方式MOV AX,BXMOV AX,BX例例2 2:MOV ES:SI,ALMOV ES:SI,AL 指令完成的功能为:指令完成的功能为:(ES:(SI)(AL)(ES:(SI)(AL)若:若:ES=4000H,SI=1234H,(AL)=23HES=4000H,SI=1234H,(AL)=23H 则:则:DSTDST所在单元的物理地址为:所在单元的物理地址为:PA=(ES)PA=(ES)16+(SI)16+(SI)=40000H+1234H =40000H+1234H =4

17、1234H =41234H 指令执行后指令执行后(41234H)=23H.(41234H)=23H.3.3 3.3 数据寻址方式数据寻址方式例例3 3:判断下列指令的书写格式是否正确,正确的:判断下列指令的书写格式是否正确,正确的说出说出SRCSRC和和DSTDST的寻址方式,不正确说出错误原因,的寻址方式,不正确说出错误原因,并改正。并改正。MOV BX,SI MOV BX,SI 两存储器单元之间不两存储器单元之间不 能直接传送数据能直接传送数据;类型也类型也 不明确。不明确。改正:改正:MOV AL,SIMOV AL,SI MOV BX,AL MOV BX,AL 3.3 3.3 数据寻址方

18、式数据寻址方式 MOV DI,12H MOV DI,12H 类型不明确类型不明确 改正:改正:MOV WORD PTR DI,12HMOV WORD PTR DI,12H MOV SI,CX MOV SI,CX DSTDST为寄存器间接寻址为寄存器间接寻址 SRC SRC为寄存器寻址为寄存器寻址3.3 3.3 数据寻址方式数据寻址方式 要寻找的操作数在某存储器单元之中,该单元要寻找的操作数在某存储器单元之中,该单元的有效地址的一部分在的有效地址的一部分在 中,另一部分为一中,另一部分为一个个 DISP DISP。BPBPSISIBXBXDIDI寄存器相对寻址寄存器相对寻址Register Re

19、lative Addressing Register Relative Addressing 8 8位位1616位位其中,其中,DISPDISP相对位移量相对位移量3.3 3.3 数据寻址方式数据寻址方式EAEA=BPBPSISIBXBXDIDI8 8位位DISPDISP1616位位DISPDISP+在在DISPDISP为常数时,操作数所在单元的段地址以为常数时,操作数所在单元的段地址以寄存器为准,若寄存器为寄存器为准,若寄存器为BXBX、SISI、DIDI,操作数默认,操作数默认在在DSDS段中。若寄存器为段中。若寄存器为BPBP,操作数默认在,操作数默认在SSSS段中。段中。在在DISPD

20、ISP为变量时,操作数所在单元的段地址以为变量时,操作数所在单元的段地址以变量为准,变量在哪个段定义的,就取该段的段地变量为准,变量在哪个段定义的,就取该段的段地址。址。3.3 3.3 数据寻址方式数据寻址方式例例1 1:MOV AX,BX+05HMOV AX,BX+05H 其中,其中,SRCSRC也可以写成:也可以写成:若:若:DS=2000H,BX=0008H,DS=2000H,BX=0008H,存放操作存放操作数单元的物理地址为:数单元的物理地址为:PA=(DS)PA=(DS)16+(BX)+05H16+(BX)+05H =20000H+0008H+05H =20000H+0008H+0

21、5H =2000DH =2000DHBX+05HBX+05H05HBX05HBX05H+BX05H+BX3.3 3.3 数据寻址方式数据寻址方式CSCS段段操作码操作码A HA H A LA L 2000DH2000DH2000EH2000EH+存储器存储器数据段数据段AXAX8BH8BH47H47H05H05H2 0 0 0 0 H2 0 0 0 0 H0 0 0 8 H0 0 0 8 H2 0 0 0 D H2 0 0 0 D H0 0 0 5 H0 0 0 5 H3.3 3.3 数据寻址方式数据寻址方式MOV AX,BX+05HMOV AX,BX+05H例例2 2:MOV AX,BPMO

22、V AX,BP 若:若:SS=1050H,BP=0050H,SS=1050H,BP=0050H,存放操作存放操作数的存储单元的物理地址为:数的存储单元的物理地址为:PA=(SS)PA=(SS)16+(BP)+00H16+(BP)+00H =10500H+0050H+00H =10500H+0050H+00H =10550H =10550H3.3 3.3 数据寻址方式数据寻址方式CSCS段段操作码操作码A HA H A LA L 10550H10550H10551H10551H+存储器存储器SSSS段段相对偏移量相对偏移量DISPDISP为为0 0,这里特别,这里特别指出,指出,BPBP寄存器无

23、间接寻址,寄存器无间接寻址,只不过在相对寻址时,只不过在相对寻址时,DISPDISP为为0 0。1 0 5 5 0 H1 0 5 5 0 H 0 0 5 0 H 0 0 5 0 H1 0 5 0 0 H1 0 5 0 0 H3.3 3.3 数据寻址方式数据寻址方式MOV AX,BPMOV AX,BP例例3 3:若:若(DS)=1500H,TABLE(DS)=1500H,TABLE为在为在DSDS段定义的一个字段定义的一个字变量,且偏移地址为变量,且偏移地址为0004H,(BP)=0003H0004H,(BP)=0003H。MOV AX,TABLE BPMOV AX,TABLE BPSRCSRC

24、的寻址方式为寄存器相对寻址。的寻址方式为寄存器相对寻址。指令完成的操作为:指令完成的操作为:(AXAX)(DS:(DS:OFFSETOFFSET TABLE+(BP)TABLE+(BP)3.3 3.3 数据寻址方式数据寻址方式 要寻找的操作数在某存储器单元之中,该单元要寻找的操作数在某存储器单元之中,该单元有效地址的一部分在有效地址的一部分在 中,另一部分在中,另一部分在 中。中。BPBPBXBXSISIDIDI基址变址寻址基址变址寻址Based Indexed AddressingBased Indexed Addressing EAEA=+BPBPBXBXSISIDIDI 该单元的段地址以

25、基址寄存器为准,若基址该单元的段地址以基址寄存器为准,若基址寄存器为寄存器为BX,BX,则段地址默认在则段地址默认在DSDS中,若基址寄存器中,若基址寄存器为为BP,BP,则段地址默认在则段地址默认在SSSS中。中。3.3 3.3 数据寻址方式数据寻址方式例例1 1:MOV AX,BXSIMOV AX,BXSI (AX)(DS (AX)(DS:(BX+SI):(BX+SI)例例2 2:MOV AX,BPSIMOV AX,BPSI (AX)(SS (AX)(SS:(BX+SI):(BX+SI)例例3 3:MOV BPDI,ALMOV BPDI,AL (SS (SS:(BP+DI):(BP+DI)

26、(AL)(AL)3.3 3.3 数据寻址方式数据寻址方式 它是基址变址寻址的扩充,操作数仍在存储器它是基址变址寻址的扩充,操作数仍在存储器中,存储器单元的有效地址为:中,存储器单元的有效地址为:同样,同样,如果用如果用BXBX作为基地址,操作数默认在作为基地址,操作数默认在DSDS段中;如果用段中;如果用BPBP作为基地址,则在作为基地址,则在SSSS段中。段中。在在DISPDISP为变量时,操作数所在单元的段地址以为变量时,操作数所在单元的段地址以变量为准,变量在哪个段定义的,就取该段的段地变量为准,变量在哪个段定义的,就取该段的段地址。址。BPBPBXBXEAEA=8 8位位DISPDIS

27、P1616位位DISPDISP+SISIDIDI+基址变址且相对寻址基址变址且相对寻址Based Indexed Relative AddressingBased Indexed Relative Addressing 3.3 3.3 数据寻址方式数据寻址方式例例1 1:MOV AX,BXDI04 MOV AX,BXDI04 (AX)(DS (AX)(DS:(BX+DI+04H):(BX+DI+04H)例例2 2:MOV AX,BPDI04MOV AX,BPDI04 (AX)(SS (AX)(SS:(BP+DI+04H):(BP+DI+04H)例例3 3:MOV DS:BPDI+04H,ALM

28、OV DS:BPDI+04H,AL (DS (DS:(BP+DI+04H):(BP+DI+04H)(AL)(AL)3.3 3.3 数据寻址方式数据寻址方式8.8.隐含寻址隐含寻址Hidden AddressingHidden Addressing 有些指令的指令码中不包含指明操作数有些指令的指令码中不包含指明操作数地址的部分,而其操作码本身隐含的指明了地址的部分,而其操作码本身隐含的指明了操作数地址。操作数地址。如:乘除法指令、字符串操作类指令等。如:乘除法指令、字符串操作类指令等。3.3 3.3 数据寻址方式数据寻址方式例例1.1.若(若(BXBX)=0158H,=0158H,(DIDI)=

29、10A5H,=10A5H,(DSDS)=2100H,DISP=1B57H,=2100H,DISP=1B57H,(BPBP)=0100H,=0100H,(SSSS)=1100H,=1100H,段寄存器按默认段寄存器,则相对于各段寄存器按默认段寄存器,则相对于各种寻址方式的种寻址方式的EAEA的求法如下:的求法如下:直接寻址:直接寻址:EA=1B57HEA=1B57HPA=21000H+1B57H=22B57HPA=21000H+1B57H=22B57H3.3 3.3 数据寻址方式数据寻址方式MOV AX,DISPMOV AX,DISP例例1.1.若(若(BXBX)=0158H,=0158H,(D

30、IDI)=10A5H,=10A5H,(DSDS)=2100H,DISP=1B57H,=2100H,DISP=1B57H,(BPBP)=0100H,=0100H,(SSSS)=1100H,=1100H,段寄存器按默认段寄存器,则相对于各段寄存器按默认段寄存器,则相对于各种寻址方式的种寻址方式的EAEA的求法如下:的求法如下:寄存器间接寻址(设寄存器为寄存器间接寻址(设寄存器为BXBX):):EA=0158HEA=0158HPA=21000H+0158H=21158HPA=21000H+0158H=21158H3.3 3.3 数据寻址方式数据寻址方式MOV AX,BXMOV AX,BX例例1.1.

31、若(若(BXBX)=0158H,=0158H,(DIDI)=10A5H,=10A5H,(DSDS)=2100H,DISP=1B57H,=2100H,DISP=1B57H,(BPBP)=0100H,=0100H,(SSSS)=1100H,=1100H,段寄存器按默认段寄存器,则相对于各段寄存器按默认段寄存器,则相对于各种寻址方式的种寻址方式的EAEA的求法如下:的求法如下:寄存器相对寻址(以寄存器相对寻址(以BPBP为例):为例):EA=0100H+1B57H=1C57HEA=0100H+1B57H=1C57HPA=21000H+1C57H=22C57HPA=21000H+1C57H=22C57

32、H3.3 3.3 数据寻址方式数据寻址方式MOV AX,DISPBPMOV AX,DISPBP例例1.1.若(若(BXBX)=0158H,=0158H,(DIDI)=10A5H,=10A5H,(DSDS)=2100H,DISP=1B57H,=2100H,DISP=1B57H,(BPBP)=0100H,=0100H,(SSSS)=1100H,=1100H,段寄存器按默认段寄存器,则相对于各段寄存器按默认段寄存器,则相对于各种寻址方式的种寻址方式的EAEA的求法如下:的求法如下:基址变址寻址(基址变址寻址(BXBX、DIDI):):EA=0158H+10A5H=11FDHEA=0158H+10A5

33、H=11FDHPA=21000H+11FDH=221FDHPA=21000H+11FDH=221FDH3.3 3.3 数据寻址方式数据寻址方式MOV AX,BXDIMOV AX,BXDI例例1.1.若(若(BXBX)=0158H,=0158H,(DIDI)=10A5H,=10A5H,(DSDS)=2100H,DISP=1B57H,=2100H,DISP=1B57H,(BPBP)=0100H,=0100H,(SSSS)=1100H,=1100H,段寄存器按默认段寄存器,则相对于各段寄存器按默认段寄存器,则相对于各种寻址方式的种寻址方式的EAEA的求法如下:的求法如下:基址变址相对寻址(基址变址相

34、对寻址(BPBP、DIDI):):EA=0100H+10A5H+1B57H=2CFCHEA=0100H+10A5H+1B57H=2CFCHPA=21000H+2CFCH=23CFCHPA=21000H+2CFCH=23CFCH3.3 3.3 数据寻址方式数据寻址方式MOV AX,DISPBPDIMOV AX,DISPBPDI例例2 2:判断下列指令的书写格式是否正确,正确的:判断下列指令的书写格式是否正确,正确的说出说出SRCSRC和和DSTDST的寻址方式,不正确说出错误原因。的寻址方式,不正确说出错误原因。MOV AX,BXSI MOV AX,BXSI SRCSRC为基址变址寻址为基址变址

35、寻址 DST DST为寄存器寻址为寄存器寻址 MOV AX,BL MOV AX,BL 类型不一致类型不一致 MOV BP,DI+01H MOV BP,DI+01H 两存储器单元之间两存储器单元之间 不能直接传送数据不能直接传送数据 MOV BXDI+02H,12H MOV BXDI+02H,12H 类型不明确类型不明确3.3 3.3 数据寻址方式数据寻址方式 寻找的操作数指定的地址,赋给寻找的操作数指定的地址,赋给IPIP或或CS:IP,CS:IP,从而实现程序的转移。从而实现程序的转移。如果程序转移后如果程序转移后只有只有IPIP发生了改变,则称发生了改变,则称为段内转移为段内转移或者称为近

36、程转移(也称为或者称为近程转移(也称为NEARNEAR型转移)。型转移)。如果程序转移后如果程序转移后CSCS、IPIP均发生了改变,则均发生了改变,则称为段间转移称为段间转移或者称为远程转移(也称为或者称为远程转移(也称为FARFAR型转移)。型转移)。3.3 3.3 转移地址的寻址方式转移地址的寻址方式先介绍无条件转移指令先介绍无条件转移指令JMP JMP:JMP OPRJMP OPR程序转移到由程序转移到由OPROPR指定的位置执行。指定的位置执行。80868086指令系统中的转移指令有两大类:指令系统中的转移指令有两大类:无条件转移指令:有无条件转移指令:有JMPJMP、CALLCAL

37、L、RETRET、IRETIRET条件转移指令条件转移指令:如如JZJZ、JCJC、JCXZJCXZ、LOOPLOOP等。等。3.3 3.3 转移地址的寻址方式转移地址的寻址方式3.3 3.3 转移地址的寻址方式转移地址的寻址方式转移地址的寻址方式有下列转移地址的寻址方式有下列4 4种:种:段内寻址表示转移在本段内完成,段间寻址表示转移段内寻址表示转移在本段内完成,段间寻址表示转移在不同段之间完成。在不同段之间完成。段内转移地址的寻址方式(只有段内转移地址的寻址方式(只有IPIP发生改变)发生改变)1.1.段内直接寻址段内直接寻址(Direct addressing within same s

38、egmentDirect addressing within same segment)(也叫段内相对寻址也叫段内相对寻址)3.3 3.3 转移地址的寻址方式转移地址的寻址方式段内直接寻址是指直接在指令中给出转移目的地址(段内直接寻址是指直接在指令中给出转移目的地址(1616位位偏移地址),转移在同一个段内完成。指令中用偏移地址),转移在同一个段内完成。指令中用JMP JMP 表示,当然这里的标号与该指令处在同一个段。例如:表示,当然这里的标号与该指令处在同一个段。例如:JMP LABEL JMP LABEL;程序转移到标号;程序转移到标号LABELLABEL处执行处执行 操作码操作码1616

39、位位DISPDISP L1:L1:间隔的字节数称为相对间隔的字节数称为相对位移量位移量DISPDISP当前当前IPIP-32768-32768+32767+32767?H?H?H?H转移目的地的转移目的地的IP=IP=当前(当前(IPIP)+16+16位位DISPDISPJMP L1 JMP L1;JMP NEAR PTR L1JMP NEAR PTR L1XXHXXH3.3 3.3 转移地址的寻址方式转移地址的寻址方式2.2.段内间接寻址段内间接寻址(Indirect addressing(Indirect addressing within same segment)within same

40、 segment)3.3 3.3 转移地址的寻址方式转移地址的寻址方式段内间接寻址是指转移目的地址(段内间接寻址是指转移目的地址(1616位偏移地址)保存在位偏移地址)保存在寄存器或存储单元,转移也在同一个段内完成,在指令中寄存器或存储单元,转移也在同一个段内完成,在指令中指出所使用的寄存器或存储单元的偏移地址,当采用存储指出所使用的寄存器或存储单元的偏移地址,当采用存储单元保存转移地址时,可以采用以上介绍的单元保存转移地址时,可以采用以上介绍的5 5种存储器寻址种存储器寻址方式。例如:方式。例如:JMP BXJMP BX;程序转移的目的地址为;程序转移的目的地址为BXBX的内容的内容JMP

41、VAR1JMP VAR1;程序转移的目的地址为字型变量;程序转移的目的地址为字型变量 VAR1 VAR1的内容的内容JMP VAR1SIJMP VAR1SI;目的地址保存在存储器,其有效目的地址保存在存储器,其有效 地址为(地址为(SISI)OFFSET VAR1 OFFSET VAR1 例:若(例:若(DSDS)=2000H,(BX)=0100H,(SI)=0002H,=2000H,(BX)=0100H,(SI)=0002H,(20100H)=1200H,(20102H)=1250H,(20100H)=1200H,(20102H)=1250H,则则CPUCPU执行:执行:JMP BX JMP

42、 BX 指令后,指令后,(IP)=0100H(IP)=0100H JMP WORD PTR BX JMP WORD PTR BX指令后,(指令后,(IPIP)=1200H=1200H JMP WORD PTR BXSI JMP WORD PTR BXSI指令后,(指令后,(IPIP)=1250H=1250H3.3 3.3 转移地址的寻址方式转移地址的寻址方式1.1.段间直接寻址段间直接寻址Direct addressing Direct addressing between different segments between different segments 段间转移地址的寻址方式段间转

43、移地址的寻址方式(CS(CS、IPIP均发生改变均发生改变)只适合于无条件转移指令只适合于无条件转移指令3.3 3.3 转移地址的寻址方式转移地址的寻址方式段间直接寻址是指直接在指令中给出转移目的地址(段间直接寻址是指直接在指令中给出转移目的地址(1616位偏位偏移地址和移地址和1616位段地址),转移在不同段之间完成。指令中用位段地址),转移在不同段之间完成。指令中用JMP JMP 表示,当然这里的标号与该指令处在不同的段。表示,当然这里的标号与该指令处在不同的段。例如:例如:JMP LABEL JMP LABEL;程序转移到标号;程序转移到标号LABELLABEL处执行处执行 (LABEL

44、 LABEL 不在本段中)不在本段中)操操作作码码SEG LABELSEG LABEL LABEL LABEL:?H?H?H?HJMP FAR PTR LABELJMP FAR PTR LABEL*H*H代代码码段段*H*HXXHXXHOFFSET LABELOFFSET LABEL1 1代代码码段段2 2;?:*H?:*H3.3 3.3 转移地址的寻址方式转移地址的寻址方式2.2.段间间接寻址段间间接寻址Indirect addressing Indirect addressing between different segmentsbetween different segments3.3

45、 3.3 转移地址的寻址方式转移地址的寻址方式段间间接寻址是指转移目的地址(段间间接寻址是指转移目的地址(3232位地址)保存在存储位地址)保存在存储单元中,转移在不同的段之间完成,在指令中指出存储单单元中,转移在不同的段之间完成,在指令中指出存储单元的偏移地址,可以采用以上介绍的元的偏移地址,可以采用以上介绍的5 5种存储器寻址方式。种存储器寻址方式。存储单元必须是双字型变量,第一个字用于存放目的地址存储单元必须是双字型变量,第一个字用于存放目的地址的段内偏移地址,第二个字用于存放目的地址的段地址。的段内偏移地址,第二个字用于存放目的地址的段地址。例如:例如:JMP VAR3JMP VAR3

46、;程序转移的目的地址为双字型变量;程序转移的目的地址为双字型变量 VAR3 VAR3的内容的内容JMP VAR1BXJMP VAR1BX;目的地址保存在存储器,其有效目的地址保存在存储器,其有效 地址为(地址为(BXBX)OFFSET VAR3OFFSET VAR3 存储器存储器转移转移OFFSETOFFSETIPIP转移转移SEGSEG地址地址CSCS低字节低字节高字节高字节低字节低字节高字节高字节存放转移地址的首址存放转移地址的首址3.3 3.3 转移地址的寻址方式转移地址的寻址方式如如:JMP DWORD PTR BXDI:JMP DWORD PTR BXDI若若(DS)=3000H(D

47、S)=3000H,(BX)=1000H(BX)=1000H,(DI)=2000H,(DI)=2000H,则:则:IPIPCSCS 33000H33000H82000H82000H80H80H目的地址目的地址20H20H00H00H05H05H00H00H DS:DS:3 0 0 0 3 0 0 0 BX:BX:1 0 0 0 1 0 0 0DI:DI:2 0 0 0 2 0 0 0 3 3 0 0 0 H3 3 0 0 0 H+CS:CS:8 0 0 0 8 0 0 0IP:IP:2 0 0 0 2 0 0 0 8 2 0 0 0 H8 2 0 0 0 H+3.3 3.3 转移地址的寻址方式转移地址的寻址方式3.3 3.3 转移地址的寻址方式转移地址的寻址方式综上所述,转移地址的综上所述,转移地址的4 4种寻址方式也可以种寻址方式也可以从指令形式加以区分,即:从指令形式加以区分,即:作业指出第3题(1)(2)(3)(6)(11)(13)源操作数的寻址方式第5题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com