第4章分支但循环结构部分3.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文档。上传文档
查看更多
第4章分支但循环结构部分3

标号:;程序结构: TEST/CMP指令 Jx 标号1 处理体P1 JMP 标号2 标号1: 处理体P2 标号2:其他指令 … ;标号1:;例题18:求某数X的绝对值,并送回原处。 求X的绝对值,即要求完成下面的运算: X , X=0 Y= -X , X0 显然,这是一个分支程序,程序将根据X的值不同完成不同的运算,其流程图如图4-3所示,程序如下: 首先是各个段寄存器的初始化部分:;STACK SEGMENT STACK DW 256DUP(?) STACK ENDS DATA SEGMENT XADR DW 3456H,8192H;定义变量X DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:;MOV AX,DATA ;数据段的段基址装入DS MOV DS,AX MOV AX,XADR ;变量X送SX寄存器 AND AX,AX ;(AX)=0? JNS DONE ;若(AX)=0,则跳到DONE NEG AX ;否则求(AX)的补码 MOV XADR,AX ;存结果 DONE: MOV AH,4CH;返回DOS INT 21H CODE ENDS END START;4.4.4 循环程序;2. DO WHILE条件 结构 先判断条件,再执行。工作部分有可能一次都不执行。;注意:循环可以嵌套(多重循环),但多个循环体之间不能交叉,控制条件不能混淆。 例22:编制程序使S=1+2X3+3X4+4X5+….+N(N+1),直到N(N+1)项大于200为止。 首先绘制流程图:如图4-8所示 根据流程图编制的程序如下所示:;TITLE ACCUMULATE SUM CODE SEGMENT ASSUME CS:CODE,DS:CODE.SS:CODE ORG 100H START: MOV DX, ;DX-1 MOV BL,2 ;BL-2 REPEAT:MOV AL,BL ;乘积项的两个因子分别递增 INC BL MUL BL ;N(N+1)-AX; ADD DX,AX ;计算累加和-AX CMP AX,200 ;N(N+1)=200? JNA REPEAT ;若N(N+1)=200则重复 MOV RESULT,DX;否则N(N+1)200存结果 MOV AH,4CH ;返回DOS INT 21H ORG 200H RESULT DW ?;存放结果单元 CODE ENDS END START;掌握以下几点: 调用子程序用CALL指令,返回调用程序用RET指令。 子程序允许嵌套调用。 进入子程序后首先要保护主程序的运行状态(标志位)和使用的寄存器内容(称为保护现场),退出子程序前要恢复现场。 调用前要预先确定子程序中要使用哪些寄存器,并定义入口参数和出口参数。参数传递可利用寄存器、存储单元或堆栈(要用BP寻址)。;例1: 二??制数(0-F)转换成ASCII(‘0’-‘F’)的子程序。 BIN2ASC PROC ;要转换的数在AL的低四位 ;转换结果仍在AL中 CMP AL, 9 JA A2F ADD AL, 30H JMP DONE A2F: ADD AL, 37H DONE: RET BIN2ASC ENDP 调用方法:(在主程序中) … MOV AL, 0CH CALL BIN2ASC (AL中有0CH的ASCII码43H, ’C’);作业: 例题16、例题21、例题23、例题27

文档评论(0)

180****9566 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档