微机原理-第04章-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文档。上传文档
查看更多
循环结构的组成: 初始化:为循环做准备,设置循环计数器,设置初值; 循环体:循环程序的核心,包括循环的全部执行指令; 修改参数:修改指针等; 循环控制: 计数器控制方式:预先确定循环体执行次数的程序,常用“先执行后判断结构” 条件控制方式:循环次数不确定,循环的目的是满足一定要求,常用“先判断后执行结构” 标志控制方式:以预先给定的标志字(如:$,0DH,0AH)表示循环过程的结束 子程序:相对主程序而言,是被主程序调用的程序. 子程序调用示意图: 4.3.1 顺序结构程序设计 4.3.2 分支程序设计 4.3.3 循环结构程序 4.3.4 代码转换程序 4.3.5 过程调用 4.3.4 代码转换程序 在计算机中,经常需要将数据从一种形式转换成另一种形式。例如,把2进制数转换成10进制数,再转换成ASCII码显示出来;把键盘输入的10进制数转换成2进制数,再转换成16进制数等。这就要编写各种代码转换程序。 下面介绍几个代码转换程序,为方便起见,程序都以子程序的形式给出。 4.3.4 代码转换程序 例4.41 将AL寄存器中的二进制数转换成非压缩BCD数, 存入AX中, 再转换成ASCII码后在CRT上显示。   设AL中的初值=62H, 它等于10进制数的98。 将它除以10后, 可得商为9, 余数为8, 将其存放入AX中, 使AX=0908H, 与3030H相加(也可相或), 即转换成ASCII码3938H, 用2号DOS功能调用即可显示出来。 4.3.4 代码转换程序 BIN_ASC PROC NEAR MOV AH,0 MOV BL,10 ;除数 DIV BL  ;AL ?商(9), AH ? 余数(8) XCHG AH,AL ; AX=0908H(非压缩BCD数) ADD AX,3030H ;AX=3938H(ASCII码) MOV CX,AX ;CX ? 3938H MOV DL,CH MOV AH,2 INT 21H ;显示9 MOV DL,CL MOV AH,2 INT 21H ;显示8 RET BIN_ASC ENDP 4.3.4 代码转换程序 例4.42 将键盘输入的一个以回车符为结尾的10进制数(0~65535)转换成2进制数,并存入BX中,如输入一个非10进制数或回车符,则退出程序。 编程思想: 1)利用DOS 1号功能调用,等待从键盘输入一个10进制数字,比如3,则在AL中得到3的ASCII码33H。 2)将ASCII码转换成BCD码。截下低4位,判断其是否为数字0~9,若是,则将该数存入BX中,若不是则退出程序。 3)再键入下一个数字,如数字5,也要判断其是否为数字0~9。 4.3.4 代码转换程序 4)将10进制数转换成2进制数。将先键入的数字3乘以10后,与后键入的数5相加(累加),得(3?10)+5= 35。 5)再键入第3个数字,如8,将前面累加的数乘以10后与后键入的数累加,可得到[(3?10+5)?10]+8=358,还可继续进行下去,直至键入一个非10进制数或回车符为止。遇回车符表示键入的一个10进制数结束。 4.3.4 代码转换程序 DEC_BIN PROC NEAR MOV BX,0 ;BX存结果,初值清0 GET_CHAR: MOV AH,1 ;DOS 1号功能调用 INT 21H ;AL ?键入数字ASCII码 CMP AL,0DH ;是回车符 JE EXIT ;是,转 SUB AL,30H ;ASCII码转换成10进制数 JL EXIT ;0(非数字),则退出 CMP AL,9 ;0,则与9比较 JG EXIT ;9,退出 CBW ;是数字0~9 XCHG AX,BX MOV CX,10 MUL CX ;先键入数?10 ? AX XCHG AX,BX ADD BX,AX ;累加,结果 ?BX JMP GET_CHAR ;循环,键入新数 EXIT: RET DEC_BIN ENDP 4.3.4 代码转换程序 例4.43 编写将BX中的二进制数转换成16进制数,并在显示器上显示的子程序。 由于每4位二进制数可用一个16进制数表示,所以BX中的二进制数可以转换成4个16进制数字。 每次将BX中的数左移4次,可得到一个16进制数,将其转换成ASCII码后,即可在显示器上显示出一个16进制数。 重复执行4次,就可将BX中的4个16进制数在显示器上显示出来上。 4.3.4 代码转换程序 操作过程如图4.11所示 图

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档