第四章-程序设计基本方法.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 26程序设计的基本方法汇编语言程序中,最常见的几种程序结构形式:顺序程序、分支程序、循环程序、子程序。转移指令分支程序设计循环程序设计,循环指令堆栈的概念,进栈、出栈指令子程序的定义、调用、返回;主程序与子程序的参数传递转移指令特点:改变程序的执行顺序,即改变了指令指示器IP的内容。条件转移功能:由上一条指令所设的条件码来判别测试条件,满足条件则转移到指令所指地址去执行,否则循环执行。满足条件时,当前(IP)+符号扩展到16位的位移量→IP。位移范围在-128~127之间。简单条件转移CF标志:JC / JNCJC表示:CF=1时转移。例如两数相减,低于。JNC表示:CF=0时转移。例如两数相减,高于或等于。ZF标志:JZ / JNZJZ表示:结果为0,转移,此时ZF=1。JNZ表示:结果不为0,转移,此时ZF=0。SF标志:JS / JNSJS表示:结果为负,转移,此时SF=1。JNZ表示:结果不为正,转移,此时SF=0。OF标志:JO /JNOJO表示:结果溢出,转移,此时OF=1。JNO表示:结果不溢出,转移,此时OF=0。PF标志:JP / JNP或JPE / JPOJP表示:低8位中1的个数为偶数时转移,此时OF=1。 JNP表示:低8位中1的个数为奇数时转移,此时OF=0。如:两数相加,结果为0,则转移到P2,否则运行P1。YYN … ADD AX, TEMP JZ P2 (P1)P2: …(AX)+TEMP→AX(AX)=0?P1P2无符号数的条件转移此指令跟在比较指令之后,比较的对象为无符号数。结果有:高于、高于等于、低于、低于等于。Above:高于,below:低于,equal:等于。JA / JNBEJA表示:高于则转移。JNBE表示:不低于或等于转移。测试条件:CF∨ZF=0。(分析:a-b≥0,此时CF=0;a-b≠0,此时ZF=0。)JAE / JNBJAE表示:高于等于则转移。JNB表示:不低于则转移。测试条件:CF=0或ZF=1。JB / JNAEJB表示:低于则转移。JNAE表示:不高于且不等于则转移。测试条件:CF=1。JBE / JNAJBE表示:低于等于则转移。JNA表示:不高于则转移。测试条件:CF∨ZF=1。有符号数条件转移比较结果分为4种:大于、大于等于、小于、小于等于。Great:大于,Little:小于,Equal:等于。JG / JNLEJG表示:两数相比,大于,则转移。 JNLE表示:两数相比,不小于且不等于,则转移。测试条件:(SFOF)∨ZF=0。JGE / JNLJGE表示:两数相比,大于等于,则转移。 JNL表示:两数相比,不小于,则转移。测试条件:SFOF=0。JL / JNGEJL表示:两数相比,小于,则转移。 JNGE表示:两数相比,不大于且不等于,则转移。测试条件:SFOF=1。JLE / JNGJLE表示:两数相比,小于等于,则转移。 JNG表示:两数相比,不大于,则转移。测试条件:(SFOF)∨ZF=1。使用转移指令时应注意:CMP比较指令本身无法分别有、无符号数,它比较的是否有符号,由后面的转移指令确定。例: MOV AL, -40H CMP AL, 50H JG L1; 比较的是有符号数,(-40H)<50H,不转移…L1: …若将JG换为JA,就变成无符号数了,此时,(AL)=(-40H)补=C0H>50H,转移。转移指令的转移范围-128~127。无条件转移指令功能:无条件地转移到目的地址执行。可以分为两类:段内、段间。段内直接近转移格式:JMP NEAR PTR 标号;功能:(IP)+16位偏移量→IP。转移范围32K。段内间接转移格式:JMP WORD PTR OPD;功能:(OPD)→IP。如:JMP WORD PTR [BX+TABLE]作用:([BX+TABLE])→IP,偏移地址[BX+TABLE]所指单元的内容送IP。假定:(DS)=2000H,(BX)=1256H,TABLE=20A1H,(232F7H)=3280H。则:PA = (DS)左移4位+(BX)+TABLE = 232F7H执行后:(IP)=3280H段间直接转移格式:JMP FAR PTR 标号;功能:标号的偏移地址→IP,标号所在段地址→CS。如:C2C2C1C1 SEGMENT…JMP FAR PTR NEXT…C1 ENDSC2 SEGMENT …NEXT:…操作→新IP→新CS←CS: IP段间间接转移格式:JMP DWORD PTR OPD功能:(OPD)→IP,(OPD+2)→CS。如:JMP DWORD PTR [BX]([BX])→IP,([BX]+2)→CS。注意是偏移地址[B

文档评论(0)

js1180 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档