计算机组成原理及汇编实验报告.docx

上传人:rrsccc 文档编号:9315028 上传时间:2021-02-18 格式:DOCX 页数:13 大小:479.11KB
返回 下载 相关 举报
计算机组成原理及汇编实验报告.docx_第1页
第1页 / 共13页
计算机组成原理及汇编实验报告.docx_第2页
第2页 / 共13页
计算机组成原理及汇编实验报告.docx_第3页
第3页 / 共13页
计算机组成原理及汇编实验报告.docx_第4页
第4页 / 共13页
计算机组成原理及汇编实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《计算机组成原理及汇编实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理及汇编实验报告.docx(13页珍藏版)》请在三一文库上搜索。

1、中南大学计算机组成原理及汇编实验报告姓 名: 学 号: 专业班级: 指导教师: 学 院: 信息科学与工程学院 计算机组成原理实验实验1 总线基本实验一、实验目的(1)掌握静态存储随机存储器RAM的工作特性(2)掌握静态存储随机存储器RAM的读写方法二、实验设备74LS374(一片),74LS245(一片),74LS273(一片),静态存储器MEMORY 6116(一片),8位数据排线(一片),与门(两片),与非门(一片),单脉冲(三片),开关若干,灯泡若干。三、实验原理总线传输实验框图如图4.1所示,它将几种不同的设备挂至总线上,有存储器、输入设备、输出设备、寄存器。这些设备都需要有三态输出控

2、制,按照传输要求恰当有序的控制它们,就可实现总线信息传输。总线传输实验框图总线基本实验要求如下:根据挂在总线上的几个基本部件,设计一个简单的流程。(1)输入设备将一个数输入R0 寄存器。(2)输入设备将另一个数输入地址寄存器。(3)将R0 寄存器中的数写入到当前地址的存储器中。(4)将当前地址的存储器中的数用LED 数码管显示。四、实验步骤(1) 选择实验设备:根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。搭建实验流程:将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。搭建好的实验流程图如图4.3所示。(2)初始化各芯片的控制信号,仔细检查无误

3、后点击 【电源开/关】按钮接通电源。总线基本实验流程图(3)实验的具体操作步骤如图4.2 所示。首先应关闭所有三态门(SW-B=1,CS=1,R0-B=1,LED-B=1),并将关联的信号置为:LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED)=1。然后参照如下操作流程,先给数据开关置数,打开数据输出三态门,开关LDR0置1,并双击旁边的单脉冲,使产生一个上升沿将数据输入到R0 中;然后继续给数据开关置数,开关LDAR置1 ,并双击旁边的单脉冲,使产生一个上升沿将数据输入到AR 中;关闭数据开关三态门 ,打开R0 寄存器输出控制(开关LDR0和开关R0-B都置0),使存储器处于

4、写状态(W/R=0、CS=0)将R0 中的数写到存储器中;关闭存储器片选,关闭R0 寄存器输出(开关R0-B置0),使存储器处于读状态(W/R=1、CS=0)。 实验步骤图五、实验结果及结果分析实验截图六、实验心得体会通过本次本次实验:(1)了解了一些逻辑器的组成结构(2)掌握一些逻辑器的工作原理(3)验证了各逻辑器件的组合功能(4)了解了总线和各个器件之间的工作过程。 通过亲自动手,能更好的理解逻辑器件的组成及功能。同时实验中遇到各种问题,解决后,让自己的知识更加牢固。同时也意识到自己的不足,需要更加的努力!汇编语言实验实验2 汇编语言编程实验一、实验目的(1)掌握循环程序的设计方法(2)掌

