四川大学计算机学院、软件学院
     
学生姓名
夏超
学号
1143041054
班级
113040115
学生专业
计算机科学与技术
学院
计算机学院
课程名称
汇编语言程序设计(第五次)
汇编语言大小写字母转换
2012124
实验项目
DOS功能及子程序编写
报告撰写时间
2012124
实验目的
1 掌握DOS功能调用09H0AH的配合使用;
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小时内删除。