计算机组成原理及汇编实验报告_第1页
计算机组成原理及汇编实验报告_第2页
计算机组成原理及汇编实验报告_第3页
计算机组成原理及汇编实验报告_第4页
计算机组成原理及汇编实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、. z. . . . . 资料. . .计算机组成原理与汇编课程设计实验报告 目录一、课程设计目标3二、课程设计根本要求3三、课程设计的内容3四、课程设计的要求5五、实验详细设计51.统计文件中各字母出现的频率52.用递归计算50以内Fibonacci 数, 以十进制数输出93.虚拟平台模拟机实验11六、使用说明19七、总结与心得体会19八、参考文献20九、附录201. 字符统计.asm202. 斐波那契数小于50.asm29课程设计目标通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下根底。课程设计的目的

2、和要求:使学生稳固和加强计算机原理与汇编语言课程的根本理论知识。使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。使学生养成良好的编程习惯并掌握调试程序的根本方法。使学生养成规*书写报告文档的能力,撰写课程设计总结报告。通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。二、课程设计的根本要求1、认真查阅资料,独立完成设计任务,每道题都必须上机通过。2、编写预习报告,写好代码,上机调试。 3、独立思考,培养综合分析问题解决问题和调试程序的能力。 4、按时完成课程设计,写出课程设计报告。三、课程设计的内容1、给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输

3、出。2、用递归计算50以内Fibonacci 数, 以十进制数输出.3、虚拟平台的模型机实验,具体要求如下:选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中搭建实验流程:根据原理图1和电路图见附件,将已选择的组件进展连线。输入机器指令:选择菜单中的工具,再选择模型机调试,在指令输入窗口中输入如下指令:00000000000100000000100100100000000010110011000000001011010000000000000000000001本实验设计机器指令程序如下:地址二进制内容二进制助记符说明0000 00000000 0000IN R0INPUT DEVIC

4、E-R00000 00010001 0000ADD 0AH,R0R0+0AH-R00000 00100000 10100000 00110010 0000STA R0,0BHR0-0BH0000 01000000 10110000 01010011 0000OUT 0BH0BH-LED0000 01100000 10110000 01110100 0000JMP 00H00H-PC0000 10000000 00000000 1010运算数据自定0000 1011求和结果这里做的是个加法运算,第一个加数已经存入到内存的0000 1010单元中,第二个加数是需要手工输入的。在实验运行面板中点击运

5、行按钮,选择输入芯片,设置输入的数据后,双击连接输入芯片的单脉冲,这样第二个加数就设置好了。在实验运行面板中双击连续脉冲,模型机便开场工作,观察各个芯片的状态。或者在模型机调试窗口中如图2所示点击指令执行选项卡,在模型机调试窗口中点击下一时钟,模型机机执行到下一个时钟,点击下一微指令,模型机机执行到下一个微指令,点击下一指令,模型机机执行到下一条指令。观察各个芯片的状态,思考模型机的运行原理。四、课程设计的要求1、根据题目内容,查阅资料。2、编写课程设计预习报告。3、编制程序及调试程序。4、分析总结,写出课程设计报告,报告中应该包含程序功能与使用说明、程序功能实现方法说明、如流程图与算法参数说

6、明等内容,设计经历体会总结,源程序清单。 5、实验过程由指导教师监视,听从教师安排和督导。6、每次任务完成后由指导教师逐个的检查实验内容、结果并评分,不符合要求的重写五、实验详细设计1统计文件中各字母出现的频率一、实验原理在程序中,以是否读到ASCII码为0作为字符串末尾完毕的标志;读取文件,并对文件中的字符串进展逻辑判断不同字母之间各自对应的ASCII码,统计字符数。实验目的经过该实验知道如何通过编写汇编程序读取文件并且读取文件中内容;通过分支程序设计来统计字符数,三、实验设计内容读取文件代码段:MOV A*,DATAS MOV DS,A* ;置数据段存放器; MOV D*,OFFSET F

7、NAME MOV A*,3D00H ;读翻开指定文件 INT 21H JNC OPEN ;翻开成功,转 OPENMOV SI,OFFSET ERROR1 ;显示翻开不成功提示信息 CALL DMESS JMP OVER ; OPEN:MOV B*,A* ;保存文件代号GO: CALL READ_CHAR ;从文件中读一个字符 JC READ_ERROR ;如读出错,则转CMP AL,EOF ;读到文件完毕符吗? JZ TYPE_OK CALL PUTCH JMP GO将文件内容推入栈中,并输出:READ_CHAR PROC MOV C*,1 MOV D*,OFFSET BUFFER ;置缓冲区

