接口与汇编实验三:子程序汇编综合设计

上传人:油条 文档编号:20503194 上传时间:2017-11-22 格式:DOC 页数:9 大小:325KB
返回 下载 相关 举报
接口与汇编实验三:子程序汇编综合设计_第1页
第1页 / 共9页
接口与汇编实验三:子程序汇编综合设计_第2页
第2页 / 共9页
接口与汇编实验三:子程序汇编综合设计_第3页
第3页 / 共9页
接口与汇编实验三:子程序汇编综合设计_第4页
第4页 / 共9页
接口与汇编实验三:子程序汇编综合设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《接口与汇编实验三:子程序汇编综合设计》由会员分享,可在线阅读,更多相关《接口与汇编实验三:子程序汇编综合设计(9页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 8 页实验报告学院(系)名称:计算机与通信工程学院姓名 学号 专业 计算机科学与技术班级 实验项目 实验三:子程序汇编综合设计课程名称 微机原理与接口技术 课程代码实验时间 实验地点 软件实验室 7-219批改意见 成绩教师签字: 一 实验名称:子程序汇编综合设计二 实验目的:1 进一步熟悉汇编语言的汇编工具及编译、执行过程;2 了解常见的 DOS 和 BIOS 功能调用;3 理解汇编程序过程调用机制;4 学会综合运用所学汇编程序设计知识,结合 DOS 和 BIOS 功能调用,编程解决相对复杂的问题。 三 实验内容:1、 过程调用:从 NUM 单元预置 10 个整数,找出最大值

2、放至 MAX 单元,最小值放至 MIN 单元;要求定义两个过程(子程序):MAXIMUM,MINIMUM 完成求最大值、最小值;然后在主程序中调用这两个过程。要求:(1) 编写流程图;(2) 编写源程序并加适当注释;DATA SEGMENT第 2 页 共 8 页NUM DB 11,14,12,16,13,17,15,12,19,20MAX DB ?MIN DB ? DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXCALL MAXNUMCALL MINNUMMOV AX,4C00HINT 21HMAXNUM

3、 PROC ;求最大数的子程序PUSHFPUSH BXMOV CX,9LEA BX,NUMMOV AL,BXAA: INC BXMOV DL,BXCMP AL,DL ;比较两数的大小JL AA1 ;小于则跳至 AA1MOV AL,DLAA1: LOOP AAMOV MAX,ALMAXNUM ENDPMINNUM PROC ;求最小数的子程序PUSHFPUSH BXMOV CX,9第 3 页 共 8 页LEA BX,NUMMOV AL,BXBB: INC BXMOV DL,BXCMP AL,DLJG BB1 ;大于则跳转MOV AL,DLBB1: LOOP BBMOV MIN,ALMINNUM

4、ENDPCODE ENDSEND START(3) 将 MAX、MIN 单元的值通过 debug 中的 d 指令显示,并截图贴在报告中。2、DOS 功能调用:从键盘输入一个字符串,放至数据段中 IN_STR 开始的内存单元,然后将其中小写字母变为大写字母,放至数据段中 OUT_STR 开始的内存单元并在屏幕上显示输出。要求:(1) 画流程图;(2) 编写源程序并加适当注释;第 4 页 共 8 页DATA SEGMENTIN_STR DB 20,?,20 DUP()STR DB 0AH,0DH,$ ;换行字符OUT_STR DB ?DATA ENDS CODE SEGMENTASSUME DS:

5、DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXLEA DX,IN_STRMOV AH,10INT 21HLEA BX,IN_STRLEA DI,OUT_STRINC BXINC BXA1: MOV AL,BXCMP AL,0DH ;判断是否为回车符,JE DONE ;是则结束CMP AL,aJB NEXTCMP AL,zJA NEXTSUB AL,20H ;小写则转换为大写NEXT: MOV DI,ALINC BXINC DIJMP A1DONE:LEA DX,STR ;换行第 5 页 共 8 页MOV AH,9INT 21HLEA DX,OUT_STR ;输出大

6、写MOV AH,9INT 21HMOV AX,4C00HINT 21HCODE ENDSEND START(3) 程序测试样例:输入:hello world!输出:HELLO WORLD!3、DOS 功能调用综合设计:从键盘输入一个字符串,放至数据段中 IN_STR 开始的内存单元,然后统计其中小写字母的个数,大写字母的个数,以及其它字符的个数,分别放至数据段中 UPPER LOWER OTHER 开始的内存单元,并将统计结果屏幕上显示输出。要求:(1) 画流程图;(2) 编写源程序并加适当注释;第 6 页 共 8 页DATA SEGMENTIN_STR DB 20,?,20 DUP()LOW

7、ER DB LOEER:,?,0DH,0AH,$UPPER DB UPPER:,?,0DH,0AH,$OTHER DB OTHER:,?,0DH,0AH,$STR DB 0AH,0DH,$ ;换行DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXLEA DX,IN_STRMOV AH,10INT 21HMOV BL,0 ;保存大写个数MOV CL,0 ;保存小写个数MOV DL,0 ;保存其他个数LEA DI,IN_STRINC DIAA: INC DIMOV AL,DICMP AL,0DH ;取字符判

8、断是否为回车符JE DONECMP AL,aJB A1CMP AL,zJA A2ADD CL,1第 7 页 共 8 页JMP AAA1: CMP AL,ZJA A2CMP AL,AJB A2ADD BL,1JMP AAA2: ADD DL,1 ;其他字符加 1JMP AADONE: LEA DI,LOWER ;把小写个数存进缓冲区ADD DI,6add cl,30hMOV DI,CLLEA DI,UPPER ;把大写个数存进缓冲区ADD DI,6add bl,30hMOV DI,BLLEA DI,OTHER ;把其他个数存进缓冲区ADD DI,6add dl,30hMOV DI,DLLEA DX,STR ;输出小写个数MOV AH,9INT 21HLEA DX,LOWERMOV AH,9 ;输出大写个数INT 21H第 8 页 共 8 页LEA DX,UPPERMOV AH,9INT 21HLEA DX,OTHER ;输出其他个数MOV AH,9INT 21HMOV AX,4C00HINT 21HCODE ENDSEND START(3) 程序测试样例:输入:hELLo world!输出:UPPER:3LOWER:7OTHER:2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号