四川大学计算机学院、软件学院
实 验 报 告
学生姓名 | 夏超 | 学号 | 1143041054 | 班级 | 113040115 | |
学生专业 | 计算机科学与技术 | 学院 | 计算机学院 | |||
课程名称 | 汇编语言程序设计(第五次) | 实 验 时汇编语言大小写字母转换 间 | 2012年12月4日 | |||
实验项目 | DOS功能及子程序编写 | 报告撰写时间 | 2012年12月4日 | |||
实验目的 | 1 掌握DOS功能调用09H和0AH的配合使用; 2 学习子程序编写。 | |||||
实验环境 | 1 X86系列桌面系统; 2 UltraEdit-32、TASM、TLINK、TD。 | |||||
实验内容 | 1 编写一完整程序,该程序接受长度小于30的字符串后,将串中的小写字母变成大写后重显该串。 2 小写字母转换成大写字母的功能以一子程序形式实现(采用寄存器和堆栈两种传递参数的方式分别实现); 3 用串0dh,0ah,'$'在实验程序中的适当位置实现新行功能。 | |||||
实验记录 | 数据段变量定义的内容如下: data segment para MAXLEN db 30 INPTLEN db ? string1 db 32 dup('$') ;①在此定置Dos功能9和0a共用的缓冲区 crlf db 0dh,0ah,'$' ;0dh、0ah分别为光标回到行首和光标下移一行的控制符 data ends | |||||
实验记录 | 小写字母转换成大写字母子程序的代码如下: upcase proc push bp mov bp,sp pushf push ax push bx push cx push si push di mov si,[bp+4] mov di,[bp+4] mov al,[si] cmp al,'a' jb L3 L1: cmp al,'z' ja L3 L2: sub al,20h L3: mov [di],al pop di pop si pop cx pop bx pop ax popf pop bp ret upcase endp | |||||
小 结 | 我体会到子程序调用与返回指令与无条件、条件转移指令、循环控制指令具有相似特征,它们都能实现程序流程的转移,但不影响标志位。通过这次试验,这也是一次用汇编语言完整编写的一个小程序。本次大小写字母转换程序的编写使我加深了对子程序的认识,还复习了前面对分支与循环的设计。不足之处是程序稍显混乱,还不够清晰。今后还需要进一步提升。 | |||||
教师评议 | 成绩评定: 指导教师签名: | |||||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论