




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,微型计算机原理及应用,李建俊电子工业出版社,2,1.了解比较类及循环类指令的作用2.掌握比较类及循环类指令的格式及使用3.掌握条件转换指令的使用4.学会应用,教学目标及要求,3,教学重点及难点,重点、难点:比较类指令、条件转移指令、循环类指令,4,教学方法,多媒体演示提问式,启发式,教学时数2,5,复习,逻辑运算类指令AND逻辑与指令OR逻辑或指令XOR逻辑异或指令NOT逻辑非指令TEST测试指令,6,程序,有两个数无符号数23,45,比较大小,大数放到AL寄存器中,小数放到Ah寄存器中。,MOVBL,23MOVCL,45CMPBL,CLJBNEXTXchGBL,CLNEXT:MOVAh,BLMOVAL,CL,7,CMP(比较指令)P92,格式:CMPOPR1,OPR2OPR1是目的操作数;OPR2是源操作数执行操作:(OPR1OPR2)注意:1.该指令与SUB指令一样执行减法操作,但有一点不同,该指令不保存结果(差),即指令执行后,OPR1和OPR2上操作数的内容不会改变。2.执行这条指令的主要目的根据操作的结果设置状态标志位。,8,比较指令(CMP)说明,目的操作数:寄存器、存储器源操作数:寄存器、存储器、立即数CMP指令可以对字节或字进行比较;比较指令不能直接进行存储器与存储器操作数的比较,这一类比较可以借助于寄存器。CMP指令后,通常都会紧跟一条条件转移指令,条件转移指令会根据比较指令设置的状态标志程序产生分支。,9,条件转移指令概述,功能:条件转移指令都是以某些标志位的状态作为依据:若满足指令所规定的条件,则程序转移;若条件不满足,就不转移,顺序执行下条指令。例如:CMPAX,100JEL1:相等时(ZF=1)转L1标号处条件转移指令的格式:操作码标号(NEAR属性:标号必须在同一个段内)如果实现段间转移,用JMP或CALL指令来实现,10,条件转移指令概述,标号所有条件转移指令的目标操作数都是短标号。即转向的目标地址距转移指令的下一条指令的第一个字节的相对位移量必须在128到127(一个字节所能表示的)范围之内。若条件满足,则将这个相对位移量加到指令指针寄存器IP上以实现其转移。所有条件转移指令对状态标志均无影响。,11,条件转移指令P118,判断两个数大小的条件转移指令测试单个标志的条件转移指令,12,判断两个数大小的条件转移指令,说明:这类条件转移指令一般和比较指令CMP连用在CMP指令之后用测试比较两数后产生的状态标志决定是否转移。例如:8位数11111111比00000000大还是小试两数大小时应特别注意:是有符号数,还是无符号数。,13,判断两个数大小的条件转移指令,总结:对于判断无符号数大小的条件转移指令,用“高于”和“低于”表示两个数的关系。对于判断带符号数大小的条件转移指令,用“大于”和“小于”表示两个数的关系。,14,判断无符号数大小的条件转移指令,JA/JNBEJA指令(高于转移)JNBE指令(不低于等于转移)这是一条转移指令的两种助记符。当两个无符号数进行比较时,如果AB成立,则转移;(AB),没有借位则CF=0;A不等于B,则ZF=0;,15,判断无符号数大小的条件转移指令,JNA/JBEJNA指令(不高于转移)JBE指令(低于/等于转移)这是一条转移指令的两种助记符。当两个无符号数进行比较时,如果AB成立,则转移;(AB),必有借位,则CF=1;A等于B,则ZF=1;,16,判断无符号数大小的条件转移指令,JAE/JNBJAE指令(高于/等于转移)JNB指令(不低于转移)JNAE/JBJNAE指令(不高于等于转移)JB指令(低于转移),17,实例,1.在BUF为首地址的内在单元中,存放两个数据34,78,求出最大值,存放在RESUlE的内存单元中.2.在BUF为首地址的内在单元中,存放三个数据34,78,11,求出最大值,存放在RESUlE的内存单元中.3.在BUF为首地址的内在单元中,存放五个数据34,78,11,98,2求出最大值,存放在RESUlE的内存单元中.,18,判断有符号数大小的条件转移指令,19,判断有符号数大小的条件转移指令,20,测试单个标志的条件转移指令,1.测试ZF零标志,1)JE/JZ指令JE(相等时转移)JZ(等于0时转移),这是当ZF1时转移到目标地址的条件转移指令的两种助记符。,这条指令既适用于判断无符号数的相等,又适用于判断有符号数的相等。,21,测试单个标志的条件转移指令,1.测试ZF零标志,2)JNE/JNZ指令JNE(不相等时转移)JNZ(不等于0时转移),这是当ZF0时转移到目标地址的条件转移指令的两种助记符。,这条指令既适用于判断无符号数的相等,又适用于判断有符号数的相等。,22,测试单个标志的条件转移指令,测试CF进位标志JC/JNC指令1)JC当满足CF=1时,转移到目标地址。2)JNC当满足CF=0时,转移到目标地址。3.测试SF符号标志JS/JNS指令1)JS当满足SF=1时,转移到目标地址。2)JNS当满足SF=0时,转移到目标地址。,23,测试单个标志的条件转移指令,测试PF奇偶标志1)JP/JPE(为偶数)当满足PF=1时,转移到目标地址。2)JNP/JPO(为奇数)当满足PF=0时,转移到目标地址。5.测试OF溢出标志1)JO(溢出转移)当满足OF=1时,转移到目标地址。2)JNO(末溢出转移)当满足OF=0时,转移到目标地址。,24,实例,1.求出1-10之间的偶数,2.在BUF为首地址的内在单元中,存放若干个8位的无符号数,统计数组中大于0的数的个数,并将结果存入RESUlT字节单元中.,25,循环控制指令P121,LOOPLOOPZ(LOOPE)LOOPNZ(LOOPNE),26,LOOP循环控制指令,格式:LOOP标号(标号是短标号,范围(-128-127))执行操作:CPU执行LOOP标号时,进行两步操作:1)(CX)1CX2)判断CX中的值,不为0则继续执行循环体,若为0,则退出循环体顺序往下执行。注意:要执行LOOP循环指令,则必须把循环次数预先送入CX中,LOOP为循环体的最后一个语句。,27,程序,MOVAX,2MOVCX,3L1:ADDAX,AXLOOPL1MOVAH,4CHINT21H,退出循环的条件是CX=0,28,总结,MOVAX,2MOVCX,3L1:ADDAX,AXLOOPL1MOVAH,4CHINT21H,CX和LOOP指令相配合实现循环功能的程序框架如下:MOVCX,循环次数S:循环体LOOPS,29,LOOPZ(LOOPE)循环控制指令,格式:LOOPZ标号(标号是短标号,范围(-128-127))执行操作:CPU执行LOOPZ标号时,进行两步操作:1)(CX)1CX2)判断CX中的值,(CX!=0且ZF=1(结果为0),则继续执行循环体;(CX=0|CX!=0且ZF=0(结果不为0)则退出循环体,顺序往下执行。注意:1.要执行LOOPZ循环指令,则必须把循环次数预先送入CX中,LOOPZ为循环体的最后一个语句,30,程序,MOVCX,5MOVSI,-1MOVAL,61HLEABX,D1NEXT:INCSICMPAL,SI+BXLOOPZNEXTMOVAH,4CHINT21H,DATASEGMENTD1DBAACAADATAENDS,CX!=0且ZF=1继续执行循环体,31,LOOPNZ(LOOPNE)循环控制指令,格式:LOOPNZ标号(标号是短标号,范围(-128-127))执行操作:CPU执行LOOPNZ标号时,进行两步操作:1)(CX)1CX2)判断CX中的值,(CX!=0且ZF=0(结果不为0),则继续执行循环体;(CX=0|CX!=0且ZF=1(结果为0)则退出循环体,顺序往下执行。注意:1.要执行LOOPNZ循环指令,则必须把循环次数预先送入CX中,LOOPNZ为循环体的最后一个语句,32,程序,DATASEGMENTD1DBABC_DEDATAENDS,MOVCX,6MOVSI,-1MOVAL,20HLEABX,D1NEXT:INCSICMPAL,SI+BXLOOPNZNEXTMOVAH,4CHINT21H,CX!=0且ZF=0继续执行循环体,33,DATASEGMENTD1DBABC_DEDATAENDS,MOVCX,6MOVSI,-1MOVAL,20HLEABX,D1NEXT:INCSICMPAL,SI+BXLOOPNZNEXTMOVAH,4CHINT21H,程序执行过程,有两种可能性:1.在查找中找到“空格”字符,此时ZF=1,则提前结束循环。2.如一直查找到字符串结束还未找到“空格”字符,此时CX=0,结束循环。,34,循环控制指令,LOOPLOOPZ(LOOPE)LOOPNZ(LOOPNE),35,程序,MOVAX,0JMPL1ADDAX,1L1:INCAX,36,JMP无条件转移指令P116,无条件转移指令的格式:JMP标号无条件转移指令跳转到指定的位置去执行程序,因此指令中必须给出转移位置的地址,即给出标号。分类段内直接转移,段内间接转移段间直接转移,段间间接转移,37,段内直接转移,无条件转移指令的格式:JMPNEAR-LABEl;(IP)+DISP(16位)IPNEAR-LABEl是一个近标号,相对位移量DISP范围在-32768-+32767之间.该标号在本段内使用.实例JMPNEXTANDAL,7FHNEXT:XORAL,7FH,38,段内直接短转移,无条件转移指令的格式:JMPSHORT-LABEl;(IP)+DISP(8位)IPSHORT-LABEl是一个短标号,相对位移量DISP的范围是在-128-+127之间.该标号在本段内使用.实例JMPSHORTNEXTANDAL,7FHNEXT:XORAL,7FH,39,段内间接转移,无条件转移指令的格式:JMPREG16/MEM16;(IP)+DISP(16位)IP实例JMPAXJMPSIJMPBXJMPWORDPTRBPDI,40,段间直接转移,无条件转移指令的格式:JMPFAR-LABEl;OFFSETIP标号是一个远标号,该标号在另一个代码段内,41,段间间接转移,无条件转移指令的格式:JMPMEM32;(MEM32)IP;(MEM32+2)CS注意:段间的间接转移指令的操作数不能是寄存器,42,处理器控制指令,这一类指令可以控制CPU中的状态标志,以及使CPU暂停,等待等操作.分为三类标志位操作指令1.CLC清进位标志.0CF2.STC置进位标志.1CF3.CLD清方向标志.0DF4.STD置方向标志.1DF5.CLI清中断允许标志.0IF6.STI置中断允许标志1IF,43,常用的几种系统功能调用,把PlEASEINPUTNUMBER字符串输出到显示器上,9号系统功能调用显示字符串MOVAH,09hINT21h,注意:把需要输出的串的地址送到DX寄存器。字符串必须以$为结束符,例题,44,例题,把PlEASEINPUTNUMBER字符串输出到显示器上,D1DBPlEASEINPUTNUMBER$,LEADX,D1MOVAH,09hINT21h,45,常用的几种系统功能调用,2号系统功能调用显示输出一个字符MOVDL,输出的字符MOVAH,02hINT21h,46,常用的几种系统功能调用,0A号系统功能调用从键盘输入数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内容营销实战指南
- 化工产品制造过程控制方案制定
- 小学语文新课标解读与教学心得分享
- 职业教育学生创新创业教育研究
- 汽车维修工岗位操作流程说明
- 中医美容理论与实践操作指南
- 幼教机构招生宣传策划方案
- 山东省2023年中考语文作文题目解析
- 煤质检测误差分析及数据处理方法
- 文明礼仪先进个人事迹材料范文
- 危险货物道路运输规则第4部分:运输包装使用要求(JTT617.4-2018)
- 2024年四川省成都市中考数学真题及答案解析
- 部队军事体能训练课件
- 狗猫鼠全文赏析课件
- 国有企业外部董事个人履职报告
- 船舶拆解资金管理办法
- 增值税发票培训知识课件
- 2025年对酒驾醉驾问题谈心谈话记录内容范文
- 【《以儿歌为载体的小班幼儿生活自理能力提升路径分析》11000字】
- 2025年《3~6岁儿童学习与发展指南》试题(+答案)
- 2025年秋招:中国银行笔试题库及答案
评论
0/150
提交评论