预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

汇编语言程序设计实验报告三(子程序设计实验) 汇编语言程序设计实验报告三(子程序设计实验) 实验目的 掌握主程序与子程序之间的调用关系及其调用方法。 掌握子程序调用过程中近程调用与远程调用的区别。 熟练掌握码型变换的程序。 实验内容 从键盘输入二位非压缩BCD数,存入AX寄存器中,编程实现将 其转换为二进制数,并在屏幕上显示。要求码型转换程序用远程子程 序编写,字符显示用近程子程序编写。数据可循环输入,遇‘00’结 束。 实验准备 预习子程序设计的基本方法,根据实验内容要求编写出实验用程 序。 熟悉键盘输入和字符显示的程序段的编制。 实验步骤 编辑、汇编源程序,生成可执行文件。 执行程序,检查输入、输出结果,看是否正确。如不正确,用 DEBUG检查,修改源程序,再汇编、运行,直到程序正确为止。 用DEBUG的T命令或P命令跟踪程序的执行,观察在远程和近 程调用过程中,堆栈的变化情况。 实验报告要求 分析近程调用和远程调用的主要区别。用DEBUG命令观察执行过 程有何不同。 分析实验结果及所遇到的问题的解决方法。 程序流程图 开始TRAN 程序标准序开始 读入十进制数据放AX中AXAXAND0F0FH 是00?YBLAL N 调用转换子程序结束AL左移3位 回车、换行BL左移1位 于ALAL+BL 主程序流程图ALAL+AH RET 转换子程序TRAN流程图 程序清单 STASEGMENTSTACK’STACK’ DB100DUP(0) STAENDS GSAGSEGMENTPARA‘CODE’ ASSUMECS:CSAG MAINPROCFAR STRAT:PUSHDS SUBAX,AX PUSHAX REV:MOVAH,1 INT21H MOVBL,AL INT21H MOVAH,AL MOVAL,BL CMPAX,3030H JEENDTRAN CALLNEARPTRTRAN CALLFARPTRCON MOVAL,0DH CALLFARPTRDISP MOVAL,0AH CALLFARPTRDISP MOVAL,0AH CALLFARPTRDISP JMPREV ENDTRAN:RET MAINENDP TRANPROCNEAR ANDAX,0F0FH MOVBL,AL MOVBL,AL MOVCL,3 SHLAL,CL MOVCL,1 SHLBL,CL ADDAL,BL ADDAL,AH RET TRANENDP CSAGENDS CSBGSEGMENTPARA’CODE’ ASSUMECS:CSBG CONPROCFAR PUSHAX MOVCL,4 SHRAL,CL ADDAL,30H CMPAL,39H JBECON2 ADDAL,7 CON2:PUSHAX MOVAL,0DH CALLFARPTRDISP MOVAL,OAH CALLFARPTRDISP POPAX CALLFARPTRDISP POPAX ANDAL,0FH ADDAL,30H CMPAL,39H JBECON1 ADDAL,7 CON1:CALLFARPTRDISP RET CONEDNP DISPPROCFAR PUSHBX MOVBX,0 MOVAH,14 INT10H POPBX RET DISPENDP CSBGENDS ENDSTART