- 1、本文档共216页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例2.40:JO/JNO指令 ;计算X-Y; ;X和Y为存放于X单元和Y单元的16位操作数 ;若溢出,则转移到overflow处理 mov ax,X sub ax,Y jo overflow ... ;无溢出,结果正确 overflow: ... ;有溢出处理 例2.41:JP/JNP指令 ;设字符的ASCII码在AL寄存器中 ;将字符加上奇校验位 ;在字符ASCII码中为“1”的个数已为奇数时 ;则令其最高位为“0”;否则令最高位为“1” and al,7fh ;最高位置“0”,同时判断“1”的个数 jnp next ;个数已为奇数,则转向next or al,80h ;否则,最高位置“1” next: ... 例2.42:JC/JNC指令 ;记录BX中1的个数 xor al,al ;AL=0,CF=0 again: test bx,0ffffh ;等价于 cmp bx,0 je next shl bx,1 jnc again inc al jmp again next: ... ;AL保存1的个数 另一种做法 记录BX中“1”的个数 xor al,al ;AL=0,CF=0 again: cmp bx,0 jz next shl bx,1 ;也可使用 shr bx,1 adc al,0 jmp again next: ... ;AL保存1的个数 比较无符号数高低 无符号数的大小用高(Above)低(Below)表示 利用CF确定高低、利用ZF标志确定相等(Equal) 两数的高低分成4种关系: ⑴ 低于(不高于等于):JB(JNAE) ⑵ 不低于(高于等于):JNB(JAE) ⑶ 低于等于(不高于):JBE(JNA) ⑷ 不低于等于(高于):JNBE(JA ) 例2.43a:比较无符号数 cmp ax,bx ;比较ax和bx jnb next ;若ax≥bx,转移 xchg ax,bx ;若ax<bx,交换 next: ... 结果:AX保存较大的无符号数 比较有符号数大小 有符号数的大(Greater)小(Less)需要组合OF、SF标志,并利用ZF标志确定相等(Equal) 两数的大小分成4种关系: ⑴ 小于(不大于等于):JL(JNGE) ⑵ 不小于(大于等于):JNL(JGE) ⑶ 小于等于(不大于):JLE(JNG) ⑷ 不小于等于(大于):JNLE(JG ) 例2.43b:比较有符号数 cmp ax,bx ;比较ax和bx jnl next ;若ax≥bx,转移 xchg ax,bx ;若ax<bx,交换 next: ... 结果:AX保存较大的有符号数 2.4.3 循环指令(loop) 1、功能:循环指令是一种特殊的转移指令。当满足某条件时,反复执行一系列操作,直到不满足为止。 2、格式 常用:LOOP label ;CX←CX-1, ;CX≠0,循环到标号label 其它: JCXZ label ;CX=0,转移到标号label LOOPZ label ;CX←CX-1, ;CX≠0且ZF=1,循环到标号label LOOPNZ label ;CX←CX-1, ;CX≠0且ZF=0,循环到标号label 循环指令的执行过程 循环指令利用CX寄存器作为计数器 执行过程 mov cx,100 ;准备工作,设置要循环的次数 lable_one: xxx ;循环体(要反复执行的程序段) xxx loop lable_one ;执行LOOP分二步: (1)无条件执行CX?CX-1 (2)判断CX, 如果是0,往下执行; 如果不是0,返回到lable_one执行 循环体被执行了多少次? 例2.44:记录空格个数 mov cx,count ;设置循环次数,COUNT即是字符个数 mov si,offset string xor bx,bx ;bx=0,记录空格数 jcxz done ;如果长度为0,退出 mov al,20h ;20H是空格键的ASCII码 again: cmp al,es:[si] jnz next ;ZF=0非空格,转移 inc bx ;ZF=1是空格,个数加1 next: inc si loop again ;字符个数减1,不为0继续循环 dec cx jnz again cmp cx,0 jz next string 是一串ASCII码的序列,offset string是指序列的首地址 习题1、当一个带符号数大于0FBH时程序转移,在执行“CMP AL,0FBH”后,需选用的条件转移指令是() A、JLE B
您可能关注的文档
- 语文开学第一课2015题稿.ppt
- (电)低压电气装置规程DB32T989-2007(江苏)选编.doc
- 苏教版小学语文第六册三年级下册练习2题稿.ppt
- (分部)农田水利施工方案选编.doc
- 华锐风机偏航系统滑动衬垫更换方案选编.doc
- (丰田)3S表打印选编.doc
- 语文课堂教学培训发言题稿.ppt
- 华晟荣矿矿井5号北一盘区设计选编.doc
- (复合地基静载试验)选编.doc
- 华师大学生公寓9-11大临方案选编.doc
- 2025汽车技师职业鉴定检测卷附完整答案详解【各地真题】.docx
- 2025汽车技师职业鉴定检测卷带答案详解(考试直接用).docx
- 2025汽车技师职业鉴定检测卷带答案详解(能力提升).docx
- 2025汽车技师职业鉴定检测卷及一套答案详解.docx
- 二零二五年度白叶与赵氏企业的离婚财产分割及子女抚养权合同.docx
- 2025汽车技师职业鉴定检测卷【黄金题型】附答案详解.docx
- 2025汽车技师职业鉴定常考点试卷附答案详解(黄金题型).docx
- 2025年湖南省衡阳市选调生考试(公共基础知识)综合能力题库1套.docx
- 区域教育信息化基础设施建设中的人工智能技术应用与优化策略教学研究课题报告.docx
- 2025年湖南省衡阳市选调生考试(行政职业能力测验)综合能力测试题推荐.docx
文档评论(0)