版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上姓名:学号:班级:指导老师:贺建飚计算机原理与汇编课程设计报告汇编语言课程设计一、设计目的:课程设计是计算机原理与汇编语言教学过程中的重要环节。本课程设计主要目的是使计算机专业学生深入学习计算机原理与汇编语言知识,进一步提高学生计算机原理与汇编语言综合能力和程序设计技能,锻炼运用计算机原理与汇编语言解决实际问题的能力。二、设计要求:1认真查阅资料,独立完成设计任务,每道题都必须上机通过。 2独立思考,培养综合分析问题解决问题和调试程序的能力。 3按时完成课程设计,写出课程设计报告。3、 设计内容及原理设计内容:1使用到子程序 100 以内的素数,以十进制形式输出。2用
2、递归计算50以内Fibonacci 数,以十进制形式输出。3编写一拷贝程序,要求在命令行指定源文件名和目标文件名。设计原理:1结合几种含有特定功能的子程序以完成设计要求。2建立循环程序递归计算Fibonacci 数。3根据输入判断文件是否存在并执行拷贝过程。四、设计思路 1使用到子程序 100 以内的素数,以十进制形式输出。按照设计要求,可以建立3个子程序,一个判断素数子程序,一个显示素数子程序,一个将素数以十进制形式输出子程序,然后在主程序中调用子程序,程序框架得以构建。2用递归计算50以内Fibonacci 数,以十进制形式输出。按照设计要求,可以建立循环子程序,递归计算Fibonacci
3、 数,以十进制形式输出,再将新Fibonacci 数与50比较,大于50则退出循环,程序结束。3编写一拷贝程序,要求在命令行指定源文件名和目标文件名。在数据段中编写各种提示语句,在代码段中加入各种判断语句及中断跳转语句,程序运行时,即可根据命令行输入的指定源文件名和目标文件名执行相应的功能。5、 实现步骤 1使用到子程序 100 以内的素数,以十进制形式输出。程序代码如下:DATAS SEGMENT count dw 0;存放素数的个数 sushu db 100 dup(?);存放素数 msgsushu db 'all prime numbers below 100 are:'
4、,'$'显示素数的提示信息 msgcount db 0dh,0ah,'count of prime numbers is:',0dh,0ah,'$'显示素数个数的提示信息 DATAS ENDS CODE SEGMENT assume cs:CODE, ds:DATASMAIN PROC FAR ;主程序入口 call jisuanlea dx,msgsushu;显示素数的提示信息 mov ah,9 int 21h call dispsushu;显示素数 lea dx,msgcount;显示素数个数的提示信息 mov ah,9 int 21h ca
5、ll dispcount;显示素数个数 mov ah,1;按任意键退出 int 21h mov ax, 4c00h ;程序结束,返回到操作系统系统 int 21h MAIN ENDP jisuan proc near mov ax, datasmov ds, ax lea di,sushu mov bh,0 mov bl,2;求从2到100的素数、素数个数,BL从2到100变化 next11: cmp bl,100 ja tj mov dl,2;如果BL不能被DL从2到BL-1整除的话,则BL为素数 next12: cmp dl,bl jae next13 mov ax,bx div dl c
6、mp ah,0 jz next14;整除则不是素数 inc dl jmp next12 next13: inc count;是素数,则将个数加1 mov di,bl;是素数,则存入相应单元中 inc di next14: inc bl jmp next11 tj:ret jisuan endp dispsushu proc near lea si,sushu mov cx,count next21: mov ax,count;每行10个素数 sub ax,cx mov bl,10 div bl cmp ah,0 jnz next22 mov dl,0dh;每行10个素数,行末加回车换行 mov
7、 ah,2 int 21h mov dl,0ah mov ah,2 int 21h next22: mov bl,si;取出一个素数 mov bh,0 call disp10;以十进制形式输出 mov dl,20h;每个素数之间加一个空格,便于区分 mov ah,2 int 21h inc si loop next21 ret dispsushu endp dispcount proc near mov bx,count;取出素数个数 call disp10;以十进制形式输出 ret dispcount endp disp10 proc near;该子程序的作用是将BX中的数以十进制形式输出
8、push cx mov cx,10d call dec_div mov cx,1d call dec_div pop cx ret dec_div proc near mov ax,bx mov dx,0 div cx mov bx,dx mov dl,al add dl,30h mov ah,2 int 21h ret dec_div endp disp10 endp CODE ENDS END MAIN程序运行结果:2用递归计算50以内Fibonacci 数,以十进制形式输出。程序代码如下:ASSUME CS:CODES, DS:DATASDATAS SEGMENT M2 DB 13, 1
9、0, 'Fibonacci numbers which below 50 are: $' N1 DW 0 N2 DW 1 DATAS ENDSCODES SEGMENTSTART: MOV AX, DATAS MOV DS, AX LEA DX, M2 MOV AH, 9 INT 21H MOV DL, '1' MOV AH, 2 INT 21H MOV DL, ' ' INT 21HLP: MOV AX, N1 ADD AX, N2 MOV BX, N2 MOV N1, BX MOV N2, AX CMP N2,50 JA EXIT CALL
10、OUTPUT MOV DL, ' ' MOV AH, 2 INT 21H CMP N2,50 JNA LPEXIT: MOV AH, 4CH INT 21H ;返回DOS;-OUTPUT: MOV BX, 10 MOV CX, 0OL1:MOV DX, 0 DIV BX ADD DL, '0' PUSH DX INC CX CMP AX, 0 JNZ OL1 MOV AH, 2OL2:POP DX INT 21H JA EXIT LOOP OL2 RETCODES ENDSEND START程序运行结果:3编写一拷贝程序,要求在命令行指定源文件名和目标文件名。程
11、序代码如下:data SEGMENTmess1 DB 'Please input the path and name of source file:',0DH,0AH,24H mess2 DB 0DH,0AH,'Please input the path and name of object file:',07H,0DH,0AH,24Hfnf DB 0DH,0AH,'File has not existed!',07H,0DH,0AH,24Hfdf DB 0DH,0AH,'Object file has existed!',07H
12、,0DH,0AH,24Hfde DB 0DH,0AH,'Object path has not existed!',07H,0DH,0AH,24H fre DB 0DH,0AH,'Reading error.',07H,0DH,0AH,24Hfwe DB 0DH,0AH,'Writting error.',07H,0DH,0AH,24Hfcs DB 0DH,0AH,'File copyed succeed.',0DH,0AH,24Hfbuffer DB 128 DB ?fname DB 128 DUP (?)fnum_s DW ?
13、 fnum_d DW ? buffer DB 512 DUP (?) data ENDS code SEGMENT ASSUME CS:code,DS:data start: MOV AX,data MOV DS,AX PUSH DS POP ES full0: LEA DX,mess1 MOV AH,9 INT 21H CLD MOV CX,128 MOV AL,0 LEA DI,fname REP STOSB LEA DX,fbuffer MOV AH,0AH INT 21H MOV BL,fbuffer+1 ;将输入文件名的最后一个回车符换成0,因为建立的文件名不能包括不可见字符 XOR
14、 BH,BH MOV SI,OFFSET fname ADD SI,BX MOV BYTE PTR SI,0 LEA DX,fname MOV AX,3D00H INT 21H JNC open ;打开成功 LEA DX,fnf MOV AH,9 INT 21H JMP full0 ;重新输入 open: MOV fnum_s,AX ;打开成功,保存源文件号 full1: LEA DX,mess2 MOV AH,9INT 21H CLD ;充0,将上次输入的文件名清零 MOV CX,128 ;文件名最大128字符,包括回车符 MOV AL,0 LEA DI,fname REP STOSB LE
15、A DX,fbuffer ;输入文件名 MOV AH,0AH ;键盘输入到缓冲区 DS:DX=缓冲区首地址 INT 21H MOV BL,fbuffer+1 XOR BH,BH MOV SI,OFFSET fname ADD SI,BX MOV BYTE PTR SI,0 LEA DX,fname MOV AX,3D00H INT 21H JC setup ;打开不成功 LEA DX,fdf MOV AH,9 INT 21H JMP exit setup: LEA DX,fname MOV AH,3CH ;建立新文件 INT 21H JNC save ;建立成功 LEA DX,fde MOV
16、AH,9 INT 21H JMP exit save: MOV fnum_d,AX ;保存新文件号 MOV AX,3D01H ;以只写方式打开新文件 INT 21H readf: MOV BX,fnum_s ;取源文件号 MOV CX,512 ;读出512个字符 MOV DX,OFFSET buffer MOV AH,3FH INT 21H JNC writef ;读成功,则写 LEA DX,fre ;不成功,显示错误信息,关闭文件,并结束程序 MOV AH,9 INT 21H JMP exit writef: MOV BX,fnum_d ;取新文件号 MOV CX,AX ;按实际读入字数写文
17、件 MOV AH,40H INT 21H JNC cmpcx ;写成功 LEA DX,fwe ;不成功,显示错误信息,关闭文件,并结束程序 MOV AH,9 INT 21H JMP exit cmpcx: CMP CX,512 ;判断实际读入的字数是不是512 JE readf ;如果是512,说明还没读到文件尾 ; LEA DX,fcs ;显示复制成功 MOV AH,9 INT 21H ; exit: MOV AH,3EH ;关闭文件 INT 21H MOV BX,fnum_s MOV AH,3EH INT 21H MOV AX,4C00H INT 21H ; code ENDS END start程序运行结果:情况一:源文件不存在情况二:目标文件已存在情况三:复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度岗亭环保节能产品采购合同2篇
- 2025年环保空调设备采购与节能改造服务合同
- 北京中医药大学《电化学原理》2023-2024学年第一学期期末试卷
- 2024年辣根粉项目可行性研究报告
- 2025版页岩砖深加工产品定制销售合同3篇
- 二零二五年医院医疗费用结算合同3篇
- 2025版二手车鉴定评估及车辆检测合同3篇
- 项目策划方案模板13篇
- 二零二五年北京市新能源指标租赁与区域合作合同3篇
- 2025版家禽疫病防控禽类采购禽类防疫合同3篇
- 2023年小学五年级下册英语期末试卷分析,菁选3篇
- DL-T 2231-2021 油纸绝缘电力设备频域介电谱测试导则
- 员工月度绩效考核管理办法
- 2023年云南保山电力股份有限公司招聘笔试题库及答案解析
- GB/T 41904-2022信息技术自动化基础设施管理(AIM)系统要求、数据交换及应用
- GB/T 41908-2022人类粪便样本采集与处理
- GB/T 3745.1-1983卡套式三通管接头
- 信息系统运维服务方案
- 简支梁、悬臂梁挠度计算程序(自动版)
- 统编版小学四年级语文上册五六单元测试卷(附答案)
- 商票保贴协议
评论
0/150
提交评论