5、握汇编语言源程序的编辑、汇编、连接及调试过程。(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。(4)学会针对不同的问题,选用不同的组织循环的方法。二、实验设备PC机及masm for windows软件。三、实验要求(1)编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。(2)利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。(3)汇编语言上机操作,掌握循环程序的过程和汇编实现原理,进一步熟练掌握DEBUG操作指令以及汇编语言源程序的编辑、汇编、连接及调试过程。四、实验内容实验一:编程计算1100的和实验二:编程计算 S=1+2*3+3*4+

6、4*5+N*(N+1),N由用户输入,将结果在屏幕显示实验三:编程计算SUM=1!+2!+3!+4!+5!,将结果输出,需要有子程序五、程序源代码实验一程序代码如下:DATA SEGMENTSUM1 DW 0,13,10,$DATA ENDSSTACK1 SEGMENTS DB 1000 DUP( 0 )STACK1 ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK1START: MOV AX, DATAMOV DS, AXMOV AX, 0MOV CX, 0 LOOP1: ADD AX, CXINC CXCMP CX, 101JL LOOP1

7、MOV SUM1, AXlea di ,sum1call cvmov ah,9 lea dx,sum1int 21h jmp ok cv: push cx push dx xor cx,cx mov si,10 s0: xor dx,dx inc cx div si push dx cmp ax,0 jnz s0 s1: pop dx add dl,0 mov byte ptr di,dl inc di loop s1 mov al,20h s2: cmp byte ptr di,0 jz s3 cmp byte ptr di,43h jz s3 mov byte ptr di,al inc

8、di jmp s2s3: pop dx pop cx ret ok: MOV AH,4CH INT 21H CODE ENDSEND START实验二程序代码如下:DATAS SEGMENT s dw ?;此处输入数据段代码 n dw ? DATAS ENDSSTACKS SEGMENT dw 64 dup(?);此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: loop1: clc ;此指令清除cf标志位cf=0 mov ah,1h ;通过给AH寄存器赋值,然后调用INT 21H指令, ;计算

9、机就会根据AH寄存器中的值执行相应的操作 ;其中1H是键盘输入并回显,AL中有输入字符 int 21h cmp al,0dh ;比较是不是回车键,不改变操作数,只改变标志位,若ZF=1,则表示两数相等 je print ;ZF1,转至标号处执 表示输入完毕 cmp al,0 jz rotate ;ZF1,转至标号处执 stc ;此指令设置cf为1rotate: rcl bx,1 ;注意这里是带进位左移,程序的思想所在 jmp loop1 ;无条件转移print: mov n,bx MOV AX,DATAS MOV DS,AX mov bx,0001h mov dl,02hlop2:mov al

10、,bl inc dl;加1 mul dl;无符号数乘法AX=oprd*al add bx,ax cmp ax,n;与n比较 jna lop2;不高于转移 mov s,bx mov ch,4 mov cl,4lop1:rol bx,cl mov dl,bl and dl,0Fh cmp dl,09h jbe next;低于等于转移 add dl,7next:add dl,30h mov ah,2 int 21h dec ch jnz lop1;非零转移 MOV AH,4CH INT 21HCODES ENDS END START实验三程序代码如下:DATA SEGMENT OUTPUT_TIPS

11、 DB 10, 13, 1! + 2! + 3! + 4! + 5! = $ NNN DW 1DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AX MOV BX, 2 ;0、1 的阶乘都是 1LOP: MOV AX, BX MOV CX, AX CALL FACTOR ;用递归方法计算阶乘 ADD AX, NNN MOV NNN, AX INC BX CMP BX, 6 JNE LOP MOV AX, NNNDISP: PUSH AX MOV DX, OFFSET OUTPUT_TIPS MOV

12、AH, 9 ;显示字符串. INT 21H POP AX MOV BX, 10 MOV CX, 0L1: MOV DX, 0 DIV BX PUSH DX INC CX AND AX, AX JNZ L1L2: POP DX ADD DL, 48 MOV AH, 2 INT 21H LOOP L2EXIT: MOV AH, 4CH INT 21H FACTOR PROC NEAR ;阶乘. DEC CX ;CX=28 CMP CX, 1 ;=1 ? JE FACTOR_E ;为1就退出 PUSH CX ;非1压栈保存 CALL FACTOR ;递归调用,把CX一次次的减一 POP CX ;弹出

13、一个个递减的数值 MUL CX ;乘到AXFACTOR_E: RET ;AX=(28)!FACTOR ENDP ;简洁明了,无与伦比CODE ENDS END START六、运行结果实验一调试实验一运行结果实验二调试实验二运行结果实验三调试实验三运行结果七、实验总结通过本次上机实验,学习了数值转换,循环,中断,分支结构等知识点。在课堂中听到的关于汇编语言中的循环和分支程序的知识点,我们将它实践化了,使得我们更深一步的认识和理解了循环程序和分支程序。在实验中,暴漏出来的问题就是,对于一些符号它所代表的是什么还是不熟悉,导致程序出现问题,因此,以后还要多看书,多练习,加强这方面的记忆。这次实验所学

14、到的印象最深的就是LOOP循环以及有符号数跳转JLE。总体上来讲,有些知识点理解的还不到位,希望通过以后的练习能加强对这些知识点的理解。实验过程中,遇到很多问题,比如程序一的编写,基本上都是学习书本以及依靠书本多做题才编出来的,仅有的几次上机实验,要抓紧时间学习和交流,时间挺少的。在今后的学习和生活中,我们都需要相互学习、相互交流,共同进步。学习是一个循序渐进的过程。通过这次实验,使我了解到运行调试程序的不易,今后一定更加努力,把程序做到最好!对于不足之处,会积极改正。掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。加深对循环和分支程序结构的理解,掌握循环和分支结构程序设计的方法,熟练汇编语言程序上机调试的方法和过程。能够独立自主的编辑代码解决一些小问题,对汇编有了初步的了解。但仍有很多需要学习的地方!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1