《汇编语言程序设计实验报告三(子程序设计实验).docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计实验报告三(子程序设计实验).docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汇编语言程序设计实验报告三(子程序设计实验) 汇编语言程序设计实验报告三(子程序设计实验) 一、实验目的 1、掌握主程序与子程序之间的调用关系及其调用方法。 2、掌握子程序调用过程中近程调用与远程调用的区别。 3、熟练掌握码型变换的程序。 二、实验内容 1、从键盘输入二位非压缩BCD数,存入AX寄存器中,编程实现将其转换为二进制 数,并在屏幕上显示。要求码型转换程序用远程子程序编写,字符显示用近程子程序编写。数据可循环输入,遇00结束。 三、实验准备 1、预习子程序设计的基本方法,根据实验内容要求编写出实验用程序。 2、熟悉键盘输入和字符显示的程序段的编制。 四、实验步骤 1、编辑、汇编源程序
2、,生成可执行文件。 2、执行程序,检查输入、输出结果,看是否正确。如不正确,用DEBUG检查,修改 源程序,再汇编、运行,直到程序正确为止。 3、用DEBUG的T命令或P命令跟踪程序的执行,观察在远程和近程调用过程中,堆 栈的变化情况。 五、实验报告要求 1、分析近程调用和远程调用的主要区别。用DEBUG命令观察执行过程有何不同。 2、分析实验结果及所遇到的问题的解决方法。 主程序流程图 转换子程序TRAN流程图 七、程序清单 STA SEGMENT STACK STACK DB 100 DUP(0) STA ENDS GSAG SEGMENT PARA CODE ASSUME CS:CSAG
3、 MAIN PROC FAR STRA T: PUSH DS SUB AX,AX PUSH AX REV: MOV AH,1 INT 21H MOV BL,AL INT 21H MOV AH,AL MOV AL,BL CMP AX,3030H JE ENDTRAN CALL NEAR PTR TRAN CALL FAR PTR CON MOV AL,0DH CALL FAR PTR DISP MOV AL,0AH CALL FAR PTR DISP MOV AL,0AH CALL FAR PTR DISP JMP REV ENDTRAN: RET MAIN ENDP TRAN PROC NEA
4、R AND AX,0F0FH MOV BL,AL MOV BL,AL MOV CL,3 SHL AL,CL MOV CL,1 SHL BL,CL ADD AL,BL ADD AL,AH RET TRAN ENDP CSAG ENDS CSBG SEGMENT PARACODE ASSUME CS:CSBG CON PROC FAR PUSH AX MOV CL,4 SHR AL,CL ADD AL,30H CMP AL,39H JBE CON2 ADD AL,7 CON2: PUSH AX MOV AL,0DH CALL FAR PTR DISP MOV AL,OAH CALL FAR PTR DISP POP AX CALL FAR PTR DISP POP AX AND AL,0FH ADD AL,30H CMP AL,39H JBE CON1 ADD AL,7 CON1: CALL FAR PTR DISP RET CON EDNP DISP PROC FAR PUSH BX MOV BX,0 MOV AH,14 INT 10H POP BX RET DISP ENDP CSBG ENDS END START