微原-第3章2.ppt
- 文档编号:2733129
- 上传时间:2022-11-10
- 格式:PPT
- 页数:63
- 大小:402KB
微原-第3章2.ppt
《微原-第3章2.ppt》由会员分享,可在线阅读,更多相关《微原-第3章2.ppt(63页珍藏版)》请在冰豆网上搜索。
本教案内容本教案内容第第3章章8086CPU指令系统指令系统1.汇编语言指令汇编语言指令2.8086指令分类指令分类3.数据与转移地址的数据与转移地址的寻址方式寻址方式4.数据传送类指令数据传送类指令5.算术运算类指令算术运算类指令6.逻辑运算类指令逻辑运算类指令7.移位类指令移位类指令8.标志位操作指令标志位操作指令9.转移指令转移指令10.循环控制指令循环控制指令11.子程序调用返回子程序调用返回指令指令12.中断调用返回指中断调用返回指令令13.字符串操作指令字符串操作指令14.I/O输入输出指令输入输出指令15.其它指令其它指令16.宏指令宏指令3.280863.28086指令分类指令分类指令系统指令系统是指是指CPUCPU能完成的所有能完成的所有指令的集合,它是在指令的集合,它是在CPUCPU设计时就确定了的。
设计时就确定了的。
所以,对不同的所以,对不同的CPUCPU,其指令系统中所包含其指令系统中所包含的具体指令将是各不相同的。
但的具体指令将是各不相同的。
但8088/80868088/8086CPUCPU的指令系统是完全一样的。
的指令系统是完全一样的。
8088/8086CPU8088/8086CPU的的指令系统可分成下面指令系统可分成下面1313类:
类:
(11)数据传送指令;)数据传送指令;(22)算术运算指令;)算术运算指令;(33)逻辑运算指令;)逻辑运算指令;(44)移位指令;)移位指令;3.280863.28086指令分类指令分类(55)标志位操作指令;)标志位操作指令;(66)转移指令)转移指令(77)循环控制指令;)循环控制指令;(88)子程序调用和返回指令;)子程序调用和返回指令;(99)中断调用和返回指令;)中断调用和返回指令;(1010)字符串操作指令;)字符串操作指令;3.280863.28086指令分类指令分类(1111)输入、输出指令;)输入、输出指令;(1212)其它指令)其它指令(1313)宏指令)宏指令3.280863.28086指令分类指令分类为了书写指令方便,这里先简要介绍本书要用为了书写指令方便,这里先简要介绍本书要用到的各种符号,如表到的各种符号,如表3.23.2所示。
所示。
3.280863.28086指令分类指令分类表3.2符号及含义符符号号英文原文英文原文含含义OPRoperands表示一个操作数表示一个操作数SRCSource表示源操作数表示源操作数DSTDestination表示目的操作数表示目的操作数REGRegister表示一个寄存器表示一个寄存器REGnRegisterwithnbits表示一个表示一个n位寄存器位寄存器MEMMEMory表示一个存表示一个存储单元元CNTCounter表示表示计数数值LABELLabel标号或号或过程名程名PORT8Portaddresswith8bits8位端口地址位端口地址DISPnDisplacewithnbits表示表示n位的偏移量位的偏移量EAEffectiveAddress表示有效地址,即段内偏移地址表示有效地址,即段内偏移地址SEGSegmentAddress表示段地址表示段地址IDATAImdata表示立即数表示立即数Moving表示数据的表示数据的传送送Exchange表示数据的交表示数据的交换()表示取表示取的的内内容容And表示表示进行行逻辑与操作与操作Or表示表示进行行逻辑或操作或操作Xor表示表示进行行逻辑异或操作异或操作Not取取X的反的反码(即按位取反)(即按位取反)3.33.3数据与转移地址的寻址方式数据与转移地址的寻址方式在指令中,用于说明操作数所在地址的方在指令中,用于说明操作数所在地址的方法就称为法就称为寻址方式寻址方式。
8086CPU8086CPU指令系统的寻址方式分为两类:
指令系统的寻址方式分为两类:
1.1.数据的寻址方式数据的寻址方式:
寻找指令操作所需数:
寻找指令操作所需数据的方法;据的方法;2.2.转移地址的寻址方式转移地址的寻址方式:
寻找转移指令所:
寻找转移指令所需的程序地址。
需的程序地址。
下面讲关于数据的寻址方式时,均以数下面讲关于数据的寻址方式时,均以数据传送指令据传送指令MOVMOV为例讲解。
为例讲解。
MOVMOV指令格式如下:
指令格式如下:
MOVDST,SRCMOVDST,SRC目的操作数目的操作数源操作数源操作数助记符助记符指令完成的功能指令完成的功能:
(DSTDST)(SRC)(SRC)3.33.3数据寻址方式数据寻址方式数据的寻址方式(共数据的寻址方式(共88种):
种):
l立即寻址立即寻址(ImmediateAddressing)(ImmediateAddressing)l寄存器寻址寄存器寻址(RegisterAddressing)(RegisterAddressing)l存储器寻址存储器寻址(MemoryAddressingMemoryAddressing)(55种):
直种):
直接寻址、寄存器间接寻址、寄存器相对寻址、接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和基址变址且相对寻址基址变址寻址和基址变址且相对寻址l隐含寻址隐含寻址(HiddenAddressing)(HiddenAddressing)数据的寻址方式就是告诉数据的寻址方式就是告诉CPUCPU存存/取数据的地方。
取数据的地方。
3.33.3数据寻址方式数据寻址方式1.1.立即寻址立即寻址操作数直接存放在指令中,紧跟在操作码之操作数直接存放在指令中,紧跟在操作码之后,作为指令的一部分,存放在代码段里,这种后,作为指令的一部分,存放在代码段里,这种操作数称为立即数。
操作数称为立即数。
立即寻址主要用来给立即寻址主要用来给REGREG或或MM赋初值。
赋初值。
注意:
注意:
只能用于源操作数字段,不能用于目的操只能用于源操作数字段,不能用于目的操作数字段。
作数字段。
如:
如:
MOV12H,AL(语法错误语法错误)3.33.3数据寻址方式数据寻址方式AHAHALALAXAXCSCS段段操作码操作码存储器存储器例:
例:
MOVAXMOVAX,1234H1234HB8HB8H34H34H12H12H(AX)=1234H(AX)=1234H3.33.3数据寻址方式数据寻址方式2.2.寄存器寻址寄存器寻址数据放在指令规定的寄存器中,对数据放在指令规定的寄存器中,对1616位数据,位数据,REGREG可以是可以是AXAX、BXBX、CXCX、DXDX、SISI、DIDI、SPSP、BPBP以及以及段寄存器段寄存器,而对于而对于88位数据,位数据,REGREG可以是可以是AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DLDL。
在程序设计中在程序设计中,一般存放数据时,寄存器选一般存放数据时,寄存器选择通用寄存器,而存放结果时尽可能的使用择通用寄存器,而存放结果时尽可能的使用AXAX累累加器,因为使用加器,因为使用AXAX累加器要比用其它寄存器存放累加器要比用其它寄存器存放结果,指令执行时间要短一些。
结果,指令执行时间要短一些。
寄存器寻址既可以作寄存器寻址既可以作DST,DST,也可以作也可以作SRCSRC。
3.33.3数据寻址方式数据寻址方式例:
例:
MOVAX,BXMOVAX,BXAXAXBXBX若(若(AXAX)=1234H,(BX)=5678H=1234H,(BX)=5678H,则,则CPUCPU执行上条执行上条指令后,(指令后,(AXAX)=5678H=5678H,而(而(BXBX)不变。
不变。
又如:
又如:
MOVCX,DLMOVCX,DL(语法错误语法错误)错误原因错误原因:
类型不一致。
类型不一致。
3.33.3数据寻址方式数据寻址方式这类寻址方式,操作数在存储器中,而这类寻址方式,操作数在存储器中,而存储器单元的地址由以下存储器单元的地址由以下五种五种寻址方式的任寻址方式的任何一种均可以找到何一种均可以找到。
但在指令中给出的只是。
但在指令中给出的只是要寻找的操作数所在单元的段内偏移地址,要寻找的操作数所在单元的段内偏移地址,而操作数所在单元的段地址除非指令中用段而操作数所在单元的段地址除非指令中用段前缀特别指明,否则是默认的前缀特别指明,否则是默认的DSDS。
3.3.存储器寻址存储器寻址3.33.3数据寻址方式数据寻址方式指令中直接给出了要寻找操作数所在单元的指令中直接给出了要寻找操作数所在单元的1616位偏移地址。
位偏移地址。
操作数所在单元的物理地址操作数所在单元的物理地址:
PA(段寄存器段寄存器)16+指令中给出的偏移地址指令中给出的偏移地址直接寻址(直接寻址(DirectAddressingDirectAddressing)指令中直接给出的操作数所在单元的指令中直接给出的操作数所在单元的1616位偏移位偏移地址地址默认在数据段。
也可以通过增加段前缀来改变默认在数据段。
也可以通过增加段前缀来改变操作数所在的段地址。
操作数所在的段地址。
3.33.3数据寻址方式数据寻址方式AXAXCSCS段段操作码操作码例例11:
MOVAX,2000HMOVAX,2000H若若DSDS为为3000H3000H,则:
则:
AHAHALAL32000H32000H32001H32001H30000H30000H+DSDS存储器存储器数据段数据段20H20H00H00HA1HA1H2000H2000HPA=32000HPA=32000H3.33.3数据寻址方式数据寻址方式CSCS段段操作码操作码例例22:
MOV2000H,ALMOV2000H,AL若若DSDS为为3000H3000H,则:
则:
ALAL32000H32000H30000H30000H+DSDS存储器存储器数据段数据段20H20H00H00H2000H2000HPA=32000HPA=32000H3.33.3数据寻址方式数据寻址方式CSCS段段操作码操作码例例33:
MOVES:
2000H,ALMOVES:
2000H,AL若若ESES为为2050H2050H,则:
则:
ALAL22500H22500H20500H20500H+ESES存储器存储器附加数据段附加数据段20H20H00H00H2000H2000HPA=22500HPA=22500H前缀码前缀码3.33.3数据寻址方式数据寻址方式在实际的汇编语言程序设计中,如果程在实际的汇编语言程序设计中,如果程序比较复杂,而用到的存放数据的单元又很序比较复杂,而用到的存放数据的单元又很多,那么在直接寻址方式当中,用户就要记多,那么在直接寻址方式当中,用户就要记住存放数据的每个单元的地址,同时还要记住存放数据的每个单元的地址,同时还要记住该地址单元存放的数据的意义,这样对设住该地址单元存放的数据的意义,这样对设计程序带来了很大的困难。
所以在实际的汇计程序带来了很大的困难。
所以在实际的汇编语言程序设计中,常常采用给存放数据的编语言程序设计中,常常采用给存放数据的单元,定义一个符号地址名,即单元,定义一个符号地址名,即变量名变量名/变变量量。
3.33.3数据寻址方式数据寻址方式变量名一但定义了,就具有了:
变量名一但定义了,就具有了:
该单元的段地址该单元的段地址该单元的偏移地址该单元的偏移地址类型类型大小大小长度长度五个属性五个属性这样,在程序设计中就可以用这个变量名这样,在程序设计中就可以用这个变量名代替原来的存储器单元的实际地址。
代替原来的存储器单元的实际地址。
3.33.3数据寻址方式数据寻址方式例例44:
若:
若(DS)=15
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微原-第3章2.ppt
![提示](https://static.bdocx.com/images/bang_tan.gif)