微机原理与接口第5章程序设计及答案.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 【例】设计一个100ms的软件延时程序。采用多重循环程序,内循环完成10ms的延时,外层循环10次即可。 5.4.3 循环结构程序设计 CODE SENGMET ASSUME CS:CODE START: MOV DL,10 DELAY1: MOV CX,2800H DELAY2: LOOP DELAY2 DEC DL JNZ DELAY1 MOV AH,4CH INT 21H CODE ENDS END START * 5.4.4 子程序设计 子程序:相对主程序而言,是被主程序调用的程序. 把功能相对独立的程序段单独编写和调试,作为一个相对独立的模块供程序使用,就形成子程序 子程序调用示意图: 主 子 子 子1 子2 主 5.4 汇编语言程序设计 * 汇编语言中,子程序要用一对过程伪指令PROC和ENDP声明,格式如下: 过程名 PROC [NEAR/FAR] …… ;过程体 过程名 ENDP 可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性 NEAR属性(段内近调用)的过程只能被相同代码段的其他程序调用 FAR属性(段间远调用)的过程可以被相同或不同代码段的程序调用 5.4.4 子程序设计 * 利用寄存器传递参数 主程序将参数保存到寄存器中,子程序通过访问寄存器来取得变量。 子程序将参数保存到寄存器中,主程序通过访问寄存器来取得变量。 5.4.4 子程序设计 * 例、从键盘接收一个十进制数,将其以十六进制的形式显示出来。 分析: ①从键盘接收十进制数,键盘输入的是ASCII码,要先转换成十六进制30H~39H,如果输入的不是数字,还要加以判断。若输入的是多位数,也要加以判断,并累加计算。 ②输入后在下一行显示十六进制数,应当有回车换行。 ③将十进制数转换成十六进制数后,再逐一转换成ASCII码显示。 5.4.4 子程序设计 * CODE SEGMENT ASSUME CD:CODE,DS:DATA MAIN PROC FAR START: PUSH DS MOV AX,0 PUSH AX CALL DECIN CALL CRLF CALL BINTODEC RET MAIN ENDP 5.4.4 子程序设计 * DECIN PROC NEAR MOV BX,0 NEWCHAR: MOV AH, 1 INT 21H SUB AL, 30H JL EXIT CMP AL, 9 JG EXIT CBW 5.4.4 子程序设计 XCHG AX,BX MOV CX,10 MUL CX XCHG AX,BX ADD BX,AX JMP NEWCHAR EXIT: RET DECIN ENDP * CRLF PROC NEAR MOV DL,0DH ;回车ASCII码 MOV AH,2 INT 21H ;显示回车 MOV DL,0AH ;换行ASCII码 MOV AH,2 INT 21H ;显示换行 RET CRLF ENDP 5.4.4 子程序设计 * BINTODEC PROC NRAR MOV CH,4 NEXT2: MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30 CMP AL,3AH JL PRINT ADD AL,7 5.4.4 子程序设计 PRINT: MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ NEXT2 RET BINTODEC ENDP * 例、从键盘接受一十六进制数(0~0FFFFH,正数),转换为十进制数并在屏幕上显示出来 分析: ⑴从键盘接受十六进制数,用DOS的1号功能调用逐一接收,每接收完一个再接收下一个时应将先前的左移四位。 ⑵接收完毕后最大为65536,显示时可以将此数除以10000,1000,100,10,1将商逐一显示即可。 5.4.4 子程序设计 * CODE SEGMENT ASSUME CD:CODE,DS:DATA MAIN PROC FAR START: PUSH DS MOV AX,0 PUSH AX CALL HEXI

文档评论(0)

富贵礼包 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档