微型计算机原理及接口技术第3章-8086-8088指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微型计算机原理及接口技术第3章-8086-8088指令系统课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 接口 技术 8086 8088 指令系统 课件
- 资源描述:
-
1、标号:指令助记符操作数;注释,标号是给该指令所在地址取的名字,必须后跟冒号标号是给该指令所在地址取的名字,必须后跟冒号“:”,它可以缺省,是可供选择的标识符,它可以缺省,是可供选择的标识符 对象:对象:目的操作数、源操作数目的操作数、源操作数立即数寻址立即数寻址寄存器寻址寄存器寻址 直接寻址直接寻址 寄存器间接寻址寄存器间接寻址 变址寻址变址寻址 基址寻址基址寻址 基址基址-变址寻址变址寻址 如如:MOVAL,05H MOVAX,3100H 注意注意:v立即数只能作为源操作数立即数只能作为源操作数 v立即数可以为立即数可以为8位,也可以为位,也可以为16为;规定为;规定立即数只能是立即数只能是
2、整数整数,不能是小数、变量,不能是小数、变量或者其他类型的数据或者其他类型的数据 如如:MOV SS,AXROL AH,1 16位位操作数:操作数:寄存器可以是寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP 8位位操作数:操作数:寄存器可以是寄存器可以是AH、AL、BH、BL、CH、CL、DH、DL 如如:MOV AX,1064H 注意注意:采用直接寻址方式时,采用直接寻址方式时,如果指令前面没如果指令前面没有用前缀指明操作数在哪一段,则默认为段寄有用前缀指明操作数在哪一段,则默认为段寄存器是数据段寄存器存器是数据段寄存器DS 如果要对其它段寄存器所指出的存储区进行如果要对其它段寄
3、存器所指出的存储区进行直接寻址,则本条指令前必须用前缀指出段寄直接寻址,则本条指令前必须用前缀指出段寄存器名存器名 如如:CS:MOV BX,3200H EA=BXBPSIDI注注:如果指令前面没有用前缀指明具体的段寄存器,:如果指令前面没有用前缀指明具体的段寄存器,则寻址时默认的段寄存器通常为则寻址时默认的段寄存器通常为DS。如果寄存器为。如果寄存器为BP时,则默认的段寄存器为时,则默认的段寄存器为SS 如如:MOV BX,SI MOV BP,AL 若:若:(DS)=3000H,(SS)2000H,(SI)=2000H,(BP)=1000H,(AL)=64H EA=SIDI+8位位移量位位移
4、量16位位移量位位移量 如:如:MOV SI+10H,AX 若若(DS)=3000H,(SI)=2000H,(AX)=4050HEA=BXBP+8位位移量位位移量16位位移量位位移量 如:如:MOV CX,COUNTBX MOV BLOCKBP,AX 若若(DS)=3000H,(BX)=1000H,COUNT=1050H EA=BXBPSIDI8位位移量位位移量16位位移量位位移量 如如:MOV AH,COUNTBXDI若若 (DS)=4000H,(BX)=1000H,(DI)=1500H,COUNT=1234H 注注:只要用上只要用上BP寄存器,那么默认的段寄存器就是寄存器,那么默认的段寄存
5、器就是SS;在其它情况下,默认的段寄存器均为在其它情况下,默认的段寄存器均为DS。如果操作数不。如果操作数不在默认段,则要用前缀指出相应的段寄存器名在默认段,则要用前缀指出相应的段寄存器名 允许带一个允许带一个8位或位或16位的位移量位的位移量相对的基址加变址相对的基址加变址寻址寻址 如如:MOV AX,BX+SI+0050H 用于堆栈中数组用于堆栈中数组(1)最基本的传送指令)最基本的传送指令 MOV MOVdest,src;(dest)(src)(2)堆栈操作指令)堆栈操作指令PUSH、POP 在执行在执行PUSH指令时,首先,堆栈指示器指令时,首先,堆栈指示器SP自动减自动减2;然后,将
6、一个字以源操作数传送至栈顶然后,将一个字以源操作数传送至栈顶 POP指令的执行过程正好与指令的执行过程正好与PUSH指令相反,它把指令相反,它把由由SP指出的当前堆栈段的栈顶的一个操作数(一个指出的当前堆栈段的栈顶的一个操作数(一个字),传送到目的操作数中,然后,字),传送到目的操作数中,然后,SP自动加自动加2,指向新的栈顶指向新的栈顶 POP指令中的目的操作数可以是指令中的目的操作数可以是除代码段寄存器除代码段寄存器CS之外之外的其它寄存器和存储器的其它寄存器和存储器 例例3-2:将:将16位通用寄存器位通用寄存器CX的内容压入堆栈,然后,弹出栈的内容压入堆栈,然后,弹出栈顶至顶至CX中,
7、已知:(中,已知:(SS)0200H,(,(SP)0008H,(CX)12FAH(3)交换指令)交换指令XCHG如:如:XCHG AL,BL;AL和和BL之间进行字节交换之间进行字节交换XCHG BX,CX;BX和和CX之间进行字交换之间进行字交换XCHG 2530H,CX ;CX中的内容和中的内容和2530H、2531H两单元的内容交换两单元的内容交换(4)换码指令()换码指令(也称查表指令也称查表指令)XLAT+BXALBX+ALBX+0BX+1注:注:XLAT指令就指令就是通过是通过查表方式查表方式来来完成换码功能的完成换码功能的 在执行该指令在执行该指令之前,必须建立好之前,必须建立好
8、一张表,该表的最一张表,该表的最大容量为大容量为256字节字节 如如:假设数据表存放在偏移地址为:假设数据表存放在偏移地址为2000H开始的内存中,开始的内存中,取出数据序号取出数据序号“3”所对应的表中某存储单元中的数送所对应的表中某存储单元中的数送到到AL中去,用如下几条指令即可完成:中去,用如下几条指令即可完成:MOVBX,2000H ;BX隐含做表首地址隐含做表首地址MOVAL,3 ;结果送;结果送ALXLAT功能功能:用来完成累加器(用来完成累加器(AX/AL)与)与I/O端口之间的数据传送端口之间的数据传送注:注:端口地址大于端口地址大于255,必须用必须用DX寄存器做间接寄存器做
9、间接寻址寻址 16位端口地址设置在位端口地址设置在偶数地址号上偶数地址号上 指令格式指令格式:IN acc,port OUTport,acc(1)取有效地址指令)取有效地址指令LEA功能功能:用于传送地址码的指令,可用来传送操作数用于传送地址码的指令,可用来传送操作数段地址段地址偏移地址偏移地址要求要求:源操作数必须为内存单元地址,目的操作数必须为一源操作数必须为内存单元地址,目的操作数必须为一个个16位的通用寄存器位的通用寄存器 如如:LEAAX,2728H LEABX,BP+SI LEASP,0482H用途用途:常用来使一常用来使一个寄存器作为地个寄存器作为地址指针址指针(2)将地址指针装
10、到)将地址指针装到DS和另一个寄存器的指令和另一个寄存器的指令LDS功能功能:将某操作数的四个连续字节中的地址指针(其中将某操作数的四个连续字节中的地址指针(其中包括一个段地址和一个偏移量)传送到两个目的寄存包括一个段地址和一个偏移量)传送到两个目的寄存器,其中,地址指针的器,其中,地址指针的后两个字节后两个字节(段地址)一定送(段地址)一定送到到DS中中 如如:LDSDI,2130H (3)将地址指针装到)将地址指针装到ES和另一个寄存器的指令和另一个寄存器的指令LES指令格式指令格式:LDSreg16,mem32(1)读取标志指令)读取标志指令LAHF功能功能:将标志寄存器中的将标志寄存器
11、中的低低8位传送到位传送到AH中中 FLAGOF DF IF TF SF ZFPFCFAFAHD7D6D4D2D0(2)设置标志指令)设置标志指令SAHF功能功能:将将AH寄存器的相应位传送到标志寄存器的低寄存器的相应位传送到标志寄存器的低8位位(3)对标志寄存器的压入堆栈指令和弹出堆栈)对标志寄存器的压入堆栈指令和弹出堆栈指令指令PUSHF、POPFPOPF指令:从堆栈中弹出一个字送到指令:从堆栈中弹出一个字送到FR中,同时堆栈中,同时堆栈指针指针SP的值加的值加2 用途:用途:用在子程序和中断处理程序的首尾,起保存主程序用在子程序和中断处理程序的首尾,起保存主程序标志和恢复主程序标志的作用
12、标志和恢复主程序标志的作用(1)不带进位位的加法指令)不带进位位的加法指令ADD功能功能:用来执行两个字或两个字节的相加操作,结果放在用来执行两个字或两个字节的相加操作,结果放在原来存放目的操作数的地方,不考虑低位的进位原来存放目的操作数的地方,不考虑低位的进位 影响标志位影响标志位:CF、PF、AF、ZF、SF、OF指令格式指令格式:ADDdest,src(2)带进位位的加法指令)带进位位的加法指令ADC功能功能:用来执行两个字或两个字节与进位标志位用来执行两个字或两个字节与进位标志位CF的值相的值相加操作,结果放在原来存放目的操作数的地方加操作,结果放在原来存放目的操作数的地方影响标志位影
13、响标志位:CF、PF、AF、ZF、SF、OF用途用途:用在多字节加法运算中:用在多字节加法运算中指令格式指令格式:ADCdest,src 程序程序:CLCMOVSI,2000HMOV AX,SIMOV DI,3000HADDAX,DIMOVSI,AXMOVAX,SI+2ADCAX,DI+2MOVSI+2,AX(3)增量指令)增量指令INC功能功能:将操作数的内容加将操作数的内容加1,送回该操作数,送回该操作数影响标志位影响标志位:PF、AF、ZF、SF、OF用途用途:用在循环程序中修改指针和循环次数:用在循环程序中修改指针和循环次数指令格式指令格式:INC dest(4)加法的)加法的ASCI
14、I码调整指令码调整指令AAA功能功能:把:把AL中的和调整到中的和调整到非压缩非压缩BCD码格式码格式 AL AH+调整产生的进位值调整产生的进位值 AH影响标志位影响标志位:CF=1,AF用途用途:适用于数字:适用于数字ASC码的调整;也适用于一般的非压码的调整;也适用于一般的非压缩缩BCD码的十进制调整码的十进制调整(5)加法的十进制调整指令)加法的十进制调整指令DAA功能功能:把:把AL中的和调整到中的和调整到压缩压缩BCD码格式码格式 AL 影响标志位影响标志位:CF、PF、AF、ZF、SF注:注:DAA通常跟在通常跟在ADD和和ADC指令之指令之后使用后使用 只能对只能对AL中的中的
15、运算结果进行运算结果进行BCD码调整码调整 例例:设:设AX=0805H,BL=39H执行执行 ADD AL,BL AAA运行运行结果结果:AX=0904H,AF=1,且,且CF=1(1)不带借位位的减法指令)不带借位位的减法指令SUB功能功能:用来执行两个字或两个字节的相减操作,结果放在用来执行两个字或两个字节的相减操作,结果放在原来存放目的操作数的地方,不考虑借位原来存放目的操作数的地方,不考虑借位 影响标志位影响标志位:CF、PF、AF、ZF、SF、OF指令格式指令格式:SUB dest,src(2)带借位位的减法指令)带借位位的减法指令SBB功能功能:用来执行两个字或两个字节相减,再减
展开阅读全文