8、地址MOV AH,3FH ;置功能调用号 INT 21H ;读 JC R2 ;读出错,转CMP A*,C* ;判断文件是否完毕MOV AL,EOF ;假设文件已经完毕,置文件完毕符 R1 ;文件确定已经完毕,转到MOV AL,BUFFER ;文件未完毕,取所读字符R1:CLC R2:RET READ_CHAR ENDP ; DMESS PROC DMESS1:MOV DL,SI INC SI OR DL,DL JZ DMESS2 MOV AH,2 INT 21H JMP DMESS1 DMESS2:RET DMESS ENDP PUTCH PROC PUSH D* MOV DL,AL MOV

9、AH,2 INT 21H POP D* 文件主体局部对所读字符ASCII码进展比拟判断并统计字符数:mov CL,41HLEA DI,ARRAYMOV CH,AL CMP CH,CL ;假设IF5AH(Z),跳转继续比拟 JA HIGHER2 H1:CMP CH,CL JE CHAR ;假设IF=41H(A),CHAR0+ JA LOOP1 ; 假设IF41H(A),跳L1比拟42H(B) LOOP1:INC CL ADD DI,1 JMP H1HIGHER2:mov CL,61HLEA DI,ARRAYCMP CH,CL ;假设IF7AH(Z),跳转继续比拟 JA OTHERH2:CMP C

10、H,CL JE CHAR ;假设IF=61H(a),CHAR0+ JA LOOP2 ; 假设IF61H(a),跳L02比拟62H(b) LOOP2:INC CL ADD DI,1 JMP H2 CHAR:*OR CH,CHMOV CH,DI INC CHmov DI,CH OTHER: INC OTHERS ;OTHERS+ ;比拟完毕四、实验截图2用递归计算50以内Fibonacci 数, 以十进制数输出一、实验目的通过该实验充分了解递归程序的用法二、实验内容三、实验设计内容循环递归代码段主要实现递归调用斐波那契函数MOV A*,F1 ;a*=0ADD A*,F2 ;a*=1 JC E*IT

11、 ;假设有进位则跳出MOV B*,F2 ;b*=1MOV F1,B* ;f1=1MOV F2,A* ;f2=1 CALL OUTPUT ;调用outputMOV DL, ;每个数字后的空格MOV AH,2 INT 21HDEC N JNZ LPE*IT:MOV AH,4CHINT 21H ;返回DOS输出斐波那契数:OUTPUT:MOV B*,10MOV C*,0OL1:MOV D*,0DIV B* ;a*=0,d*=1ADD DL,0;加上30h,使数字3变成字符3PUSH D*INC C* ;C*=0,每次加1CMP A*,0 ;比拟a*=1和0 JNZ OL1MOV AH,2 ;字符输出

12、,要输出的字符已经在dl中OL2: POP D* INT 21H LOOP OL2 RET实验结果3虚拟平台的模型机实验设计1、实验目的掌握模型机的根本原理和构造掌握机器指令与微程序的对应关系;掌握机器指令的执行流程;2、 实验设备74LS181芯片两片,memory 6116一片,微程序控制存储器芯片一片,编译器芯片一片,八位同步计数器芯片一片,ALU_G芯片一片,PC_G芯片一片,74LS273芯片假设干,输入,输出芯片各一片,选择器芯片假设干,连接器芯片假设干,灯泡假设干,开关假设干等。3、环境组成原理虚拟实验室采用的是B/S架构,在客户端电脑上的浏览器地址栏中输入正确的地址进展访问即可

13、。网址为192.168.1.252/pco/Entry.html。4、实验原理图1 模型机示意图图1中所示模型机包括运算器、存储器、微控器、输入设备、输出设备以及存放器。这些部件的动作控制信号都有微控器根据微指令产生。需要特别说明的是由机器指令构成的程序存放在存储器中,而每条机器指令对应的微程序存储在微控器中的存储器中。模型机详细原理见附件。5、实验内容1选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中2搭建实验流程:根据原理图1和电路图见附件,将已选择的组件进展连线。3输入机器指令:选择菜单中的工具,再选择模型机调试,在指令输入窗口中输入如下指令:0000000000010000

