杨富华 第3讲 程序设计的基本技术2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.3 顺序程序设计 3.4 分支程序设计 3.5 循环程序设计 3.7 子程序设计 3.3 顺序程序设计 例3.7 编制两个32位无符号数的乘法程序。 3.4 分支程序设计 转移指令的实质:改变IP(或CS)的内容。 所有转移指令不会影响标志位。 分为无条件转移和条件转移两种。 无条件转移指令 条件转移指令 分支程序设计举例 ① 段内直接转移 ②段内间接转移 转移的目标地址由寄存器或存储单元的内容给出。 例1:JMP SI 若指令执行前(SI)=1200H,则指令执行后,(IP)=1200H,于是转向代码段的偏移地址1200H处执行。 注意:目标地址以段内偏移的形式给出,而不是相对于IP的位移量,所以它是一个16位的操作数。 例2:JMP [BX+DI] 设指令执行前: (DS)=3000H,(BX)=1300H, (DI)=1200H,(32500H)=2350H; 则指令执行后:(IP)=2350H 在汇编语言中,段内间接寻址通常写成: JMP WORD PTR[BX+DI] 表示所取得的目标地址是一个字。 ③段间直接转移 在指令中直接给出要转移到的目的段地址和偏移地址。 例:JMP 2000:1000H 执行时,(IP)←1000H,(CS)←2000H 注:直接地址为符号地址时,段间直接转移指令中的符号地址前应加操作符FAR PTR。 例:JMP FAR PTR far_label 其中的far_label为远类型的标号。 ④段间间接转移 (2)条件转移指令 - JXX ① 根据单个标志位设置的条件转移指令 JB/JC ;低于,或CF=1,则转移 JNB/JNC/JAE ;高于或等于,或CF=0,则转移 JP/JPE ;奇偶标志PF=1(偶),则转移 JNP/JPO ;奇偶标志PF=0(奇),则转移 JZ/JE ;结果为零(ZF=1),则转移 JNZ/JNE ;结果不为零(ZF=0),则转移 JS ;SF=1,则转移 JNS ;SF=0,则转移 JO ;OF=1,则转移 JNO ;OF=0,则转移 条件转移指令常根据比较指令比较两个数的关系的结果来实现转移。两个数的关系除了相等与否外,还有两个数中哪一个比较大。但这就有一个有趣的问题,如8位二进制? 答案既可肯定又可否定。因为若视这两个二进制数为无符号数当然大若视这两个二进制数为符号数(补码)-1,就比0小了。为此要使用两种术语来区分无符号数和符号数的这种关系。如果把数作为符号数来比较,就使用术语“小于”和“大于”;如果把数作为无符号数来比较,就使用术语“低于”和“高于”。因此8位二进制小高于又大所以8086/8088设置了符号数的条件转移指令和无符号数的条件转移指令。 ② 根据组合条件设置的条件转移指令 判断有符号数的大小 (3)分支程序设计举例 例3-8:以十六进制数形式显示字变量W中的内容。 例3-9:某工厂的产品共有8种加工处理程序P0~P7,而某产品应根据不同情况,作不同的处理,其选择由键入的值0~7来决定。若键入0~7以外的键,则退出该产品的加工处理程序。 3.5 循环程序设计 (2)循环控制指令 用在循环程序中以确定是否要继续循环。 循环次数通常置于CX中。 转移的目标应在距离本指令-128~+127的范围之内。 循环控制指令不影响标志位。 (4)条件控制的循环程序举例 (5)双重控制的循环程序举例 5. 已知字节变量BUF存储区中存放着以0DH(回车的ASCII码)结束的十进制数的ASCII码。编程检查该字节变量存储区中有非十进制数,若有显示“ERROR”;若无则统计十进制数的位数(小于100)并送显示器显示。 (6)多重循环程序设计举例 6. 编制将字节变量BUF存储区中存放的n个无符号数排序的程序。 7. 已知m×n矩阵A的元素aij按行序存放在存储区中,试编写程序求每行元素之和Si。 mov ax,data mov ds,ax AGAIN: MOV DX,OFFSET INPUT MOV AH,9 INT 21H MOV AH,1 INT 21H

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档