已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章指令系统,三峡大学,陈慈发07176394358hcf0415,1,2,8086CPU的指令格式,8086CPU的指令系统,3,8086CPU的寻址方式,指令系统,指令分类,数据传送指令算术运算指令逻辑运算与移位指令串操作指令控制转移指令处理机控制指令,逻辑运算指令(5条),实现与、或、非、异或、测试等逻辑运算操作数的搭配关系同算术运算除逻辑“非”指令不影响标志外,其他逻辑运算指令均影响标志SF、ZF和PF,而OF和CF一定被置0,AF不确定,1、逻辑“与”指令AND格式:ANDd,s功能:(d)(d)(s)说明:将目的操作数d与源操作数s按位相“与”结果送回d中,常用于使某些位清0,内存,立即数,AH,ALBH,BLCH,CLDH,DL,AX,BXCX,DXSI,DIBP,SP,例如:ANDAX,BXANDCL,SIANDBXDI-10H,WORDPTR80HANDCH,ALANDBX,1ANDBYTEPTR20H,20HANDAL,30HANDBYTEPTRDI,12H,OFCF0,其它标志位受影响d、s必须具有相同的字长ANDAX,BLd、s不能为段寄存器ANDDS,2000Hd不能是立即数AND10H,AX,【例】屏蔽AL的0,1两位。ANDAL,0FCH,【例】将AH的高4位清0。ANDAH,0FH,【例】将BX的低4位清0。ANDBX,0FFF0H,2、逻辑“或”指令OR格式:ORd,s功能:(d)(d)(s)说明:将目的操作数d与源操作数s按位相“或”结果送回d中,常用于使某些位置位(置1),内存,立即数,AH,ALBH,BLCH,CLDH,DL,AX,BXCX,DXSI,DIBP,SP,例如:ORAX,BXORCL,SIORBXDI-10H,WORDPTR80HORCH,ALORBX,1ORBYTEPTR20H,20HORAL,30HORBYTEPTRDI,12H,OFCF0,其它标志位受影响d、s必须具有相同的字长ORAX,BLd、s不能为段寄存器ORDS,2000Hd不能是立即数OR10H,AX,【例】将AL的0,1两位置1。ORAL,03H,【例】将AH的高4位置1。ORAH,0F0H,【例】将BX的低4位置1。ORBX,000FH,3、逻辑“异或”指令OR格式:ORd,s功能:(d)(d)(s)说明:将目的操作数d与源操作数s按位相“异或”结果送回d中,常用于使某些位取反,内存,立即数,AH,ALBH,BLCH,CLDH,DL,AX,BXCX,DXSI,DIBP,SP,例如:XORAX,BXXORCL,SIXORBXDI-10H,WORDPTR80HXORCH,ALXORBX,1XORBYTEPTR20H,20HXORAL,30HXORBYTEPTRDI,12H,OFCF0,其它标志位受影响d、s必须具有相同的字长XORAX,BLd、s不能为段寄存器XORDS,2000Hd不能是立即数XOR10H,AX,【例】对AL的0,1两位取反。XORAL,03H,【例】对CL的1,2,3,4,5位取反,其它位不变。XORCL,3EH,【例】置DX为0。XORDX,DX,例如:NOTAXNOTDHNOTSINOTBYTEPTRSI,不影响标志位d不能是段寄存器、立即数NOTDSNOT10H,5、测试指令TEST格式:TESTd,s功能:(d)(s)说明:将目的操作数d与源操作数s按位相“与”,只影响标志位不回送结果,常用于测试某些位是0或1,内存,立即数,AH,ALBH,BLCH,CLDH,DL,AX,BXCX,DXSI,DIBP,SP,例如:TESTAX,BXTESTCL,SITESTBXDI-10H,WORDPTR80HTESTCH,ALTESTBX,1TESTBYTEPTR20H,20HTESTAL,30HTESTBYTEPTRDI,12H,OFCF0,其它标志位受影响d、s必须具有相同的字长TESTAX,BLd、s不能为段寄存器TESTDS,2000Hd不能是立即数TEST10H,AX,【例】测试AL的最高位是0/1?TESTAL,80HJZXXX;是0则跳转(JNZXXX;是1则跳转),【例】测试DX的低4位是0/1?TESTDX,000FHJZXXX;是0则跳转(JNZXXX;是1则跳转),【例】测试BH的奇(偶)数位是0/1?TESTBH,0AAH(55H)JZXXX;是0则跳转(JNZXXX;是1则跳转),移位运算指令(8条),对8位或16位的通用寄存器或存储器内容进行移位,移位次数可以为1255若移位次数为1则可直接写在指令中,若次数为2255则不能直接写在指令中,必须先将次数放在寄存器CL中,指令中只能写CL,移位结束后CL的值不变影响标志OF、SF、ZF、PF、CF,但AF不确定。当移位次数为1时,若移位结果使最高位符号位发生变化,则溢出标志OF1,否则OF0;当移位次数超过1时,OF无效,6、逻辑左移指令SHL(SHiftLeft)格式:SHLd,count功能:逻辑左移说明:将目的操作数d左移count位,右边补0,左边入CF,例如:SHLAX,1MOVCL,4SHLDH,CL,逻辑左移1位相当于无符号数乘以2!,BX乘以2:SHLBX,1,BX乘以3:MOVAX,BXSHLBX,1ADDBX,AX,BX乘以4:MOVCL,2SHLBX,CL,BX乘以5:MOVAX,BXMOVCL,2SHLBX,CLADDBX,AX,BX乘以6:SHLBX,1MOVAX,BXSHLBX,1ADDBX,AX,BX乘以7:MOVAX,BXMOVCL,3SHLBX,CLSUBBX,AX,BX乘以8:MOVCL,3SHLBX,CLSUBBX,AX,BX乘以9:MOVAX,BXMOVCL,3SHLBX,CLADDBX,AX,BX乘以10:MOVAX,BXMOVCL,3SHLBX,CLSHLAX,1ADDBX,AX,7、逻辑右移指令SHR(SHiftRight)格式:SHRd,count功能:逻辑右移说明:将目的操作数d右移count位,左边补0,右边入CF,例如:SHRSI,1MOVCL,3SHRBYTEPTRBX,CL,逻辑右移1位相当于无符号数除以2!,8、算术左移指令SAL(Arithmetic)格式:SALd,count功能:同逻辑左移完全相同,例如:SALAX,1MOVCL,4SALDH,CL,9、算术右移指令SAR(Arithmetic)格式:SARd,count功能:算术右移说明:将操作数d的内容右移,左边不变,右边移入CF中,例如:SARDI,1MOVCL,3SARBP,CL,算术右移1位相当于有符号数除以2!,10、循环左移指令ROL(ROtate/ROundLeft)格式:ROLd,count功能:循环左移说明:将操作数d的内容左移,最高位循环移入最低位,同时移入CF,例如:ROLDI,1MOVCL,3ROLBYTEPTRSI,CL,11、循环右移指令ROR(ROtate/ROundRight)格式:RORd,count功能:循环右移说明:将操作数d的内容右移,最低位循环移入最高位,同时移入CF,例如:RORSI,1MOVCL,4RORBYTEPTRDI,CL,12、带进位循环左移指令RCL(ROtate/ROundCarryLeft)格式:RCLd,count功能:带进位循环左移说明:将操作数d的内容左移,最高位循环移入CF,而CF循环移入最低位,例如:RCLBH,1MOVCL,2RCLDX,CL,13、带进位循环右移指令RCR(ROtate/ROundCarryRight)格式:RCRd,count功能:带进位循环右移说明:将操作数d的内容左移,最低位循环移入CF,而CF循环移入最高位,例如:RCRBX,1MOVCL,4RCRWORDPTRDI,CL,串操作指令(5条),数据串是存储器中一块字节或字的存储区域,其长度可以是1字节64K字节串操作就是对数据串中每个元素所进行的操作,这种操作通常是组合操作,能完成几条指令的功能用作源操作数的串称为源串,源串默认放在数据段中(段地址在DS中),但可以段超越到其他段,源串的偏移地址指针必须放在SI中用作目的操作数的串称为目的串,目的串必须放在附加段中(段地址在ES中),目的串的偏移地址指针必须放在DI中串的长度(字节数或字数)必须放在CX中,串操作可以按字节操作(助记符末尾字母加B),也可以按字操作(助记符末尾字母加W)。按字节操作时,地址指针加或减1,按字操作时,地址指针加或减2若方向标志DF0,则按增址操作,地址指针加1或加2;若方向标志DF1,则按减址操作,地址指针减1或减28086共有5种基本的串操作指令,有的指令涉及到2个串,而有的只涉及到1个串有些串操作是在数据串与寄存器之间进行,则规定寄存器只能用累加器,字节操作时用AL,字操作时用AX串操作指令每次只处理一个元素的数据,为了能重复执行最多达64KB的串操作,8086还提供了3种重复前缀指令,使用这些指令可以使串操作指令重复执行由寄存器CX指定的次数除串比较和串搜索指令影响全部6个状态标志外,其它指令均不影响标志位,重复前缀(3个),(1)重复REP(REPeat)格式:REP串操作指令功能:使串操作指令重复执行CX指定的次数说明:若CX0则重复执行串指令,并置CXCX1,直到CX0为止。REP指令主要用于串传送和串写入指令前,例如:REPMOVSBREPMOVSWREPSTOSW,(2)相等则重复REPE/REPZ(REPeatwhenEqual/Zero)格式:REPE/REPZ串操作指令功能:若串操作指令执行结果相等,且CX指定次数未到,则重复执行串操作指令,直到结果不相等,或CX指定次数已到则停止说明:若ZF1且CX1CX0则重复执行串指令,直到ZF0或CX1CX0为止。REPE指令主要用于串比较和串搜索指令前,例如:REPECMPSBREPZSCASW,(3)不相等则重复REPNE/REPNZ(REPeatwhenNotEqual/Zero)格式:REPNE/REPNZ串操作指令功能:若串操作指令执行结果不相等,且CX指定次数未到,则重复执行串操作指令,直到结果相等,或CX指定次数已到则停止说明:若ZF0且CX1CX0则重复执行串指令,直到ZF1或CX1CX0为止。REPNE指令主要用于串比较和串搜索指令前,例如:REPNECMPSWREPNZSCASB,串操作指令(5条),14、串传送指令MOVSB/MOVSW(MOVeStringofByte/Word)格式:MOVSB/MOVSW功能:将源串指针SI所指单元的一个数据(字节或字)传送到目的串指针DI所指单元中,指针作相应变化,(1)ES:DIDS:SI(2)MOVSB(字节操作):(SI)(SI)1,(DI)(DI)1MOVSW(字操作):(SI)(SI)2,(DI)(DI)2(3)方向标志:DF=0时地址“”,DF=1时地址“”(4)使用重复前缀REP相配合,一次完成数据串的传送操作,程序段如下:LDSSI,源串首地址LESDI,目的串首地址MOVCX,串长度CLDREPMOVSB;将数据段中的整串数据传送到附加段中,执行REPMOVS之前,应先做好如下准备:(1)源串首地址(末地址)SI,置好DS的值(2)目的串首地址(末地址)DI,置好ES的值(3)串长度CX(4)设置方向标志(CLD使DF=0,STD使DF=1),15、串比较指令CMPSB/CMPSW(CoMPareStringofByte/Word)格式:CMPSB/CMPSW功能:将源串指针SI所指单元的一个数据(字节或字)与目的串指针DI所指单元的一个数据(字节或字)相减,但结果不回送,只影响标志位,指针作相应变化,(1)DS:SIES:DI,不保存结果,影响标志位同CMP指令(2)CMPSB(字节操作):(SI)(SI)1,(DI)(DI)1CMPSW(字操作):(SI)(SI)2,(DI)(DI)2(3)方向标志:DF=0时地址“”,DF=1时地址“”(4)使用重复前缀REPZ/REPE、REPNZ/REPNE相配合,16、串搜索指令SCASB/SCASW(SCAnStringofByte/Word)格式:SCASB/SCASW功能:将累加器(AL或AX)内容与目的串指针DI所指单元的一个数据(字节或字)相减,但结果不回送,只影响标志位,指针作相应变化,(1)AL(AX)ES:DI,不保存结果,影响标志位(2)SCASB(字节操作):(SI)(SI)1,(DI)(DI)1SCASW(字操作):(SI)(SI)2,(DI)(DI)2(3)方向标志:DF=0时地址“”,DF=1时地址“”(4)使用重复前缀REPZ/REPE、REPNZ/REPNE相配合,搜索数据串中与AL/AX相同/(不相同)的数据,17、串写入指令STOSB/STOSW(STOredatatoStringofByte/Word)格式:STOSB/STOSW功能:累加器(AL或AX)内容传送到目的串指针DI所指单元中,指针作相应变化,(1)ES:DIAL(AX),不影响标志位(2)STOSB(字节操作):(SI)(SI)1,(DI)(DI)1STOSW(字操作):(SI)(SI)2,(DI)(DI)2(3)方向标志:DF=0时地址“”,DF=1时地址“”(4)使用重复前缀REP相配合,用AL/AX填充(初始化)数据串中所有数据,18、串读出指令L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕节市民政局所属事业单位2025招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 杭州市市级机关文印中心招考2名工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 校园监控维修协议书
- 分店合同协议书模板
- 柴油代垫资合同范本
- 广东石龙镇下属事业单位招考11人易考易错模拟试题(共500题)试卷后附参考答案
- 果树购买协议书范本
- 出租危房免责协议书
- 出资分房协议书范本
- 山东2025年下半年金乡县招考事业单位易考易错模拟试题(共500题)试卷后附参考答案
- 2025年铝溶胶市场调查报告
- 广西壮族自治区柳州市柳州高级中学2026届高一化学第一学期期末学业质量监测模拟试题含解析
- 2026年长沙商贸旅游职业技术学院单招职业技能测试必刷测试卷及答案1套
- 亳州利辛县产业发展集团有限公司招聘笔试题库2025
- 2025天津外国语大学继续教育学院招聘劳务派遣人员笔试考试参考试题附答案解析
- (2025年)《计算机导论》期末考试试题模拟试题及答案
- 数字化种植管理
- 河南省青桐鸣大联考2025-2026学年高三上学期11月期中语文试题+答案
- 2025年大学《园林-园林植物栽培与养护》考试备考题库及答案解析
- 农商行劳务合同范本
- 铁路线路及站场课件 项目四 中间站
评论
0/150
提交评论