计算机组成原理与汇编实验报告
计算机组成实验报告
计算机组成实验报告计算机组成实验报告(共3篇)篇一:《计算机组成与结构》实验报告11 .实验目的:1).学习和了解TEC-2000 十六位机监控命令的用法;2).学习和了解TEC-2000 十六位机的指令系统;3).学习简单的TEC-2000 十六位机汇编程序设计;2.实验内容:1).使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2).使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用G 命令连续运行该程序,用T、P 命令单步运行并观察程序单步执行情况;3、实验步骤1).关闭电源,将大板上的COM1 口与PC 机的串口相连;2).接通电源,在PC 机上运行PCEC.EXE 文件,设置所用PC 机的串口为“1”或“2”, 其它的设置一般不用改动,直接回车即可;3).置控制开关为00101(连续、内存读指令、组合逻辑、16 位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;4).按一下“RESET”按键,再按一下“START”按键,主机上显示:TEC-2000 CRT MONITOR Version 1.0 April 2001Computer Architectur Lab.,Tsinghua University Programmed by He Jia >5).用R 命令查看寄存器内容或修改寄存器的内容a.在命令行提示符状态下输入:R↙;显示寄存器的内容图片已关闭显示,点此查看图片已关闭显示,点此查看b.在命令行提示符状态下输入:R R0↙;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格主机显示:寄存器原值:_在该提示符下输入新的值,再用R 命令显示寄存器内容,则R0 的内容变为0036。
图片已关闭显示,点此查看6).用D 命令显示存储器内容在命令行提示符状态下输入:D 2000↙会显示从2000H 地址开始的连续128 个字的内容;连续使用不带参数的 D 命令,起始地址会自动加128(即80H)。
计算机组成原理实验报告
计算机组成原理实验报告实验目的,通过本次实验,深入了解计算机组成原理的相关知识,掌握计算机硬件的基本组成和工作原理。
实验一,逻辑门电路实验。
在本次实验中,我们学习了逻辑门电路的基本原理和实现方法。
逻辑门电路是计算机中最基本的组成部分,通过逻辑门电路可以实现各种逻辑运算,如与门、或门、非门等。
在实验中,我们通过搭建逻辑门电路并进行实际操作,深入理解了逻辑门的工作原理和逻辑运算的实现过程。
实验二,寄存器和计数器实验。
在本次实验中,我们学习了寄存器和计数器的原理和应用。
寄存器是计算机中用于存储数据的重要部件,而计数器则用于实现计数功能。
通过实验操作,我们深入了解了寄存器和计数器的内部结构和工作原理,掌握了它们在计算机中的应用方法。
实验三,存储器实验。
在实验三中,我们学习了存储器的原理和分类,了解了不同类型的存储器在计算机中的作用和应用。
通过实验操作,我们进一步加深了对存储器的认识,掌握了存储器的读写操作和数据传输原理。
实验四,指令系统实验。
在本次实验中,我们学习了计算机的指令系统,了解了指令的格式和执行过程。
通过实验操作,我们掌握了指令的编写和执行方法,加深了对指令系统的理解和应用。
实验五,CPU实验。
在实验五中,我们深入了解了计算机的中央处理器(CPU)的工作原理和结构。
通过实验操作,我们学习了CPU的各个部件的功能和相互之间的协作关系,掌握了CPU的工作过程和运行原理。
实验六,总线实验。
在本次实验中,我们学习了计算机的总线结构和工作原理。
通过实验操作,我们了解了总线的分类和各种总线的功能,掌握了总线的数据传输方式和时序控制方法。
结论:通过本次实验,我们深入了解了计算机组成原理的相关知识,掌握了计算机硬件的基本组成和工作原理。
通过实验操作,我们加深了对逻辑门电路、寄存器、计数器、存储器、指令系统、CPU和总线的理解,为进一步学习和研究计算机组成原理奠定了坚实的基础。
希望通过不断的实践和学习,能够更深入地理解和应用计算机组成原理的知识。
《计算机组成原理》实验报告一
《计算机组成原理》实验报告一一、实验目的:编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
通过本次实验, 学习、掌握运行汇编程序的相关知识。
1、二、实验内容:2、熟悉实验用微机的软、硬件配置(1)硬件: Intel Celeron 500GHz CPU、128M内存(8M作共享显存)、intel810芯片主板、集成i752显卡、maxtro20G硬盘、ps/2接口鼠标、PS/2接口键盘。
(2)软件:DOS 操作系统Windows98 seMASM汇编语言程序3、熟悉运行汇编语言所需的应用程序汇编程序使MASM连接程序使用LINK程序调试程序使用DEBUG程序4、熟悉汇编语言源程序上机操作过程(1)编辑源文件(选择可使用的文本编辑器)(2)汇编源程序文件(3)连接目标文件(4)运行可执行文件5、汇编操作举例用edit编辑myprog.asm文件;(见下图)用MASM.exe编译myprog.asm生成myprog.obj文件;C:\masm\bin> masm.exe由图中可以看出:0 个警告错误0个严格错误汇编通过, 生成mygrog.obj目标文件(如果有严格错误, 汇编不能通过, 必须返回编辑状态更改程序。
)用link.exe命令链接myhprog.obj生成myprog.exe文件!C:\masm\bin> link.exeC:\masm\bin> myprog.exe运行程序结果为:屏幕显示“Hi! This is a dollar sign terminated string.”三、实验总结:1.可以在DOS或Windows状态编辑汇编源程序2.可以使用EDIT 或记事本编辑汇编源程序, 源程序必须以.asm为扩展名。
在记事本中保存文件时, 可以加双引号“myprog.asm”,文件名就不会出现myprog.asm.txt的错误3.熟悉相关的DOS 命令cd 进入子目录mkdir 建立子目录xcopy *.* /s 拷贝当前目录下所有文件及子目录format a: 格式化A盘4.在Windows 系统下运行汇编程序, 有时会有问题, 建议大家熟悉DOS命令,DOS编辑工具, 在DOS状态下运行汇编程序。
计算机组成原理与汇编实验报告
计算机组成原理与汇编实验报告Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT计算机组成原理与汇编课程设计实验报告目录一、课程设计目标 (3)二、课程设计基本要求 (3)三、课程设计的内容 (3)四、课程设计的要求 (5)五、实验详细设计 (5)1.统计文件中各字母出现的频率 (5)2.用递归计算50以内Fibonacci 数, 以十进制数输出 (9)3.虚拟平台模拟机实验 (11)六、使用说明 (19)七、总结与心得体会 (19)八、参考文献 (20)九、附录 (20)1.字符统计.asm (20)2.斐波那契数(小于50).asm (29)一、课程设计目标通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。
课程设计的目的和要求:1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。
2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。
3、使学生养成良好的编程习惯并掌握调试程序的基本方法。
4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。
5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。
二、课程设计的基本要求1、认真查阅资料,独立完成设计任务,每道题都必须上机通过。
2、编写预习报告,写好代码,上机调试。
3、独立思考,培养综合分析问题解决问题和调试程序的能力。
4、按时完成课程设计,写出课程设计报告。
三、课程设计的内容1、给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出。
2、用递归计算50以内Fibonacci 数, 以十进制数输出.3、虚拟平台的模型机实验,具体要求如下:1)选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中2)搭建实验流程:根据原理图1和电路图(见附件),将已选择的组件进行连线。
计算机组成原理与汇编实验报告
计算机组成原理与汇编实验报告姓名:学号:学院:信息科学与工程学院班级:实验1 存储器实验➢实验目的⏹掌握静态存储随机存储器RAM的工作特性⏹掌握静态存储随机存储器RAM的读写方法➢实验设备74LS273(一片),静态存储器MEMORY 6116(一片),与门(一片),与非门(一片),单脉冲(一片),开关若干,灯泡若干➢实验原理在微机系统中,常用的静态RAM 有6116、6264、62256 等。
在本实验中使用的是6116。
6116 为2K╳8 位的静态RAM,其逻辑图3.1如下:图3.1 6116逻辑图其中A0~10 为11 根地址线,I/O0~7 为8 根数据线,CS 为片选端,OE 为数据输出选通端,WR 为写信号端。
其工作方式见下表3-1:一片6116(2K×8)构成,其数据线接至数据总线,地址线由地址锁存器(74LS273)给出。
地址灯AD0—AD7 与地址线相连,显示地址线内容。
数据开关经一三态门(74LS245)连至数据总线,分时给出地址和数据。
图3.2 存储器实验原理图因地址寄存器为8 位,接入6116 的地址A7—A0,而高三位A8—A10 接地,所以其实际容量为256 字节。
6116 有三个控制线:CE(片选线)、OE(读线)、WE(写线)。
当片选有效(CE=0)时,OE=0时进行读操作,WE=0 时进行写操作。
本实验中将OE 常接地,在此情况下,当CE=0、WE=0 时进行读操作,CE=0、WE=1 时进行写操作,其写时间与T3 脉冲宽度一致。
控制信号SW-B 为低电平有效,控制信号LDAR 为高电平有效。
➢实验步骤1. 选择实验设备:根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
搭建实验流程:将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。
搭建好的实验流程图如图 3.3所示图3.3 存储器实验流程图2. 初始化各芯片的控制信号,仔细检查无误后点击【电源开/关】按钮接通电源。
计算机组成原理与汇编实验报告.
计算机组成原理与汇编实验报告.计算机组成原理与汇编课程设计实验报告⽬录⼀、课程设计⽬标 (3)⼆、课程设计基本要求 (3)三、课程设计的内容 (3)四、课程设计的要求 (5)五、实验详细设计 (5)1.统计⽂件中各字母出现的频率 (5)2.⽤递归计算50以内Fibonacci 数, 以⼗进制数输出 (9)3.虚拟平台模拟机实验 (11)六、使⽤说明 (19)七、总结与⼼得体会 (19)⼋、参考⽂献 (20)九、附录 (20)1.字符统计.asm (20)2.斐波那契数(⼩于50).asm (29)⼀、课程设计⽬标通过课程设计使学⽣综合运⽤所学过的计算机原理与汇编知识,增强解决实际问题的能⼒,加深对所学知识的理解与掌握,提⾼软硬件开发⽔平,为今后打下基础。
课程设计的⽬的和要求:1、使学⽣巩固和加强《计算机原理与汇编语⾔》课程的基本理论知识。
2、使学⽣掌握汇编语⾔程序设计的⽅法及编程技巧,正确编写程序。
3、使学⽣养成良好的编程习惯并掌握调试程序的基本⽅法。
4、使学⽣养成规范书写报告⽂档的能⼒,撰写课程设计总结报告。
5、通过查阅⼿册和⽂献资料,培养学⽣独⽴分析问题和解决问题的能⼒。
⼆、课程设计的基本要求1、认真查阅资料,独⽴完成设计任务,每道题都必须上机通过。
2、编写预习报告,写好代码,上机调试。
3、独⽴思考,培养综合分析问题解决问题和调试程序的能⼒。
4、按时完成课程设计,写出课程设计报告。
三、课程设计的内容1、给定⼀个英⽂ASCII码⽂件,统计⽂件中英⽂字母的频率,以⼗进制形式输出。
2、⽤递归计算50以内Fibonacci 数, 以⼗进制数输出.3、虚拟平台的模型机实验,具体要求如下:1)选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中2)搭建实验流程:根据原理图1和电路图(见附件),将已选择的组件进⾏连线。
3)输⼊机器指令:选择菜单中的“⼯具”,再选择“模型机调试”,在指令输⼊窗⼝中输⼊如下指令:00000000000100000000100100100000000010110011000000001011010000000000000000000001本实验设计机器指令程序如下:4)这⾥做的是个加法运算,第⼀个加数已经存⼊到内存的0000 1010单元中,第⼆个加数是需要⼿⼯输⼊的。
汇编实验报告(详细版)
计算机组成与汇编语言(实验报告)内容: 实验一、六、七、八院系专业:计算机学院计算机科学与技术姓名:xxxxxxxxx学号:*******xxxxx完成时间:2012年12月1日计算机组成与汇编语言实验报告printf("输入的二进制数不正确!!");break;}}}if(a[15]=='1')s++;for(i=1;i<16;i++){if(a[15-i]=='1')s+=(1<<i);}printf("二进制: ");puts(a);printf("对应的十进制为: ");printf("%d\n",s);}程序1运行结果:实验情况与体会:运行过程中出现过不能判断是否输错的情况以及权位判断有误等情况,经过思考和修改后修改正确,说明理解好二进制与十进制之间的转换过程很重要。
编程过程中主要碰到的问题是,不够十六位的时候要在前面补零。
转换方法主要是除二求余的方法。
注:篇幅不够,可以另外附页。
计算机组成与汇编语言实验报告姓名xxxx 学号2011004xxxx 计分专业软件工程班级xxxxx 实验日期2012年 12 月 1日实验名称实验六分支结构程序设计实验目的●熟悉有符号定点数的表示。
●掌握原码、补码、反码之间的相互转换程序设计。
实验内容说明:该程序中X=23,Y=45,他们之差的绝对值为22,用16进制表示为0016H,即图中显示的结果2.调试程序2:DATA SEGMENTADD AL, 07HLP4: ADD AL, 30H ;将低四位转化为相应的ASCII码并以字符形式输MOV DL, ALMOV AH, 2INT 21HMOV AH, 4CHINT 21HCODE ENDSEND START上机运行该程序并检查运行结果是否正确。
上机实验过程:说明:求出三个数里面的最大数73;3. 编写程序1:编程实现从键盘输入一位数字,判断其奇偶性,并在屏幕上输出一个标志,若为奇数,则输出1,否则输出0。
汇编计算机组成实验报告计科07 吴加跃
计算机组成原理与汇编实验报告班级:计科07学号:0909092807姓名:吴加跃实验一:冒泡排序一、实验目的熟练掌握汇编语言编写程序,熟悉编程环境,掌握课堂所学习的编程语言。
并且熟悉运用冒泡算法。
实现对已知数据的冒泡排序。
二、实验内容1、用记事本或各类编辑器编写一个冒泡排序的汇编程序。
2、对编写的程序进行编译,运行得出正确结果。
三、实验步骤1.在记事本中输入以下代码:DATAS SEGMENT ;数据段DATA1 DB 31H,32H,38H,34H,37H ;定义DATA1为被加数DATA2 DB 34H,35H,39H,37H,31H ;定义DATA2为加数DATAS ENDS STACKS SEGMENT ;堆栈段STA DB 64 DUP(0) ;(伪指令)为STA预留64个字节的存储空间SP_TOP DB 0 ;定义SP_TOP单元的数值为0STACKS ENDS CODES SEGMENT ;代码段ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX ; 设置数据段 MOV AX,STACKSMOV SS,AX ; 设置堆栈段LEA SP,SP_TOP ; 设置栈顶指针 MOV SI,OFFSET DATA1 ;把DATA1偏移量地址赋予SI MOV BX,05 ;CALL DISPL ; 显示被加数CALL CRLF ; 回车、换行MOV SI,OFFSET DATA2 ; 把DATA2偏移量地址赋予SIMOV BX,05 ;CALL DISPL ; 显示加数CALL CRLF ; 回车、换行MOV DI,OFFSET DATA1 ; 把DATA1偏移量地址赋予DICALL ADDA ;调用ADDA子程序,实行加法运算 MOV BX,05 ;CALL DISPL ; 显示结果CALL CRLF ; 回车、换行MOV AX,4C00H ;INT 21H ;调用DOS21H功能,返回 CRLF PROC NEAR ;回车、显示功能过程定义,属性为NEARMOV DL,0DH ;把回车的ASCII码0DH传给DLMOV AH,02H ;送DOS 的中断调用功能号INT 21H ; DOS 的中断调用 MOV DL,0AH ; 把换行的ASCII码0AH传给DLMOV AH,02H ; 送DOS 的中断调用功能号INT 21H ; DOS 的中断调用RET ; 返回CRLF ENDP ;完成过程定义 DISPL PROC NEAR ;显示功能过程定义,属性为NEAR DSL: MOV AH,02 ;送显示功能号MOV DL,[SI+BX-1] ;显示字符串中一字符INT 21H ; DOS 的中断调用DEC BX ;BX减1,修改偏移量JNZ DSL ;如果BX未减到零,跳到DSL执行指令RET ;返回DISPL ENDP ;完成显示功能子程序定义 ADDA PROC NEAR ;实行加法运算子程序过程定义,属性为NEARMOV DX,SIMOV BP,DIMOV BX,05 TRAN_HEX: SUB BYTE PTR[SI+BX-1],30H ;把ASCII码数转化为十六进制SUB BYTE PTR[DI+BX-1],30HDEC BX ; BX减1,修改偏移量JNZ TRAN_ HEX ; 如果BX未减到零,跳到TRAN_ HEX执行指令MOV SI,DXMOV DI,BPMOV CX,05 ; 包括进位,共5位CLC ;进位标志位CF清零(clear carry flag)THE_ADD: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ; 带进位相加,把结果存在AXAAA ;进行AAA调整,非结合BCD码的加法调整MOV [SI],AL ; 结果送被加数区INC SI ;SI加1INC DI ;DI加1(指向下一位)LOOP THE_ADD ;循环MOV SI,DXMOV DI,BPMOV BX,05 TRAN_ASCI: ADD BYTE PTR[SI+BX-1],30HADD BYTE PTR[DI+BX-1],30H;使用PTR转换属性并相加,将十六进制数转化为ASCII表示DEC BX ; BX减1,修改偏移量JNZ TRAN_ASCI ; 如果BX未减到零,跳到TRAN_ASCI 执行指令RET ;返回ADDA ENDP ;加法子程序定义完成 CODES ENDS ;代码段完成END START2.在cmd窗口dos环境中对上述排序程序进行编译,运行。
计算机组成原理实验报告
计算机组成原理实验报告引言计算机组成原理是计算机科学与技术的基础课程之一,通过实验可以更好地理解和掌握计算机的组成和工作原理。
本文将结合实验的过程和结果,详细论述计算机组成原理的一些关键概念和实际应用。
一、实验目的本次实验的目的是通过搭建一个简单的计算机系统,深入了解计算机的各个组成模块,如中央处理器(CPU)、存储器、输入输出设备等,并验证计算机的基本工作原理。
二、实验内容本次实验分为两个部分,第一部分是计算机系统的搭建,包括CPU的设计与实现、存储器的设计与实现等;第二部分是对已搭建的系统进行功能测试,包括寄存器的读写、指令的执行等。
1. CPU的设计与实现CPU是计算机的核心处理单元,它负责执行各种指令,并控制计算机的运行状态。
在本次实验中,我们采用了冯·诺依曼结构的单周期CPU设计,包括指令寄存器、算术逻辑单元、控制单元等组成部分。
通过在实验中的操作和执行,我们深入理解了指令的编码方式、运算的过程等。
2. 存储器的设计与实现存储器是计算机系统中的主要组成部分,用于存放指令和数据。
在本次实验中,我们设计了一个简单的存储器,采用了随机存取存储器(RAM)的结构。
通过实验中的存储器读写操作,我们了解了存储器的寻址方式、数据的存取过程等。
三、实验结果与分析经过实验的搭建和测试,我们成功完成了计算机系统的建设,并验证了其基本功能。
在测试过程中,我们发现了一些问题和改进之处,例如CPU的时钟频率过低导致指令执行速度较慢,存储器的容量不足等。
通过对这些问题的研究和分析,我们能够进一步优化和改进计算机系统的性能。
四、实验心得体会通过本次实验,我进一步加深了对计算机组成原理的理解和掌握。
实验中我不仅学到了理论知识,还通过动手搭建和操作实际的计算机系统,加深了对计算机组成原理的实际应用的理解。
同时,我也意识到计算机的设计和实现是一个综合性强的工程,需要考虑多方面的问题,如硬件的选择与优化、指令的设计与调度等。
计算机组成原理实验报告精品9篇
计算机组成原理实验报告课程名称计算机组成原理实验学院计算机专业班级学号学生姓名指导教师20年月日实验一:基础汇编语言程序设计实验1实验目的●学习和了解TEC-XP+教学实验监控命令的用法;●学习和了解TEC-XP+教学实验系统的指令系统;●学习简单的TEC-XP+教学实验系统汇编程序设计。
2实验设备及器材●工作良好的PC机;●TEC-XP+教学实验系统和仿真终端软件PCEC。
3实验说明和原理实验原理在于汇编语言能够直接控制底层硬件的状态,通过简单的汇编指令查看、显示、修改寄存器、存储器等硬件内容。
实验箱正如一集成的开发板,而我们正是通过基础的汇编语言对开发板进行使用和学习,过程中我们不仅需要运用汇编语言的知识,还需要结合数字逻辑中所学的关于存储器、触发器等基本器件的原理,通过串口通讯,实现程序的烧录,实验箱与PC端的通讯。
4实验内容1)学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC;2)学习使用WINDOWS界面的串口通讯软件;3)使用监控程序的R命令显示/修改寄存器内容、D命令显示存储内容、E命令修改存储内容;4)使用A命令写一小段汇编程序,U命令反汇编输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。
5实验步骤1)准备一台串口工作良好的PC机器;2)将TEC-XP+放在实验台上,打开实验箱的盖子,确定电源处于断开状态;3)将黑色的电源线一段接220V交流电源,另一端插在TEC-XP+实验箱的电源插座里;4)取出通讯线,将通讯线的9芯插头接在TEC-XP+实验箱上的串口"COM1"或"COM2"上,另一端接到PC机的串口上;5)将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,再找个实验中开关应置为001100(连续、内存读指令、组合逻辑、联机、16位、MACH),6)控制开关的功能在开关上、下方有标识;开关拨向上方表示"1",拨向下方表示"0","X"表示任意,其他实验相同;7)打开电源,船型开关盒5V电源指示灯亮;8)在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为"1"或"2",其他的设置一般不用改动,直接回车即可; (8)按一下"RESET"按键,再按一下"START"按键,主机上显示:6实验截图及思考题【例3】计算1到10的累加和。
计算机组成原理实验一报告
实验(一)基础汇编语言程序设计1、实验目的1.学习和了解TEC-XP教学实验系统监控命令的用法;2.学习和了解TEC-XP教学实验系统的指令系统;3.学习简单的TEC-XP教学实验系统汇编程序设计。
2、实验内容1、学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC。
2、使用监控程序R命令显示修改寄存器的内容,D命令显示寄存器的内容,E命令修改存储器的内容。
3、使用A命令写一段小程序,U命令反汇编刚输入的程序,使用G命令连续运行该程序,用T,P命令单步运行并观察程序单步执行情况。
3、实验步骤1.用R命令查看寄存器内容或修改寄存器的内容。
2.用D命令显示存储器内容。
3.用E命令修改存储器内容。
4.用D命令显示这几个单元的内容。
5.用A命令键入一段汇编源程序1)在命令行提示符状态下输入:2)用U命令反汇编刚输入的程序3)用G命令运行前面刚键入的源程序4)用P或T命令,单步执行这段程序,观察指令执行结果6.举例编写汇编程序,用“A”命令输入,运行并观察结果1)例1:设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。
1>在命令行提示符状态下输入:2>用“G”命令运行程序在命令行提示符状态下输入:G 2000执行上面输入的程序。
光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。
2)例2:设计一个小程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。
1>在命令行提示符状态下输入:2>用“G”命令运行程序在命令行提示符状态下输入:G 2020:例二【思考题】类似的,若要求在终端屏幕上输出“A”“Z”共26个英文字母,应如何修改例一中给出的程序,请验证之。
3)例3:从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇数字符结束输入过程。
1>在命令行提示符状态下输入:2>在命令行提示符状态下输入:G 2040光标闪烁等待键盘输入,若输入0~9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。
计算机组成原理和汇编语言实验报告
计算机组成原理和汇编语言实验报告专业班级:计算机0801班实验一、汇编:冒泡排序1、实验内容:定义一个字数组序列:1567,25,46,4560,678,1234,32540。
用冒泡排序对该数组由小到大排序,并将排序结果以十进制数字的形式在屏幕上显示出来。
2、实验原理:程序首先定义了要排序的数组,然后对其在原数组内进行冒泡排序。
冒泡排序是基于交换排序的一种算法,它依次两两比较待排序的元素,若为逆序则进行交换。
每趟冒泡都将待排元素序列中的最大量交换到最后位置。
冒泡过程共需进行n(n-1)/2次比较,直到全部元素有序为止。
数组有序以后,进行输出的工作。
依次从小到大,将元素转换为十进制数的ASCII码值来输出,并在输出每个数时,增加输出回车换行来使输出结果清晰。
3、实验代码:;-------------------------PROGRAM BEGINS---------------------------;----------------------------DEFINE DS-------------------------------DATA SEGMENTTIME DW 0 ;THE LOOP TIME OF THE OUTER LOOPCHU DW 10 ;USED TO CONVERT THE NUM TO DECIMAL DTY DW 1567,25,46,4560,678,1234,32540 ,'$' ;DEFINE THE ARRARYRESULT DB ?DATA ENDS;-----------------------------DEFINE CS-----------------------------CODE SEGMENT "CODE"ASSUME CS:CODE ,DS:DATASTART:MOV AX,DATAMOV DS,AXAGAIN:MOV CX, 6 ;THE LOOP NUM OF THE INER LOOP MOV BP,12 ;NUM OF THE BYTESAGAIN1:MOV AX,DTY[BP]CMP DTY[BP-2],AX ;CMP WITH THE FORMER BYTEJBE NEXT ;JMP IF BELOW OR EQUALXCHG AX,DTY[BP-2] ;IF ABOVE,THEN CHANGEXCHG AX,DTY[BP]NEXT:SUB BP,2 ;POINT TO THE FORMER ONEDEC CXCMP CX,TIME ;IS IT DONE?JE NEXT1 ;DONEJMP AGAIN1 ;NOT DONE YETNEXT1:INC TIMECMP TIME,6 ;IS IT DONE?JE NEXT3 ;DONEJMP AGAIN ;NOT DONE YETNEXT3:MOV TIME,0 ;RENEW THE DATAMOV BP,0CHANGE:MOV RESULT[5],13 ;FINISH OF THE NUMMOV RESULT[6],10MOV RESULT[7],'$'MOV AX,WORD PTR DTY[BP] ;THE DW TO OUTPUTMOV CX,5 ;LOOP NUMMOV BX,4 ;TWO BITS * 4 =WORD CHANGE1:MOV DX,0DIV CHU ;DX:AX/CHUMOV RESULT[BX],DL ;THE REMAINDERADD RESULT[BX],30H ;TO DECIMALDEC BX ;POINT TO THE FORMER TWO BITS LOOP CHANGE1MOV CX,4MOV BX,0FIND0:CMP RESULT[BX], '0' ;IS IT ZERO?JNE FINAL ;NOT ZEROADD BX,1 ;ZEROLOOP FIND0FINAL:LEA DX, RESULT[BX] ;OUTPUTMOV AH,09HINT 21HADD BP, 2 ;POINT TO NEXT WORDINC TIMECMP TIME,7 ;IS IT DONE?JNE CHANGE ;NOT NONEMOV AH,4CHINT 21HCODE ENDSEND START;--------------------PROGRAM ENDS--------------------实验二算术逻辑运算实验一、实验目的1.掌握简单运算器的组成以及数据传送通路。
计算机组成原理实验报告
计算机组成原理实验报告班级: s 学号:姓名:地点:时间:计算机组成原理实验报告一、实验目的1.深入理解基本模型计算机的功能、组成知识;2.深入学习计算机各类典型指令的执行流程;3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM的配置方法。
4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。
5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。
掌握微程序的设计方法,学会编写二进制微指令代码表。
6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
二、实验原理1.在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。
实验中,计算机数据通路的控制将由微过程控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2.指令格式(1)指令格式采用寄存器直接寻址方式,其格式如下:其中IN为单字长(8位二进制),其余为双字长指令,XX H 为addr对应的十六进制地址码。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
1,存储器读操作(KRD ):下载实验程序后按总清除按键(CLR )后,控制台SWA 、SWB 为“0 0”时,可对RAM 连续手动读入操作。
2,存储器写操作(KWE ):下载实验程序后按总清除按键(CLR )后,控制台SW A 、SWB 为“0 1”时,可对RAM 连续手动写操作。
3、启动程序(RP ):下载实验程序后按总清除按键(CLR )后,控制台SW A 、SWB 为“1 1”时,即可转入到微地址“01”号“取指令”微指令,启动程序运行。
根据以上要求设计数据通路框图,如图5-1所示。
表6-1 24位微代码定义:242322212019 18 17 16 15 14 1312 11 10 987 6 5 4 3 2 1 S3 S2 S1 S0 MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0表6-2 A 、B 、C 各字段功能说明:A 字段 B 字段 C 字段 15 14 13 选择 1211 10 选择 9 8 7 选择 0 0 0 0 0 0 0 0 0 0 0 1 LDRi 0 0 1 RS-B 0 0 1 P (1) 0 1 0 LDDR1 0 1 0 0 1 0 0 1 1 LDDR2 0 1 1 0 1 11 0 0 LDIR 1 0 01 0 0 P (4) 1 0 1 LOAD 1 0 1 ALU-B 1 0 1 LDAR 11 0 LDAR110 PC-B110 LDPC24(1) uA5—uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的微地址。
计算机组成原理实验报告
计算机组成原理实验报告计算机组成原理实验报告引言:计算机组成原理是计算机科学与技术专业的重要课程之一,通过实验可以更好地理解和掌握计算机的组成原理。
本篇实验报告将介绍我们在计算机组成原理实验中所进行的实验内容和实验结果。
实验一:逻辑门电路设计在这个实验中,我们学习了逻辑门电路的设计和实现。
通过使用门电路,我们可以实现与门、或门、非门等基本逻辑运算。
我们首先学习了逻辑门电路的真值表和逻辑代数的基本运算规则,然后根据实验要求,使用逻辑门电路设计了一个简单的加法器电路,并通过仿真软件进行了验证。
实验结果表明,我们设计的加法器电路能够正确地进行二进制数的加法运算。
实验二:数字逻辑电路实现在这个实验中,我们进一步学习了数字逻辑电路的实现。
通过使用多路选择器、触发器等数字逻辑元件,我们可以实现更复杂的逻辑功能。
我们首先学习了多路选择器的原理和使用方法,然后根据实验要求,设计了一个4位二进制加法器电路,并通过数字逻辑实验板进行了搭建和测试。
实验结果表明,我们设计的4位二进制加法器能够正确地进行二进制数的加法运算。
实验三:存储器设计与实现在这个实验中,我们学习了存储器的设计和实现。
存储器是计算机中用于存储和读取数据的重要组成部分。
我们首先学习了存储器的基本原理和组成结构,然后根据实验要求,设计了一个简单的8位存储器电路,并通过实验板进行了搭建和测试。
实验结果表明,我们设计的8位存储器能够正确地存储和读取数据。
实验四:计算机硬件系统设计与实现在这个实验中,我们学习了计算机硬件系统的设计和实现。
计算机硬件系统是计算机的核心部分,包括中央处理器、存储器、输入输出设备等。
我们首先学习了计算机硬件系统的基本原理和组成结构,然后根据实验要求,设计了一个简单的计算机硬件系统,并通过实验板进行了搭建和测试。
实验结果表明,我们设计的计算机硬件系统能够正确地进行指令的执行和数据的处理。
结论:通过这些实验,我们深入学习了计算机组成原理的相关知识,并通过实践掌握了计算机组成原理的基本原理和实现方法。
计算机组成原理的实验报告
计算机组成原理的实验报告一、实验目的本次实验的主要目的是深入理解计算机组成原理中的关键概念和组件,通过实际操作和观察,增强对计算机硬件系统的认识和掌握能力。
具体包括:1、了解计算机内部各部件的工作原理和相互关系。
2、熟悉计算机指令的执行流程和数据的传输方式。
3、掌握计算机存储系统的组织和管理方法。
4、培养分析和解决计算机硬件相关问题的能力。
二、实验设备本次实验使用的设备包括计算机、逻辑分析仪、示波器以及相关的实验软件和工具。
三、实验内容1、运算器实验进行了简单的算术运算和逻辑运算,如加法、减法、与、或等操作。
观察运算结果在寄存器中的存储和变化情况。
2、控制器实验模拟了指令的取指、译码和执行过程。
分析不同指令对计算机状态的影响。
3、存储系统实验研究了内存的读写操作和地址映射方式。
考察了缓存的工作原理和命中率的计算。
4、总线实验观察数据在总线上的传输过程和时序。
分析总线竞争和仲裁的机制。
四、实验步骤1、运算器实验步骤连接实验设备,将运算器模块与计算机主机相连。
打开实验软件,设置运算类型和操作数。
启动运算,通过逻辑分析仪观察运算过程中的信号变化。
记录运算结果,并与预期结果进行比较。
2、控制器实验步骤连接控制器模块到计算机。
输入指令序列,使用示波器监测控制信号的产生和变化。
分析指令执行过程中各个阶段的状态转换。
3、存储系统实验步骤搭建存储系统实验电路。
进行内存读写操作,改变地址和数据,观察存储单元的内容变化。
分析缓存的替换策略和命中率的影响因素。
4、总线实验步骤连接总线模块,配置总线参数。
多个设备同时发送数据,观察总线的仲裁过程。
测量数据传输的时序和带宽。
五、实验结果与分析1、运算器实验结果加法、减法等运算结果准确,符合预期。
逻辑运算的结果也正确无误。
观察到在运算过程中,寄存器的值按照预定的规则进行更新。
分析:运算器的功能正常,能够准确执行各种运算操作,其内部的电路和逻辑设计合理。
2、控制器实验结果指令能够正确取指、译码和执行,控制信号的产生和时序符合指令的要求。
计算机组成原理实验报告
实验1 通用寄存器实验一、实验目的1.熟悉通用寄存器的数据通路。
2.了解通用寄存器的构成和运用。
二、实验要求掌握通用寄存器R3~R0的读写操作。
三、实验原理实验中所用的通用寄存器数据通路如下图所示。
由四片8位字长的74LS574组成R1 R0(CX)、R3 R2(DX)通用寄存器组。
图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通控制。
RWR为寄存器数据写入使能,DI、OP为目的寄存器写选通。
DRCK信号为寄存器组打入脉冲,上升沿有效。
准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。
图2-3-3 通用寄存器数据通路四、实验内容1.实验连线2.寄存器的读写操作①目的通路当RWR=0时,由DI、OP编码产生目的寄存器地址,详见下表。
通用寄存器“手动/搭接”目的编码②通用寄存器的写入通过“I/O输入输出单元”向R0、R1寄存器分别置数11h、22h,操作步骤如下:通过“I/O输入输出单元”向R2、R3寄存器分别置数33h、44h,操作步骤如下:③源通路当X2~X0=001时,由SI、XP编码产生源寄存器,详见下表。
通用寄存器“手动/搭接”源编码④通用寄存器的读出五、实验心得通过这个实验让我清晰的了解了通用寄存器的构成以及通用寄存器是如何运用的,并且熟悉了通用寄存器的数据通路,而且还深刻的掌握了通用寄存器R3~R0的读写操作。
实验2 运算器实验一、实验目的掌握八位运算器的数据传输格式,验证运算功能发生器及进位控制的组合功能。
二、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。
三、实验原理实验中所用的运算器数据通路如图2-3-1所示。
ALU运算器由CPLD描述。
运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输入端分别由2个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。
计算机组成原理与汇编语言实验四80x86汇编语言程序开发实验
计算机组成原理与汇编语言实验四80x86汇编语言程序开发实验计算机组成原理与汇编元程序设计实验报告实验四80x86汇编语言程序开发实验1.汇编语言程序上机过程,实验步骤:(1)用用文字编辑工具(EDITPLUS)将源程序输入,保存文件其扩展名为.ASM;(2)用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过;(3)用LINK将.OBJ文件连接成可执行的.EXE文件;(4)在DOS状态下运行LINK产生的.EXE文件;2.编写一个汇编程序,实现下面的功能:(1)在数据段中定义10个标题msg0到msg9,标题的内容任意;(2)采用1号DOS功能子程序,输入0到9中任意1个数值,然后显示对应的msg0到msg9中的某一个标题;(3)如果输入数值10,则显示输出全部10个标题;(4)程序循环执行,直到输入ESC键,程序结束;(5)根据1的步骤,编译链接生产exe文件,并测试程序的功能;源程序代码(截图)data segmentmsg0 db 'xxx',0dh,0ah,'$'msg1 db '学号',0dh,0ah, '$'msg2 db 'q',0dh,0ah, '$'msg3 db 'w',0dh,0ah, '$'msg4 db 'e',0dh,0ah,'$'msg5 db 'r',0dh,0ah,'$'msg6 db 't',0dh,0ah,'$'msg7 db 'y',0dh,0ah,'$'msg8 db 'u',0dh,0ah,'$'msg9 db 'i',0dh,0ah,'$'msg10 db' xxxq w e r t y u i',0dh,0ah,'$'data endscode segmentAssume cs:code,ds:datastart:mov ax,datamov ds,axagain:mov ah,01int 21hcmp al,'0'jz zerocmp al,'1'jz onecmp al,'2'jz twocmp al,'3'计算机组成原理与汇编元程序设计实验报告cmp al,'4' jz fourcmp al,'5'jz fivecmp al,'6'jz sixcmp al,'7'jz sevencmp al,'8'jz eightcmp al,'9'jz ninecmp al, 'a'jz allcmp al,1bhjz exitzero:mov dx,offset msg0 jmp outputone:mov dx,offset msg1 jmp outputtwo:mov dx,offset msg2 jmp output three:mov dx,offset msg3 jmp outputfour:mov dx,offset msg4 jmp outputfive:mov dx,offset msg5 jmp outputsix:mov dx,offset msg6 jmp output seven:mov dx,offset msg7 jmp output eight:mov dx,offset msg8jmp outputnine:mov dx,offset msg9计算机组成原理与汇编元程序设计实验报告all: mov dx,offset msg10jmp outputoutput:mov ah,09int 21hjmp againexit: mov ah,4chint 21hcode endsend start程序功能测试(截图)分析(手写)实验总结(手写):。
计算机组成原理与汇编实验报告
计算机组成原理与汇编实验报告文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)计算机组成原理与汇编课程设计实验报告目录一、课程设计目标 (3)二、课程设计基本要求 (3)三、课程设计的内容 (3)四、课程设计的要求 (5)五、实验详细设计 (5)1.统计文件中各字母出现的频率 (5)2.用递归计算50以内Fibonacci 数, 以十进制数输出 (9)3.虚拟平台模拟机实验 (11)六、使用说明 (19)七、总结与心得体会 (19)八、参考文献 (20)九、附录 (20)1. 字符统计.asm (20)2. 斐波那契数(小于50).asm (29)一、课程设计目标通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。
课程设计的目的和要求:1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。
2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。
3、使学生养成良好的编程习惯并掌握调试程序的基本方法。
4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。
5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。
二、课程设计的基本要求1、认真查阅资料,独立完成设计任务,每道题都必须上机通过。
2、编写预习报告,写好代码,上机调试。
3、独立思考,培养综合分析问题解决问题和调试程序的能力。
4、按时完成课程设计,写出课程设计报告。
三、课程设计的内容1、给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出。
2、用递归计算50以内Fibonacci 数, 以十进制数输出.3、虚拟平台的模型机实验,具体要求如下:1)选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中2)搭建实验流程:根据原理图1和电路图(见附件),将已选择的组件进行连线。
0909123025陈友物联网1202班《计算机组成原理与汇编实验报告》
计算机组成原理与汇编学院:信息科学与工程学院专业班级:物联网工程1202班指导老师:贺建飚________学号:0909123225姓名:刘钦实验一二进制转十六进制一、实验原理基本原理:由于十六进制数基数是2的四次幂,所以一个二进制转换为十六进制,如果是整数,只要从它的低位到高位每4位组成一组,然后将每组二进制数所对应的数用十六进制表示出来。
如果有小数部分,则从小数点开始,分别向左右两边按照述方法进行分组计算。
二、实验目的(1) 掌握循环程序的设计方法(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。
(4) 学会针对不同的问题,选用不同的组织循环的方法。
(5)掌握键盘接收数据的方法,并了解键盘数据显示时需要转换为ASCII码及转换原理。
三、实验内容编写程序,将键盘键入的4位2进制转换为等值的16进制数,并在屏幕上显示。
四、实验结果(实验结果截图及实验结果说明);---------------------------------------------------------;输入二进制数,转为十六进制后输出;---------------------------------------------------------.model small.dataMAX_BIN db 100 ;二进制长度限制REAL_LEN db ? ;实际的输入BIN_DATA db 100 dup(?) ;存储输入的01RADIX_DATA db 1,2,4,8 ;2^x(x=0,1,2,3)MSG_PROM db 'Please input binary code :','$'MSG_ERR db 'Input error,you must enter 0 or 1 !',13,10,'$' MSG_RLT db 'The binary code to hex is:','$'BIN_TO_HEX db 100 dup(?).code;---------------------------------------------------------;屏幕输出以'$' 结尾的字符串,OPR为字符串变量;--------------------------------------------------------- macPutTxt macro OPRmov dx,offset OPRmov ah,09hint 21hendm;---------------------------------------------------------;屏幕打印回车换行符,用到寄存器;--------------------------------------------------------- macPutEnt macromov dl,0dhmov ah,02hint 21hmov dl,0ahmov ah,02hint 21hendm;--------------------------------------------------------- ;子过程,测试输入的数据是否是二进制;如果不是则置ax 为1,否则置为2;--------------------------------------------------------- subTestData proc farpush bxpush cxmov ax,2mov bx,0nextTest: mov cl,byte ptr BIN_DATA[bx]cmp cl,0dh ;回车jz exitTestinc bxcmp cl,30h ;是否是0jz nextTestcmp cl,31h ;是否是1jz nextTestmov ax,1exitTest: pop cxpop bxretsubTestData endp;---------------------------------------------------------;子过程,二进制转十六进制,结果存于BIN_TO_HEX ;--------------------------------------------------------- subBinToHex proc farirp reg,<ax,bx,si,di> ;保存寄存器push regendmmov ax,'$'push ax ;设置哨兵'$'mov al,REAL_LENmov si,axmov ax,0mov di,-1next: dec simov bh,byte ptr BIN_DATA[si] inc dicmp si,0jz hexonecmp di,3jz hexonecmp bh,30hjz next ;该位为0add al,byte ptr RADIX_DATA[di] jmp nexthexone: cmp bh,30hjz pushhexadd al,byte ptr RADIX_DATA[di]pushhex: cmp al,10jb digitadd al,55 ;55 = 'A'-10jmp pushokdigit: add al,30h ;30h = '0'pushok: push axcmp si,0jz resetsimov di,-1mov al,0jmp nextresetsi: mov si,0pophex: pop axmov byte ptr BIN_TO_HEX[si],alinc sicmp ax,'$'jnz pophexirp reg,<di,si,bx,ax> ;恢复寄存器pop regendmretsubBinToHex endp;---------------------------------------------------------;---------------------------------------------------------main proc farmov ax,@datamov ds,axmacPutTxt MSG_PROMlea dx,MAX_BINmov ax,0c0ah ;先清空键盘缓冲区,然后键盘输入字符串int 21hmacPutEnt ;打印回车call subTestDatacmp ax,1jz errorcall subBinToHexmacPutTxt MSG_RLTmacPutTxt BIN_TO_HEXjmp exiterror: macPutTxt MSG_ERRexit: mov ah,4chmain endpend main五、实验心得通过这次实验,我对汇编语言有了更进一步的认识,加强了我用汇编语言编程的能力,也加深了我对二进制到十六进制转换的了解,相信在接下来的学习中,我会更加熟悉汇编这门课程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理与汇编实验报告姓名:学号:学院:信息科学与工程学院班级:实验1 存储器实验实验目的⏹掌握静态存储随机存储器RAM的工作特性⏹掌握静态存储随机存储器RAM的读写方法实验设备74LS273(一片),静态存储器MEMORY 6116(一片),与门(一片),与非门(一片),单脉冲(一片),开关若干,灯泡若干实验原理在微机系统中,常用的静态RAM 有6116、6264、62256 等。
在本实验中使用的是6116。
6116 为2K╳8 位的静态RAM,其逻辑图3.1如下:图3.1 6116逻辑图其中A0~10 为11 根地址线,I/O0~7 为8 根数据线,CS 为片选端,OE 为数据输出选通端,WR 为写信号端。
其工作方式见下表3-1:表3-1工作方式表实验所用的半导体静态存储器电路原理如图3.2 所示,实验中的静态存储器一片6116(2K×8)构成,其数据线接至数据总线,地址线由地址锁存器(74LS273)给出。
地址灯AD0—AD7 与地址线相连,显示地址线内容。
数据开关经一三态门(74LS245)连至数据总线,分时给出地址和数据。
图3.2 存储器实验原理图因地址寄存器为8 位,接入6116 的地址A7—A0,而高三位A8—A10 接地,所以其实际容量为256 字节。
6116 有三个控制线:CE(片选线)、OE(读线)、WE(写线)。
当片选有效(CE=0)时,OE=0时进行读操作,WE=0时进行写操作。
本实验中将OE 常接地,在此情况下,当CE=0、WE=0 时进行读操作,CE=0、WE=1 时进行写操作,其写时间与T3 脉冲宽度一致。
控制信号SW-B 为低电平有效,控制信号LDAR 为高电平有效。
实验步骤1. 选择实验设备:根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
搭建实验流程:将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。
搭建好的实验流程图如图 3.3所示图3.3 存储器实验流程图2. 初始化各芯片的控制信号,仔细检查无误后点击【电源开/关】按钮接通电源。
3. 写存储器。
给存储器的00、01、02、03、04 地址单元中分别写入数据11H、12 H、13 H、14 H、15 H。
由图3.2 存储器实验原理图看出,由于数据和地址全由一个数据开关给出,因此要分时地给出。
下面的写存储器要分两个步骤,第一步写地址,先关掉存储器的片选(CE=1),打开地址锁存器门控信号(LDAR=1),打开数据开关三态门(SW-B=0),由开关给出要写入的存储单元的地址,双击单脉冲产生T3 脉冲将地址输入到地址锁存器;第二步写数据,关掉地址锁存器门控信号(LDAR=0),打开存储器片选,使之处于写状态(CE=0,WE=1),由开关给出此单元要写入的数据,,双击单脉冲产生T3 脉冲将数据写入到当前的地址单元中。
写其他单元依次循环上述步骤。
写存储器流程如图3.4所示(以向00 号单元写入11H 为例)。
图3.4 写存储器流程图4. 读存储器。
依次读出第00、01、02、03、04 号单元中的内容,观察上述各单元中的内容是否与前面写入的一致。
同写操作类似,读每个单元也需要两步,第一步写地址,先关掉存储器的片选(CE=1),打开地址锁存器门控信号(LDAR=1),打开数据开关三态门(SW-B=0),由开关给出要写存储单元的地址,双击单脉冲产生T3 脉冲将地址输入到地址锁存器;第二步读存储器,关掉地址锁存器门控信号(LDAR=0),关掉数据开关三态门(SW-B=1),片选存储器,使它处于读状态(CE=0,WE=0),此时数据总线上显示的数据即为从存储器当前地址中读出的数据内容。
读其他单元依次循环上述步骤。
读存储器操作流程如图3.5所示(以从00 号单元读出11H 数据为例)图3.5 读存储器流程图思考与分析1.由两片6116(2K*8)怎样扩展成(2K*16)或(4K*8)的存储器?怎样连线?观察思考1.按图4.4-5连接实验线路,向存储器中指定的地址单元输入数据,地址先输入AR寄存器,在地址灯上显示;再将数据送入总线后,存到指定的存储单元,数据在数据显示灯和数码显示管显示。
从存储器中指定的地址单元读出数据, 地址先输入AR寄存器,在地址灯显示;读出的数据送入总线, 通过数据显示灯和数码显示管显示。
(1) 将时序电路模块中的Φ和H23排针相连。
将时序电路模块中的二进制开关“STOP”设置为“RUN”状态、将“STEP”设置为“STEP”状态。
(2) 准备排线13条:8芯4条,2芯9条。
按图4.4-5连接实验线路,仔细查线无误后接通电源。
图4.4-5 存储器实验接线图(3) 向存储器指定的地址送入数据,如:向00单元中输入11,步骤如图4.4-6:图4.4-6 向地址寄存器AR中输入地址00的流程图操作步骤:观察并记录地址灯的变化:地址灯由11010011→11111111(4) 输入要存放的数据“11”,步骤如图4.4-7:图4.4-7 输入要存放的数据“11”的流程图操作步骤:观察并记录数据显示灯和数码显示管的变化:数据显示灯变为00010001数码管显示11(5) 按照“(3)、(4)”的步骤继续向“00”下面的4个地址中输入下述数据:数据显示灯变为00010010数码管显示12数据显示灯变为00010011数码管显示13数据显示灯变为00010100数码管显示14数据显示灯变为00010101数码管显示15(6) 从存储器指定的地址中读出数据。
步骤如图4.4-8:图4.4-8 从00中读出数据的流程图操作步骤:同样从其它4个地址:01, 02, 03, 04中读出数据,观察地址显示灯、数据显示灯和数码显示管的变化,并检查是否和输入的数据一致。
地址显示灯11111111在T3脉冲变为00000000数据显示灯0000000在SW-B=1后变为11111111数码显示管发W/R脉冲之后变为FF2.在进行存储器操作(写/读)是不是必须先往地址寄存器(AR)存入所访问的存储器单元地址?答:是,从存储器中指定的地址单元读出数据, 地址先输入AR寄存器才能进行读写操作。
3.T3在本实验中起了哪些作用,如何区分它们?答:T3可以进行手动发脉冲。
根据在此之前所进行的操作进行区分。
4.在进行存储器读写操作时,CE和WE信号有没有先后顺序?为什么?答:有,应先对CE进行操作,再对WE进行操作。
因为CE禁止存储器读写,只有将CE=0时WE=0时才能从存储器中读出数据。
六、试验心得本次实验中,首先连接线路时应该着重注意接线端口的对应,避免出现排线方向错误对实验结果的影响,同时要仔细对照输入的0或1。
通过此次实验我们对存储器有一个重新整体的认识,同时也是自己在课堂上的知识得使实践和理解,为以后更深的学习打下基础。
实验二(汇编语言):从键盘接受用户所输入的不超过20个的0~99的数,在用户完成输入后对用户所输入的数据进行排序并输出。
要求定义子程序。
实验要求:1)在虚拟实验平台中选择元器件并搭建存储实验2)完成汇编语言程序设计、编写、调试、运行。
3)撰写实验报告实验报告模板:1)实验目的完成从键盘接受用户所输入的不超过20个的0~99的数,在用户完成输入后对用户所输入的数据进行排序并输出。
并定义子程序。
2)实验平台简介模块层次图3)实验原理、步骤及分析本次实验值输入10个数作为测试系统结构图(1)主程序流程图N (2)冒泡排序子程序流程图3.功能模块设计说明(1)main模块输入:从键盘输入十个有符号十进制整数输出:在屏幕上显示排好序的十个十进制整数功能:通过对input,bubblesort,output三个模块的调用实现将屏幕上输入的10个十进制有符号整数进行冒泡排序,然后将排好序的10个十进制有符号整数显示在屏幕上。
(2)input模块输入:从键盘上输入十个有符号十进制整数。
各个整数之间用逗号隔开,最后以‘回车’符结束。
输出:把这十个有符号十进制整数存入buf数组里面。
功能:屏幕上首先显示一行提示信息:“Please input ten decimal integers and use the comma as separation:”。
意思就是要求用户输入10个十进制有符号整数,并且用逗号作为分隔符。
用户开始输入,如果用户输入了除数字、逗号、以及负号以外的符号,屏幕上将显示:“error!”。
然后自动退出程序,不继续执行。
如果用户没有输满10个数,其余数将为0代替。
输完后按回车键表示输入完毕。
(3)bubblesort模块输入:从buf数组里面取数。
输出:将排好序的数存到buf数组里。
功能:利用冒泡排序法对输入的数进行排序。
冒泡排序法的基本思想就是让相邻的两个数进行比较,如果前面的比后面的大,就将两个数调换次序,如果小,就不调换,这样每一次参加排序的数中最大的数就到了最后面,通过n-1次排序就可以完成对所有的数的排序。
(4)output模块输入:从buf数组里面取出排好序的数。
输出:把排好序的数在屏幕上显示出来,各整数之间用逗号隔开。
功能:屏幕上首先显示一行提示信息:“The result is:”。
然后换一行显示排序好的数。
(5)char_int模块输入:从键盘取得一个有符号十进制整数。
输出:把该数转化为二进制数并存入bx寄存器。
功能:把从键盘取得的一个十进制数转换为二进制数,并将该数存入bx寄存器中。
(6)int_char模块输入:从bx寄存器取出一个二进制数。
输出:在屏幕上显示一个有符号十进制整数。
功能:把bx寄存器中的一个二进制数通过模块dec_div转换为十进制数,并在屏幕上显示出来。
(7)dec_div模块输入:从bx寄存器中取得需转换为十进制的数。
输出:在屏幕上显示一位十进制数。
功能:把bx寄存器中的二进制数除以相应的十的幂,并在屏幕上显示一位商。
余数保存在bx寄存器中。
(8)crlf模块输出:向系统发出回车、换行符。
功能:起到回车、换行的作用。
4)实验代码datarea segmentbuf dw 100 dup(?)count = 10flag db 0mess1 db 'Please input ten decimal integers and use the comma as separation:$'mess2 db 'error!$'mess3 db 'The result is: $'datarea ends;----------------------------------------prognam segmentassume cs:prognam,ds:datareastart:push dssub ax,axpush axmov ax,datareamov ds,axcall inputcmp ax,10000dje endallcall bubblesortcall outputendall: mov ah,4chint 21h;----------------------------------------input proclea dx,mess1mov ah,09int 21hcall crlfmov si,0mov cx,countenter: call char_intdec cxcmp dl,','je storecmp dl,13je exit2jne errorstore: mov buf[si],bxadd si,2jmp entererror: call crlflea dx,mess2mov ah,09int 21hmov ax,10000djmp exit3exit2: mov buf[si],bxcall crlfexit3: retinput endp;----------------------------------------- bubblesort procmov cx,countdec cxlg4: mov di,cxmov si,0lg2: mov ax,buf[si]cmp ax,buf[si+2]jle lg3lg5: xchg ax,buf[si+2]mov buf[si],axlg3: add si,2loop lg2mov cx,diloop lg4retbubblesort endp;-------------------------------------- output proclea dx,mess3mov ah,09int 21hcall crlfmov si,0mov di,countnext1: mov bx,buf[si]cmp bl,0jge next4mov dl,'-'mov ah,2int 21hneg bxnext4: call int_charmov dl,','mov ah,02int 21hadd si,2dec dijnz next1call crlfretoutput endp;---------------------------------------char_int procmov bx,0mov flag,0 newchar: mov ah,1int 21hmov dl,alcmp al,2dhjnz next2mov flag,1jmp newcharnext2: sub al,30hjl next3cmp al,9djg next3cbwxchg ax,bxmov cx,10dmul cxxchg ax,bxadd bx,axjmp newchar next3: cmp flag,1jne exit1neg bxexit1: retchar_int endp;----------------------------------- int_char procpush bxpush cxpush sipush dimov cx,1000dcall dec_divmov cx,100dcall dec_divmov cx,10dcall dec_divmov cx,1dcall dec_divpop dipop sipop cxpop bxretint_char endp;--------------------------------------- dec_div procmov ax,bxmov dx,0div cxmov bx,dxmov dl,aladd dl,30hmov ah,02hint 21hretdec_div endp;----------------------------------crlf procmov dl,0ahmov ah,02hint 21hmov dl,0dhmov ah,02hint 21hretcrlf endp;------------------------------------prognam endsend start5)实验结果1.输入正确的字符时,结果如图1所示。