14、0000100100100000000010110011000000001011010000000000000000000001 本实验设计机器指令程序如下:地址二进制内容二进制助记符说明0000 00000000 0000IN R0INPUT DEVICE-R00000 00010001 0000ADD 0AH,R0R0+0AH-R00000 00100000 10100000 00110010 0000STA R0,0BHR0-0BH0000 01000000 10110000 01010011 0000OUT 0BH0BH-LED0000 01100000 10110000 011101

15、00 0000JMP 00H00H-PC0000 10000000 00000000 1010运算数据自定0000 1011求和结果这里做的是个加法运算,第一个加数已经存入到内存的0000 1010单元中,第二个加数是需要手工输入的。在实验运行面板中点击运行按钮,选择输入芯片,设置输入的数据后,双击连接输入芯片的单脉冲,这样第二个加数就设置好了。在实验运行面板中双击连续脉冲,模型机便开场工作,观察各个芯片的状态。或者在模型机调试窗口中如图2所示点击指令执行选项卡,在模型机调试窗口中点击下一时钟,模型机机执行到下一个时钟,点击下一微指令,模型机机执行到下一个微指令,点击下一指令,模型机机执行到下

16、一条指令。观察各个芯片的状态,思考模型机的运行原理。图2 模型机调试窗口6、具体过程实现(1) 控制器把PC中的指令地址送往地址存放器AR,并发出读命令。存储器按给定的地址读出指令,经由存储器数据存放器MDR送往控制器,保存在指令存放器IR中。(2) 指令译码器ID对指令存放器IR中的指令进展译码,分析指令的操作性质,并由控制电路向存储器、运算器等有关部件发出指令所需要的微命令。(3) 当需要由存储器向运算器提供数据时,控制器根据指令的地址局部,形成数据所在的存储单元地址,并送往地址存放器AR,然后向存储器发出读命令,从存储器中读出的数据经由存储器数据存放器MDR送往运算器。(4) 当需要由运

17、算器向存储器写入数据时,控制器根据指令的地址局部,形成数据所在的存储单元地址,并送往存储器地址存放器AR,再将欲写的数据存入存储器数据存放器MDR,最后向存储器发出写命令,MDR中的数据即被写入由MAR指示地址的存储单元中。(5) 一条指令执行完毕后,控制器就要接着执行下一条指令。为了把下一条指令从存储器中取出,通常控制器把PC的内容加上一个数值,形成下一条指令的地址,但在遇到转移指令时,控制器则把转移地址送入PC。控制器不断重复上述过程的(1)到(5),每重复一次,就执行了一条指令,直到整个程序执行完毕7、设计结果截图虚拟实验室连线截图:执行第一个指令:执行第二个指令:执行第三个指令:执行第

18、四个指令:. 执行第五个指令:执行第六个指令:六、使用说明两个程序使用汇编语言在Masm for Windows集成实验环境下编写,在MS-DOS模拟平台下运行。使用情况如详细设计所述。七、总结与心得体会为期两周的计算机组成原理与汇编课程设计就完毕了,在这段时间呢,完成了诸多实验题目,解决了许多问题,包括计算机组成与那里和汇编语言。在充实而忙碌的课程设计同时,最重要的还是稳固并进一步学习了像组成原理和汇编这样更接近低层的软硬件知识,而不再是仅仅局限于像C、C+或是Java这样的高级语言开发。理论学习只是一个学习初期阶段,只有经过了亲身实践操作,才能叫是真正掌握了知识技能。就像是这个学期的课程设

19、计初期一样,初次开场汇编课设,我对汇编并不是十分了解,只是简简单单懂得几句语言而已或者说只会读懂程序,做几个题而已。至于如何将它们拼凑到一起组成一个实现一定功能的完整程序,成了我面前巨大的障碍,所以刚开场时,我也是束手无策,毫无头绪。但是通过对教材的复习,查阅相关文献和网络资料,我慢慢懂得并熟悉了这个过程。课程设计完了之后,我才真切意识到,低级的东西并不十分简单,恰恰相反,没有艰辛的付出,没有刻苦的努力,任谁也永远不能攻克它。八、参考文献1.Patric Juola.计算机组成与汇编语言原理.机械工业2.沈美明.IBM-PC汇编语言程序设计.清华大学3.唐朔飞.计算机组成原理.高等教育九、附录

