接口与汇编实验三:子程序汇编综合设计_第1页
接口与汇编实验三:子程序汇编综合设计_第2页
接口与汇编实验三:子程序汇编综合设计_第3页
接口与汇编实验三:子程序汇编综合设计_第4页
接口与汇编实验三:子程序汇编综合设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、MAXIMUM,MINIMUM完成求最大值、最小值;然后在主程序中调用这两个过程。 要求:(1) 编写流程图;(2) 编写源程序并加适当注释;DATA SEGMENTNUM DB 11,14,12,16,13,17,15,12,19,20MAX DB ?MIN DB ? DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXCALL MAXNUMCALL MINNUMMOV AX,4C00HINT 21HMAXNUM PROC ;求最大数的子程序 PUSHF PUSH BX MOV CX,9 LEA BX,N

3、UM MOV AL,BXAA: INC BX MOV DL,BX CMP AL,DL ;比较两数的大小 JL AA1 ;小于则跳至AA1 MOV AL,DLAA1: LOOP AA MOV MAX,ALMAXNUM ENDPMINNUM PROC ;求最小数的子程序 PUSHF PUSH BX MOV CX,9 LEA BX,NUM MOV AL,BXBB: INC BX MOV DL,BX CMP AL,DL JG BB1 ;大于则跳转 MOV AL,DLBB1: LOOP BB MOV MIN,ALMINNUM ENDPCODE ENDSEND START(3) 将MAX、MIN单元的值通

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

5、0INT 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,AL INC BX INC DIJMP A1DONE:LEA DX,STR ;换行MOV AH,9INT 21HLEA DX,OUT_STR ;输出大写MOV AH,9INT 21HMOV AX,4C00HINT 21HCODE ENDS END START(3) 程序测试样例:输入:

6、hello world!输出:HELLO WORLD! 3、DOS功能调用综合设计:从键盘输入一个字符串,放至数据段中IN_STR开始的内存单元,然后统计其中小写字母的个数,大写字母的个数,以及其它字符的个数,分别放至数据段中UPPER LOWER OTHER开始的内存单元,并将统计结果屏幕上显示输出。要求:(1) 画流程图;(2) 编写源程序并加适当注释;DATA SEGMENTIN_STR DB 20,?,20 DUP()LOWER DB LOEER:,?,0DH,0AH,$UPPER DB UPPER:,?,0DH,0AH,$OTHER DB OTHER:,?,0DH,0AH,$STR

7、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 ;取字符判断是否为回车符JE DONECMP AL,aJB A1CMP AL,zJA A2ADD CL,1JMP AA A1: 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 21HLEA DX,UPPERMOV AH,9INT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论