20、1、字符统计.asm:DATAS SEGMENTFNAME DBTEST.T*T,0 ;文件名ERROR1 DBFile not found,07H,0 ;提示信息ERROR2 DBReading error,07H,0 STRING1 DBNumber of $;各类字符提示信息STRING2 DB: $ARRAY DB 26 DUP(0) ;字母OTHERS DB 0 ;其他BUFFER DBEOF DB 035 ;以#完毕 ;1字节的缓冲区、DATAS ENDS;代码段CODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV A*,DATAS MOV

21、DS,A* ;置数据段存放器; MOV D*,OFFSET FNAME MOV A*,3D00H ;读翻开指定文件 INT 21H JNC OPEN ;翻开成功,转 OPENMOV SI,OFFSET ERROR1 ;显示翻开不成功提示信息 CALL DMESS JMP OVER ; OPEN:MOV B*,A* ;保存文件代号GO: CALL READ_CHAR ;从文件中读一个字符 JC READ_ERROR ;如读出错,则转CMP AL,EOF ;读到文件完毕符吗? JZ TYPE_OK CALL PUTCH JMP GOREAD_ERROR:MOV SI,OFFSET ERROR2 C

22、ALL DMESS ; TYPE_OK:MOV AH,3EH INT 21H CALL ENDLINE CALL SHOW OVER: MOV AH,07;为了显示 INT 21H ;为了显示MOV AH,4CH INT 21H ; READ_CHAR PROC MOV C*,1 MOV D*,OFFSET BUFFER ;置缓冲区地址MOV AH,3FH ;置功能调用号 INT 21H ;读 JC R2 ;读出错,转CMP A*,C* ;判文件是否完毕MOV AL,EOF ;设文件已经完毕,置文件完毕符 R1 ;文件确已完毕,转MOV AL,BUFFER ;文件未完毕,取所读字符R1:CLC

23、 R2:RET READ_CHAR ENDP ; DMESS PROC DMESS1:MOV DL,SI INC SI OR DL,DL JZ DMESS2 MOV AH,2 INT 21H JMP DMESS1 DMESS2:RET DMESS ENDP PUTCH PROC PUSH D* MOV DL,AL MOV AH,2 INT 21H POP D* mov CL,41HLEA DI,ARRAYMOV CH,AL CMP CH,CL ;假设IF5AH(Z),跳转继续比拟 JA HIGHER2 H1:CMP CH,CL JE CHAR ;假设IF=41H(A),CHAR0+ JA LO

24、OP1 ; 假设IF41H(A),跳L1比拟42H(B) LOOP1:INC CL ADD DI,1 JMP H1HIGHER2:mov CL,61HLEA DI,ARRAYCMP CH,CL ;假设IF7AH(Z),跳转继续比拟 JA OTHERH2:CMP CH,CL JE CHAR ;假设IF=61H(a),CHAR0+ JA LOOP2 ; 假设IF61H(a),跳L02比拟62H(b) LOOP2:INC CL ADD DI,1 JMP H2 CHAR:*OR CH,CHMOV CH,DI INC CHmov DI,CH OTHER: INC OTHERS ;OTHERS+ ;比拟完

25、毕 RET PUTCH ENDP SHOW PROC LEA SI,ARRAYMOV DI,41HLOOP3:LEA D*,STRING1 ;字符串的输出Number of MOV AH,09H INT 21H MOV D*,DIMOV AH,02H INT 21HLEA D*, STRING2 ;字符串的输出MOV AH,09H INT 21H *OR A*,A* MOV Al,SI ;将统计的数字送A* ADD SI,1 CALL DISPLAY ;调用输出两位数字的子程序 CALL ENDLINE INC DI CMP DI,5BH LOOP3 MOV AH,4CH INT 21H RET SHOW ENDP ENDLINE PROC NEAR;控制输出格式,输出回车换行子程序MOV AH,02H MOV DL,0AH ; INT 21H ;输出换行符MOV AH,02H MOV DL,0DH ; INT 21H ;输出回车符 RET ENDLINE ENDP DISPLAY PROC NEAR;输出两位数字

温馨提示

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

评论

0/150

提交评论