南昌大学微机原理学生成绩名次表实验

合集下载

南昌大学自动装置原理实验一无功调差及自动检测实验

南昌大学自动装置原理实验一无功调差及自动检测实验

南昌大学实验报告学生姓名:王瑾然学号:6101113031 专业班级:电气131班实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验一无功调差及自动检测实验一、实验目的1.深入理解调差原理,掌握改变发电机电压调节特性斜率的方法。

2.深入了解测量和比较整定电路的结构形式和工作原理。

3.掌握自动检测各个环节的工作特性及其调试方法。

二、原理说明1.无功调差回路为了改变发电机外特性曲线,使并列运行的各台机组之间合理分配无功负荷,或者为了维持系统某一点电压恒定,在负荷变化时,要对电力网电压损耗进行补偿,因而设置了无功调差电路。

常用的电流调差电路有两种:一是取两相电流信号;二是取单相电流信号。

因为发电机输出端电压主要与负载电流的无功分量有关,故引入的电流信号滞后于相应的电压信号90°电度角。

两种电流调差电路的原理接线见图1-1。

电流调差电路的工作原理:主要是利用电流信号在调差电阻R上的压降,迭加到测量电压信号上去,从而使发电机的外特性陡度发生变化。

当上述压降叠加后使外特性陡度向右下方向倾斜时,为正调差特性如图1-2 曲线3,表现为负载无功电流增加时,端电压下降。

改变正调差系数(即直线陡度),可使并列运行机组之间按合理比例稳定地分配无功负荷。

如果将中间电流互感器ZTA 的极性反接,则使外特性陡度向右上方倾斜,为负调差特性,如图1-2 曲线4。

表现为负载无功电流增加时,端电压上升,适用于电力系统要求某点电压恒定,在负荷增加时,需要补偿线路和变压器电压损耗的特殊场合。

当调差电阻经切换开关短接时,则调差电路基本不起作用,为自然调差。

如图1-2,曲线2。

1)单相电流信号调差电路,见图1-1(a)。

电流由C相(即W相)电流互感器TA、中间变流器ZTA(5/0.5安)、测量变压器1-3T和调差电阻R组成。

从图1-1(a)接线可以看出 C 相电流在调差电阻R 上的压降所形成电压信号迭加于B相的电压信号之中,由极性可确定是起向量相减作用,测量变压器接线组别为Y/△-1,其二次侧电压Ua、Ub、Uc分别滞后于母线电压UA、UB、UC 30°,电压△abc 如图1-3(b)、(c)所示。

微机实验

微机实验

第2章 16位微机原理及其程序设计实验本章主要介绍汇编语言程序设计,通过实验来学习80X86的指令系统、寻址方式以及程序的设计方法,同时掌握联机软件的使用。

2.1 系统认识实验2.1.1 实验目的掌握TD系列微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。

2.1.2 实验设备PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。

2.1.3 实验内容编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。

2.1.4 实验步骤1. 运行Wmd86软件,进入Wmd86集成开发环境。

2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言和寄存器类型,这里我们设置成“汇编语言”和“16位寄存器”,如图2.1、图2.2所示。

设置选择后,下次再启动软件,语言环境保持这次的修改不变。

本章选择16位寄存器。

图2.1 语言环境设置界面图2.2 寄存器设置界面3. 语言和寄存器选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图2.3所示。

默认文件名为Wmd861。

图2.3 新建文件界面4. 编写实验程序,如图2.4所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

图2.4 程序编辑界面5. 点击,编译文件,若程序编译无误,则可以继续点击进行链接,链接无误后方可以加载程序。

编译、链接后输出如图2.5所示的输出信息。

图2.5 编译输出信息界面6. 连接PC与实验系统的通讯电缆,打开实验系统电源。

7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。

可以通过端口列表中的“端口测试”来检查通讯是否正常。

点击下载程序。

为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。

下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。

起始运行语句下会有一条绿色的背景。

如图2.6所示。

微机原理与接口技术 成绩统计项目报告1

微机原理与接口技术 成绩统计项目报告1

《微机控制与接口技能训练》Computer control and interface skills training项目报告成绩评定程序的设计编写、调试、结果项目报告评定教师***得分课程名称Course Name 微机控制与接口技能训练项目编号Item No.1名称Item学生成绩统计程序的设计与实现姓名Name ***学号No.**班级Class*****项目报告1.说明自己在项目制作中的难点、解决办法及心得体会答:(1)一开始成绩输出出不来,经检查发现开头和结尾都落了程序,改正后就可以输出结果。

(2)最后结果换行输出时遇到了些问题,经过询问同学和查阅课本最后成功换行输出。

2.说明项目中所涉及的知识点及难点答:(1)汇编语言程序的一般结构形式,先定义数据段,再定义堆栈段,最后定义代码段。

(2)汇编语言换行输出时的一般结构形式:MOV DH,00HMOV DL,00HMOV AH,02HINT 10H此程序中DH代表行,意思是在第几行输出;DL代表列,意思是空几格。

3.硬件设计图/原理图和源程序(注:学生编写的硬件设计图和源代码打印附后)DATA SEGMENTSTRING1 DB'great`s number:','$'STRING2 DB'90-99`s number:','$'STRING3 DB'80-89`s number:','$'STRING4 DB'70-79`s number:','$'STRING5 DB'60-69`s number:','$'STRING6 DB'0-59`s number:','$'STUNUM DB 10GRADE DB 80, 100,78,56,79,90,96,82, 88, 75 A100 DB 0B90 DB 0C80 DB 0D70 DB 0E60 DB 0F50 DB 0DATA ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK, DS:DATASTART:MOV AX,DATAMOV DS,AXMOV A100,0MOV B90,0MOV C80,0MOV D70,0MOV E60,0MOV F50,0LEA BX, OFFSET STUNUMMOV CX, [BX]AND CX,00FFHLEA BX,OFFSET GRADECOMPARE: MOV AX, [BX]AND AX,00FFHCMP AX,60JB FIVECMP AX,70JB SIXCMP AX,80JB SEVENCMP AX,90JB EIGHTCMP AX,100JB NINEINC A100JMP SHORT NEXT FIVE: INC F50JMP SHORT NEXT SIX: INC E60JMP SHORT NEXT SEVEN: INC D70JMP SHORT NEXT EIGHT: INC C80JMP SHORT NEXT NINE: INC B90 NEXT: INC BXLOOP COMPAREOUTPUT:MOV DH,01HMOV DL,05HMOV AH,02HINT 10HLEA DX,STRING1MOV AH,09HINT 21HMOV DL,A100ADD DL,30HMOV AH,02HINT 21HMOV DH,03HMOV DL,05HMOV AH,02HINT 10HLEA DX,STRING2MOV AH,09HINT 21HMOV DL,B90ADD DL,30HMOV AH,02HINT 21HMOV DH,05HMOV DL,05HMOV AH,02HINT 10HLEA DX,STRING3MOV AH,09HINT 21HMOV DL,C80ADD DL,30HMOV AH,02HINT 21HMOV DH,07HMOV DL,05HMOV AH,02HINT 10HLEA DX,STRING4MOV AH,09HINT 21HMOV DL,D70ADD DL,30HMOV AH,02HINT 21HMOV DH,09HMOV DL,05HMOV AH,02HINT 10HLEA DX,STRING5MOV AH,09HINT 21HMOV DL,E60ADD DL,30HMOV AH,02HINT 21HMOV DH,0BHMOV DL,05HMOV AH,02HINT 10HLEA DX,STRING6MOV AH,09HINT 21HMOV DL,F50ADD DL,30HMOV AH,02HINT 21HMOV AH,4CH INT 21HCODE ENDSEND START输出结果显示:。

南昌大学微机原理实验报告

南昌大学微机原理实验报告

实验报告实验课程:汇编原理与微机接口技术学生姓名:信念学号:520---1314专业班级:网络间谍***2***年 12 月 12 日目录一、实验一 (3)二、实验二 (5)三、实验三 (8)四、实验四 (10)五、实验五 (12)六、实验六 (18)南昌大学实验报告一学生姓名:信念学号:520---1314 专业班级:网络间谍***班实验类型:□验证□ 综合▥设计□ 创新实验日期: 2***.11.3 实验成绩:一、实验名称实验设备简介二、实验内容了解并熟悉SICElab『赛思』开放式综合实验/仿真系统及G2010+实验平台、实验设备。

三、实验目的了解实验设备、搭建实验平台四、实验器材(1)G2010+实验平台1台(2)G6W仿真器1台(3)连线若干根五、实验设备及说明1 仿真工具伟福公司所有的产品,包含一个项目管理器,一个功能强大的编辑器,汇编Make、build和调试工具并提供一个与第三方编译器的接口2 实验平台新型实用模块:(1)LCD液晶实验(2)点阵LED广告屏(3)DS12887 实时钟(4)红外线发送、接收(5)直流电机恒速(6)电子琴模拟实验(7)串行ROM/I2C ROM (8)步进电机变速传感器实验:(1)温度传感器(2)压力传感器(3)霍尔传感器(4)红外传感器传统实验模块:(1)模数转换A/D0809(2)数模转换D/A0832(3)8155控制键显(4)V/F转换LM331(5)串口通讯MAX232(6)音响实验LM386 7)EPROM27C256扩展(8)RAM6264扩展(9)微型打印机接口(10)PWM模块通用实验模块:(1)模拟信号发生器(2)开关量发生器(3)发光二极管组(4)信号发生器(5)74LS138译码器(6)分频器电路(7)LED6位数码管(8)20个键盘组(9)逻辑笔(10)常用门电路自由实验模块:由DIP40锁紧插座及240个插孔组成,CPU所有信号均以插孔方式引出,还设计了常用门电路、晶振源、电源插孔等,可以完成以上实验模块的组合实验以及由实验者自行命题和新器件、新方案的实验,使得实验方式和内容不受限制。

微机原理课程设计报告 学生成绩排序名次

微机原理课程设计报告 学生成绩排序名次

姓名: XX 班级: XXXXX 学号: XXXXXXXXXX课程设计微WEI 机JI 原YUAN 理LI2011 年 7 月 8 日微机原理课程设计目的:结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。

学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。

内容与要求:1.字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。

2.从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。

3.响铃设计为掌握响铃的使用方法,编写程序,从键盘接受输入字符,如是数字N则响铃N此,如不是数字则不响。

4.将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。

5.学生成绩名次表设计为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H的存储区中。

1000H+i表示学号为i的学生成绩。

编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。

微机原理课程设计下面着重介绍程序5——学生成绩名次表设计:流程图:主程序流程图SCAN子函数程序流程图微机原理课程设计程序代码及注释:CRLF MACRO ;宏定义,回车换行MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTSTUNUM EQU 30 ;学生数MESS1 DB 'Please input 30 score',0DH,0AH,'$' ;提示信息ERROR DB 'Input error,try again',0DH,0AH,'$' ;报错信息MESS2 DB 'The order is:',0DH,0AH,'$'EMARK DB ? ;报错标志ORG 1000H ;存放成绩地址SCORE DB 30 DUP(?) ;成绩表ORG 2000H ;存放名次地址SEQU DB 30 DUP(?) ;名次表DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOPMOV AH,09H ;显示提示信息MOV DX,OFFSET MESS1INT 21HMOV SI,OFFSET SCORE ;成绩表首址MOV CX,STUNUMMOV EMARK,0 ;报错标志清0UUU: CALL GETNUM ;调用子函数读取成绩CMP EMARK,01H ;判断是否出错JE START ;出错则重新开始MOV [SI],DL ;没出错则存入成绩微机原理课程设计INC SI ;指向下一个成绩单元地址LOOP UUU ;判断30个成绩是否读取完MOV CX,STUNUMMOV DI,OFFSET SEQU ;名次表首址VVV: CALL SCAN ;调用扫描子程序MOV AL,STUNUM ;学生总数SUB AL,CL ;计算名次INC ALMOV BX,DX ;学号PUSH AX ;将名次转换成压缩BCD码方便显示PUSH BXPUSH CXXOR AH,AHMOV BH,0AHDIV BHMOV CL,4SHL AL,CLADD AL,AHMOV DH,ALPOP CXPOP BXPOP AXMOV [DI+BX],DH ;存入名次LOOP VVV ;判断是否存完MOV AH,09H ;显示名次提示信息LEA DX,MESS2INT 21HMOV CX,STUNUMMOV SI,OFFSET SEQUWWW: MOV AL,[SI]CALL DISPI ;调用子函数显示名次PUSH DXPUSH AXMOV AH,02 ;显示空格MOV DL,20HINT 21HPOP AXPOP DXINC SI ;指向名次表的下一个地址LOOP WWW ;判断是否输出所有名次MOV AH,4CH ;返回DOSINT 21H微机原理课程设计SCAN PROC NEAR ;扫面子函数,没调用一遍,找出成绩表;中最高成绩,记录其学号,并将此成绩;清0PUSH CXMOV CX,STUNUMMOV AL,00HMOV BX,OFFSET SCOREMOV SI,BXCCC: CMP AL,[SI]JAE JJJMOV AL,[SI]MOV DX,SISUB DX,BXJJJ: INC SILOOP CCCADD BX,DXMOV BYTE PTR [BX],00HPOP CXRETSCAN ENDPDISPI PROC NEAR ;显示子程序PUSH CXMOV BL,AL ;显示高4位MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BL ;显示低4位AND DL,0FHCALL DISPLPOP CXRETDISPI ENDPDISPL PROC NEAR ;将名次转换成对应的ASCII码值并显示 ADD DL,30HMOV AH,02HINT 21HRETDISPL ENDP微机原理课程设计GETNUM PROC NEAR ;读取成绩子函数PUSH CXXOR DX,DX ;清0,用于存放成绩GGG: MOV AH,01HINT 21H ;键盘字符输入CMP AL,0DHJZ RRR ;如果是回车则结束SUB AL,30HJB ERR ;小于0则报错CMP AL,09HJBE GETS ;如果在0—9之间则存成绩至DXJMP ERR ;否则报错GETS: MOV CL,04SHL DX,CL ;将DX中已有数值左移四位XOR AH,AHADD DX,AX ;紧接着将数据存在DX中低四位JMP GGG ;跳转继续读取数据ERR: MOV AH,09H ;显示报错信息MOV DX,OFFSET ERRORINT 21HMOV EMARK,01H ;报错标志置1RRR: PUSH DXCRLF ;回车换行POP DXPOP CXRETGETNUM ENDPCODE ENDSEND START微机原理课程设计心得体会:在为期一周的微机原理课程设计中,通过查阅书籍,上网收集资料以及向老师和同学请教,我完成了老师定下的任务。

微机原理课程设计成绩评定表

微机原理课程设计成绩评定表
达到课程设计大纲中规定的全部要求,包括硬件原理图及软件仿真
20
设计任务演示
编写程序,调试结果
10
答辩
对课程设计内容进行全面、系统的总结,能圆满的回答老师的问题
30
说明书
设计说明书内容完整,文字通顺,规范化、参考文献充分
20
课程设计总评成绩:
指导老师签名:
日期:2022年6月日
微机原理课程设计成绩评定表
系部
自动化与电气学院
姓名
专业
班级
课程设计题目:
课程设计答辩或质疑记录:
成绩评定依据:
评价内容
评定项目
评分
成绩
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作
10
查阅文献
能独立查阅文献,收集资料;查阅文献有一定广泛性;有综合归纳资料的能力
10
系统设计工作量

汇编语言显示学生名次表实验报告

汇编语言显示学生名次表实验报告

湖北科技学院计算机学院汇编语言课程设计课题题目:显示学生名次表学生姓名:学号:班级:2013年12 月26日一、实验目的进行汇编语言程序设计应用的综合性训练。

综合运用汇编语言循环程序和子程序编程方法,巩固提高汇编语言程序设计能力应用水平。

二、设备与环境PC兼容机、Windows操作系统、汇编程序masm for windows 2010三、实验内容实验内容:编制一程序,要求接收从键盘输入的一个班的学生成绩和学号,对学生的成绩进行排序,再按学号顺序和学生名次顺序分别把学生成绩显示出来。

四、实验结果及分析实验功能:从键盘输入学生姓名和成绩,按照成绩的高低排名显示输出。

程序中设定的名字是英文的,需要小于9位字母,学生人数为3个。

程序思路:1、本程序包括一个主程序和五个子程序。

子程序包括INPUT键盘输入、COPY数据转存、CHANGE十进制数ASCII码转二进制、SORT按成绩排序和PRINT打印班级名单。

2、用变量p控制输入的学生的个数。

本程序中,p=3。

3、姓名和成绩输入分别用DOS中被调用的10号功能实现字符串输入。

在输入最后字符后,要将回车符改为0,以便输出时直接用9号功能显示姓名和成绩。

4、用buffer1和buffer2作为键入的姓名和成绩的缓存区,然后将所有人名和成绩用串传送指令转到smane和score1中保存,打印输出是可以使用。

5、将score1中成绩的十进制数ASCII码转换为二进制数score2.6、将score2中的成绩排序,同时将保存在mingci中的输入次序号也一换,以次序号作为排序指针,在smane和score1中查找相应的人名和成绩。

7、打印排序名单时,从mingci中取出次序号作为位移量,到smane和score1中取出姓名和对应的成绩用9号功能显示。

排序后mingci中先取出的次序号一定是成绩最高的人的,其他类推。

程序代码、代码解析及流程图主程序:START:main proc farMOV AX,DATASMOV DS,AXmov es,axmov bx,0mov cx,0call inputcall sortcall printmov ah,4chint 21hmain endp数据段定义:DATAS SEGMENTinfor0 db 0ah,0dh,'sort= $'infor1 db 0ah,0dh,'input name: $'infor2 db 0ah,0dh,'input score:$'n equ 15 ;姓名长度m equ 4 ;成绩长度(3位+回车) p equ 4 ;输入的人数(4个q equ 3 ;成绩位数buff1 db n,?,n dup(0),'$';姓名缓冲区,加$以便输出buff2 db n,?,n dup(0),'$';成绩缓冲区sname db p dup(n+1 dup(0)) ;保存姓名score1 dw p dup(m+1 dup(0)) ;保存成绩score2 dw p dup(m+1 dup(0))mingci db p dup(0) ;名次x dw?sign1 dw 0sign2 dw 0cont db'1';计数DATAS ENDS子程序(INPUT) 1:输入姓名、成绩input procinc bx ;输入次数统计cmp bx,p ;输入次数ja exitlea dx,infor1 ;显示提示1mov ah,9int 21hlea dx,buff1 ;输入姓名mov ah,10int 21hmov al,buff1+1 ;实际输入个数,aladd al,2 ;+2,包含buffer1的0,1号单元mov ah,0mov si,ax ;回车od所在位置,跟在最后一个字符后mov buff1[si],0 ;将od换为0,便于输出显示lea dx,infor2 ;显示提示2mov ah,9int 21hlea dx,buff2 ;输入成绩mov ah,10int 21hmov al,buff2+1 ;实际输入个数add al,2 ;个数+2,包含0,1单元找到odmov ah,0mov si,axmov buff2[si],0 ;将od换为0,便于输出显示mov mingci[bx-1],bl ;bx为输入次数,保存输入次序cmp bx,1 ;第一次输入转let1jz let1add sign1,n+1 ;姓名间隔为n+1add sign2,q ;成绩间隔为qlet1:call copy ;子程序嵌套jmp inputexit:retinput endp流程图:→子程序2(COPY):数据转存copy procmov cx,n+1 ;姓名长度+1(包含$)lea si,buff1+2lea di,sname ;姓名传送到snameadd di,sign1 ;加上间隔值cldrep movsbmov cx,nmov ax,'$';用$覆盖姓名区,清除已输入的姓名lea di,buff1+2rep stosbmov cx,m+1 ;成绩位数+1(包含s)lea si,buff2+2lea di,score1 ;成绩传送到scoreladd di,sign2 ;加上间隔值cldrep movsblea si,buff2+2mov di,sign2call change ;二进制成绩,scorel2retcopy endp流程图:→子程序3(CHANGE):十进制数ASCII码→二进制change procmov x,0mov cx,[si-1] ;成绩的位数,cx and cx,000fh ;保留低4位rept2:mov al,[si] ;按位取出成绩cmp al,30h ;是否在0~9之间 jl exit1cmp al,39hjg exit1and ax,000fh ;去掉ASCII码xchg ax,xmov dx,10 ;将ax中前一次形成的数扩大10倍mul dxadd x,ax ;保存到xinc siloop rept2mov Array保存mov score2[di],ax ;二进制成绩送入mov x,0add sign2,2 ;下一个成绩单exit1: retchange endp流程图→子程序4(SPORT):按成绩排序sort procmov cx,p ;数组长度dec cxloop1:push cx ;保存外循环次数mov bx,0loop2:mov ax,score2[bx]cmp ax,score2[bx+m+1] ;m+1=5 jge next ;降序xchg ax,score2[bx+m+1];交换成绩mov score2[bx],axmov al,mingci[si]xchg al,mingci[si+1] ;交换成绩mov mingci[si],alnext:add bx,m+1 ;下一个成绩inc siloop loop2pop cx ;恢复外循环次数 loop loop1retsort endp子程序→子程序5(PRINT):打印排序名单print proclea dx,infor0 ;显示结果提示mov ah,9int 21hmov cx,pmov bx,0mov ax,0mov di,0rept3:mov dl,0ah ;回车换行mov ah,2int 21hmov dl,0dhint 21hmov dl,cont ;显示名次序号mov ah,2int 21hinc contmov dl,0ah ;回车换行mov ah,2int 21hmov dl,0dhint 21hmov ax,0mov al,mingci[di] ;取名次dec al ;位置-1,因为地址从0开始mov bl,9 ;姓名位置=al×9(包含$) mul bllea dx,snameadd dx,ax ;偏移地址+姓名位移量mov ah,9 ;显示名字int 21hmov dl,0ah ;回车换行mov ah,2int 21hmov dl,0dhint 21hmov ax,0mov bx,0mov al,mingci[di] ;取名次dec al ;地址从0开始mov bl,5 ;成绩位移量=al×5(包含$)mul bllea dx,score1add dx,ax ;显示成绩mov ah,9int 21hinc diloop rept3retprint endpcodes endsEND START运行结果:实验体会:在复杂的程序设计中,采用模块化结构可以划分功能、分界程序,使得程序有复杂变简单,变清晰。

南昌大学计算机控制实验报告数/模转换实验

南昌大学计算机控制实验报告数/模转换实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:实验一数/模转换实验一.实验要求掌握DAC0832芯片的性能、使用方法及对应的硬件电路。

编写程序控制D/A输出的波形,使其输出周期性的三角波。

二.实验说明电路实现见主板模块B1,具体说明请见用户手册。

DAC0832的片选CS0832接00H,观察输出端OUTl(B1部分)产生三角波由数字量的增减来控制,同时要注意三角波要分两段来产生。

三.实验步骤1、接线:此处无需接线。

2、示例程序:见Cpl源文件,程序流程如下图所示。

3、运行虚拟示波器方法:打开LCAACT软件中“设置”一>“实验机”,将其中的程序段地址设为8100,偏移地址0000。

然后选择“设置”一>“环境参数”一>“普通示波”,选择“工具”一>“加载目标文件”,本实验加载C:\AEDK\LCAACT\试验软件\CPI.EXE,然后选择在“工具”栏中“软件示波器”中“普通示波”,点击开始示波器即程序运行。

以后每个实验中的虚拟示波器运行方法同上。

只是加载的程序要根据实验的不同而不同。

如果以后用到该方法,不再赘述。

4、现象:程序执行,用虚拟示波器(CHl)观察输出点OUT(B1开始设置初始电平为0VD/A输出并增<=0FFH?YN数模转换中),可以测量到连续的周期性三角波。

通过实验结果的图片,我们可以知道得出来的三角波的幅值为U=(3.01V+1.95V)=4.96V。

T=1.3s模拟输出来的幅值和我们输入的5V有一定的偏差。

相对误差为(5-4.96)/5=0.8%,因为0832是8为的,所以分辨率为1/256即0.004。

相比较一下本次实验的误差只有0.8%,相当于掉了两个单位的分辨率。

在允许的误差范围之内。

所以本次实验的结果还算是比较成功的。

四、实验小结通过本次实验,我对数模转换的知识理解得更加透彻,以及如何使用DAC0832进行数模转换把数字量转换为模拟量并以三角波形式输出。

《微机原理实验五循环结构的程序设计:排序程序设计实验》

《微机原理实验五循环结构的程序设计:排序程序设计实验》

实验五循环结构的程序设计:排序程序设计实验1、实验目的(1)掌握接收键盘数据的方法。

(2)掌握循环结构的程序设计和排序程序设计的方法。

(3)进一步熟练在PC上建立、汇编、链接、调试和运行汇编语言程序的过程。

2、实验内容用汇编语言编写学生成绩统计程序:键盘输入学生成绩到SCORE中(0<=分数<=100,设有10个学生成绩分别是56,69,84,82,73,88,99,63,100,80)。

编程将它们由大到小排序,存回到原来的SCORE变量中;并统计低于60分、60~69、70~79、80~89、90~99及100分的人数,分别存放在S5、S6、S7、S8、S9、S10单元中。

3、实验及报告要求:(1)要求画出完整的程序流程图。

(2)根据流程图,编写完整的汇编代码源文件,要求写出所有伪指令和指令的注释;(3)编译、连接生成可执行文件,调试该可执行文件。

(4)写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的主要依据。

(5)实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法、汇编指令及汇编语言编程方法、微机原理学习方法作出总结。

4、思考题:如何从屏幕输出结果?YN输入DATAS SEGMENTBUFFER DB 80,81 DUP(0),'$' SCORE1 DB 10 DUP(0);此处输入数据段代码 DATAS ENDSSTACKS SEGMENTSTA DB 64 DUP(0)SP_TOP DB 0STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,STACKSMOV SS,AXLEA SP,SP_TOPLEA DX,BUFFERLEA DI,SCORE1MOV AH,0AHINT 21HLEA SI,BUFFERADD SI,2MOV DL,0MOV CX,10JU: MOV AL,[SI]JE EXITPUSH CXCMP AL,2CHJE CH1POP CXINC SIINC DLLOOP JUJMP EXITCH1:CMP DL,2JNE CH2MOV AL,[SI-2]SUB AL,30HMOV CL,10MUL CLMOV AH,0MOV BL,[SI-1]SUB BL,30HMOV [DI],ALPOP CXINC DIINC SIMOV DL,0LOOP JUCH2:MOV [DI],100POP CXINC DIINC SIMOV DL,0LOOP JUEXIT: MOV AH,4CHINT 21HCODES ENDSEND START记人数DATA SEGMENTSCORE DB 67S5 db 0S6 db 0S7 db 0S8 db 0S9 db 0S10 db 0TABLE DW NP,NP,NP,NP,NP,NP,S60,S70,S80,S90,S100 DATA ENDSCODE SEGMENT 'CODE'ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX MOV AH,0LEA SI,SCORESP: MOV AL,[SI]MOV BL,10DIV BLSAL AL,1MOV BL,ALMOV BH,0JMP TABLE[BX]S100: INC S10 JMP NEXTS90: INC S9 JMP NEXTS80: INC S8JMP NEXTS70: INC S7JMP NEXTS60: INC S6JMP NEXTNP: INC S5 NEXT:INC SILOOP SP FINISH: MOV AH,4CH INT 21HCODE ENDSEND START排序DATAS SEGMENTSTR DB 'PLS INPUT SCORE (0-100):',0DH,0AH,'$' SCORE DB 20DB 81 DUP(0)DB '$';此处输入数据段代码SC DB 10 DUP(0)DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;此处输入代码段代码LEA DX,STR ;调显示字符串的首地址MOV AH,9INT 21H ;字符串显示LEA DX,SCORE ;调字符串存放单元的首地址MOV AH,0AHINT 21H ;字符串输入 LEA DI,SCLEA SI,SCOREADD SI,2COMP: MOV AL,[SI]CMP AL,0DHJZ EXITCMP AL,2CHJZ NEXT1INC SILOOP COMPNEXT1:MOV AL,[SI]MOV AL,[SI-1]SUB AL,30HADD BL,ALMOV [DI],BLINC DIINC SIJMP COMPEXIT:MOV AH,4CHINT 21H ;返回操作系统CODES ENDSEND START。

南昌大学微机原理与接口实验五

南昌大学微机原理与接口实验五

南昌大学实验报告学生姓名:学号: 61004 专业班级:计科112班实验类型:□验证█综合□设计□创新实验日期: 2014-12-01 实验成绩:实验七 8255输入、输出实验1、实验目的(1)了解8255芯片结构及编程方法。

(2)了解8255输入/输出实验方法。

2、实验要求利用8255可编程并行口芯片,实现输入/输出,实验中用8255PA口作输出,PB口作输入。

3、实验器材(1)G2010+实验平台 1 台(2)G6W仿真器1 台(3)连线若干根(4)8253芯片(5)万用表1 块(6)Lab8088板1块4、实验电路:8255的/CS接译码器Y2(0A000H-0AFFFH),则命令字地址为0A003H,PA口地址为0A000H,PB口地址为0B001H,PC口地址为0B002H。

PA0-PA7(PA口)接L0-L7(LED发光二极管组),PB0-PB7(PB口)接K0-K7(K0-K7开关量发生器),再接上数据线和读/写信号,地址线只接 A0,A1即可,还要接上RESET信号,以便8255A可靠复位。

5、实验说明:可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。

本实验采用的是方式0:PA,PC口输出,PB口输入。

方式字为82H。

6、实验步骤:(1)使用实验平台锁进插座,如图连线,因8255片选信号为0A000H,所以,A口为0A000H、口为0A001H、C口为0A002H、命令口为0A003H。

(2)硬件测试:把G2010+G6W连PC机,在WINDOWS调试环境下点击[窗口/数据窗口/MEMORY],以打开MEMORY数据窗口,在打开的MEMORY窗口中的0A003H地址(即8255的片选空间)上写入控制字82H,在0A000H(8255的A口)上打入55H,0AAH等数字,LED发光二极管组对应点亮。

若不是,则硬件有问题。

(3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。

微机原理实验数据排序

微机原理实验数据排序

WORD格式广州大学学生实验报告开课学院及实验室:软件工程实验室418B2013年月日学院计算机科学与教育软件学院年级/专业/班姓名学号实验课程名称微机原理实验成绩实验项目名称数据排序指导老师陶文正一、实验要求给出一组随机数,将此组数据排序,使之成为有序数列二、实验目的了解数据排序的简单算法。

三、实验说明有序的数列更有利于查找。

本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。

再进行下一轮比较,找出第二大数据,直到全部数据有序。

WORD格式四、程序框图Lenequ10datasegmentArraydb5,2,1,0,2,3,8,6,5,9Changedb0dataendscodesegmentassumecs:code,ds:datastartprocnearmovax,datamovds,axSort:movbx,offsetArraymovcx,Len-1movChange,0Goon:moval,byteptr[bx]incbxcmpal,byteptr[bx]jngNext;前小后大,不交换movChange,1;前大后小,置交换标志movah,[bx]mov[bx],al;交换mov[bx-1],ahNext:loopGooncmpChange,0jneSortjmp$codeendsendstartWORD格式五、实验步骤(1)进入Wave6000,输入程序并检查,保存程序。

(2)“编译”程序。

(3)在指令“jmp$”处设断点。

(4)“全速执行”程序。

(5)在“数据窗口(MEMORE)Y”查看0400H开始的10个单元的内容,记录并分析实验结果。

结果:00010202030505060809实验结果分析:实验中的jne和jng都是条件跳转语句(<=),通过循环依次比较,Change是前两个数的交换标志六、总结刚开始运行程序,不理解代码中为什么要加置交换标志Change。

微机原理软件实验报告

微机原理软件实验报告

信息与通信工程学院微机原理软件实验报告班级:姓名:学号:日期:2011年12月实验一DEBUG的使用 (1)一、实验目的 (1)二、实验内容 (1)三、预习思考 (3)四、实验过程 (4)五、实验总结 (9)实验二分支、循环程序设计 (10)一、实验目的 (10)二、实验内容 (10)三、预习思考 (10)四、实验过程 (10)(一)、流程图 (11)(二)、源代码 (11)(三)、实验分析 (11)五、实验总结 (14)实验三代码转换程序设计 (15)一、实验目的 (15)二、实验内容 (15)三、预习思考 (15)四、实验过程 (16)(一)流程图 (16)(二)模块层次图 (16)(三)源代码 (17)(四)实验分析 (21)五、实验总结 (22)实验四子程序设计 (23)一、实验目的 (23)二、实验内容 (23)三、预习思考 (23)四、实验过程 (24)(一)流程图 (24)(二)模块层次图 (25)(三)源代码 (25)(四)实验分析 (34)五、实验总结 (35)实验五中断程序设计 (37)一、实验目的 (37)二、实验内容 (37)三、预习思考 (37)四、实验过程 (38)(一)流程图 (38)(二)源代码 (39)(三)实验分析 (45)五、实验总结 (46)实验一 DEBUG 的使用一、实验目的1.掌握汇编程序的编辑、编译、连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法。

二、实验内容1.用编辑软件,输入以下汇编语言源程序:DAT SEGMENTA DB 20B DB 15Y DB 3 DUP(0)Z DB 0,0DAT ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DATSTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATMOV DS,AXMOV AX,STAMOV SS,AXMOV AL,AMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,BMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL,ZMOV AH,Z+1MUL AHADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSUB1 ENDPCOD ENDSEND STAR2.通过编译,连接形成可执行文件。

微机原理实验报告(排序,计算)

微机原理实验报告(排序,计算)

《微机原理与接口技术实验报告》汇编语言循环结构程序设计一、实验目的1. 理解各种指令的功能。

2. 进一步学习程序的调试。

二、实验内容:1.编制程序,对这组数进行排序,并输出原数据及排序后数据; 2.利用DEBUG 调试工具,用D0命令,查看排序前后,内存数据的变化; 3.去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值; 4.用学过的压栈PUSH 和出栈POP 指令,将平均值按位逐个输出; 5.将平均值转化为二进制串,并将这组二进制串输出。

6. 所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在屏幕上。

三、程序流程图四、程序清单DATA SEGMENTSR DB 100,?,50 DUP (?)VAR DW 5 DUP (0)AVG DW ?TEN DW 10P DW3D DW 2X DW?Y DW?MESG1 DB 13,10,'PLEASE INPUT:$'XS1 DB 13,10,'ORIGIN:$'XS2 DB 13,10,'NOW:$'XS3 DB 13,10,'MAX:$'XS4 DB 13,10,'MIN:$'XS5 DB 13,10,'AVG:$'XS6 DB 13,10,'AVG2:$'DATA ENDSSTACK SEGMENTDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV ES,AXMOV DX,OFFSET MESG1MOV AH,09HINT 21HLEA DX,SRCLDMOV CX,5LEA SI,SRADD SI,2LEA DI,VARIN_LOOP:MOV x, 0MOV Y,0_INX:MOV AH, 01HINT 21H;-------------------------------- CMP AL, '0'JB OKKCMP AL, 3AHJB SUB_30H;-------------------------------- JMP OKK;-------------------------------- SUB_30H:SUB AL, '0'MOV AH, 0MOV Y, AXMOV AX, xMUL TENADD AX, YMOV x, AXJMP _INX;-------------------------------- OKK:MOV AX,xSTOSWINC SILOOP IN_LOOP;-------------------------ORIGIN--- MOV DX,OFFSET XS1MOV AH,09HINT 21HMOV CX,5LEA SI,VARLOOPXS1:CALL XSLOOP LOOPXS1;-------------------------------CLDMOV CX,4MOV DX,1LOOPPX: CALL PXINC DXLOOP LOOPPX;----------------------------NOW-- MOV DX,OFFSET XS2MOV AH,09HINT 21HMOV CX,5LEA SI,VARLOOPXS2:CALL XSLOOP LOOPXS2;----------------------------MAX--- MOV DX,OFFSET XS3MOV AH,09HINT 21HLEA SI,VARADD SI,8CALL XS;-----------------------------MIN--- MOV DX,OFFSET XS4MOV AH,09HINT 21HLEA SI,VARCALL XS;-----------------------AVG------ MOV DX,OFFSET XS5MOV AH,09HINT 21HMOV AX,[SI]MOV BX,[SI+2]ADD AX,BXMOV BX,[SI+4]ADD AX,BXCWDIDIV PLEA SI,AVGMOV [SI],AXCALL XS;----------------------AVG2---------- MOV DX,OFFSET XS6MOV AH,09HINT 21HMOV CX,16LEA SI,AVGMOV AX,[SI]LPAVG: CWDSHR AX,1 ;to CFJB ONEMOV DX,0JMP PPONE: MOV DX,1PP: PUSH DXLOOP LPAVGMOV CX,16AVG2XS:POP DXADD DL,30HMOV AH,02HINT 21HLOOP AVG2XSEXIT: MOV AH,4CHINT 21HXS PROCLODSWMOV BX,1ZL1: CWDIDIV TENPUSH DXCMP AX,0JZ ZL2INC BXJMP ZL1ZL2: POP DXADD DL,30HDEC BXMOV AH,2INT 21HJNZ ZL2MOV DL,20HMOV AH,02HINT 21HRETXS ENDPPX PROCPUSH CXMOV CX,5SUB CX,DXMOV SI,0RECMP: MOV AX,VAR[SI]CMP AX,VAR[SI+2]JLE NOCHXCHG AX,VAR[SI+2]XCHG AX,VAR[SI]NOCH: ADD SI,2LOOP RECMPPOP CXRETPX ENDPCODE ENDSEND START五、运行结果按照实验要求,我们输入了“300,250,280,240,260,”。

微机原理软件实验

微机原理软件实验

微机原理实验报告专业:工业工程姓名:刘雷学号:089094082指导老师:陈全目录软件实验一汇编语言程序的调试与运行 (3)一.实验目的 (3)二.实验内容 (3)三.程序框图 (3)四.程序清单 (4)五.调试步骤 (6)六.思考题 (6)软件实验二分支程序设计 (14)一.实验目的 (14)二.实验内容与要求 (14)三.程序框图 (15)四.程序清单: (16)五.思考题 (17)软件实验三循环程序设计 (18)一.实验目的 (18)二.实验内容与要求 (18)三.程序框图 (19)四.程序清单(将程序补充完整) (20)软件实验四子程序结构 (22)一.实验目的 (22)二.实验内容与要求 (22)三.程序框图: (23)四.部分程序清单 (23)五.步骤 (25)六.思考题 (25)软件实验一汇编语言程序的调试与运行一.实验目的1.学习数据传送和算术运算指令的用法2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DA TA2为首的5个内存单元中,结果送回DATA1处。

三.程序框图图1.1 两个多位十进制相加程序流程图四.程序清单DISP MACRO XMOV DL,X ;要显示的字符送DL寄存器MOV AH,02H ;DOS功能调用号是02HINT 21H ;21H中断程序是DOS功能调用ENDMDATA SEGMENTDATA1 DB '12732'DATA2 DB '06815'N EQU $-DA TA2DATA ENDSSTACK SEGMENT STACKSTA DB 20 DUP (?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DA TA START:MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXLEA SI,DATA1 ;☆MOV BX,0MOV CX,NCALL DISPL ;显示被加数DISP '+'LEA SI,DATA2MOV BX,0MOV CX,NCALL DISPL ;显示加数DISP '='LEA DI,DA TA1MOV CX,NCALL ADDA ;调用加法子程序LEA SI,DATA1MOV BX,0MOV CX,NCALL DISPL ;显示运算结果DISP 0DHDISP 0AHMOV AX,4C00HINT 21HDISPL PROC ;显示子程序DS1: MOV AH,02HMOV DL,[SI+BX]INT 21HINC BXLOOP DS1RETDISPL ENDPADDA PROC ;加法子程序PUSH CXMOV BX,0AD1: SUB BYTE PTR [SI+BX],30HSUB BYTE PTR [DI+BX],30HINC BXLOOP AD1POP CXPUSH CXMOV BX,N-1 ;☆☆CLCAD2: MOV AL,[SI+BX]ADC AL,[DI+BX]AAAMOV [DI+BX],ALDEC BXLOOP AD2POP CXPUSH CXMOV BX,0 ;☆☆☆AD3: ADD BYTE PTR [DI+BX],30HINC BXLOOP AD3POP CXRET ;☆☆☆☆ADDA ENDPCODE ENDSEND START五.调试步骤1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

汇编语言综合实验 --- 学生成绩排序(单链表实现)

汇编语言综合实验 --- 学生成绩排序(单链表实现)
②按学生的总成绩由高到低进行排序建立链表。
这一部分任务是按学生总成绩由高到低进行排序。采用单链表方式,给数据元素的链指针LINK字段装填数据,使LINK字段指向它的后继数据元素。步骤如下:
Ⅰ.初始时,数组元素的每个LINK字段值为0,表示数组元素没有被选中。扫描数组元素的SUM字段,从中找到第一个最大的数,将这个数组元素设置为链表的头,保存这个数组元素的位移量,并将其LINK字段设置为1,标记这个数组元素已被选中但尚未装填链指针。
重复上述步骤直到该结构体类型数组中的最后一个节点LINK字段置为1,该节点即为单链表的链尾。
③遍历单链表,即对学生成绩信息按总成绩由高到低输出。
首先将单链表的头指针赋值给BX,依次循环COUNT(学生人数)次输出每一个数组元素的值,每次输出结束后,将BX的值加上TYPE S_ARRAY(即加16字节),BX指向下一个数组元素的首地址。
②建立单链表,即完成对学生成绩信息的降序排列。
首先从所有数组元素中找出总成绩最大的一项,将该数组元素作为单链表的头指针,保存在DX中,同时将LINK字段赋值为1;
其次,从LINK字段为0的数组元素中找到总成绩最大的一项,将该数组元素的偏移地址作为前一节点的LINK字段值,同时将该节点的LINK字段值置为1;
图1-1程序主界面:
图1-2程序二级菜单界面:
2.排序功能的实现:
图1-2输入学生成绩界面:
图1-4按总分排序输出学生成绩信息:
3.设计思路:
(1)数据定义:
一个数据元素(一个学生的数据项)应该为一个结构类型,定义如下:
STUDENT STRUC;定义学生结构体
LINK DW 0;单链表指针,指向下一个节点偏移地址
Ⅰ.将链表的头元素的位移量送到BX寄存器。

南昌大学计算机网络实验(全)

南昌大学计算机网络实验(全)

实验报告实验课程:学生姓名:学号:专业班级:2013年 06月 08日目录实验1 网线制作及对等网配置 (3)实验2 安装与管理Windows 2000 Server (12)实验3:虚拟局域网(VLAN)综合实验 (25)实验4:广域网综合实验 (29)实验5:访问控制列表ACL配置实验 (36)南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:2013-3-24 实验成绩实验1 网线制作及对等网配置1、实验目的以实验1组建的小型局域网为基础熟悉和掌握:(1)组建一个基于IP协议的对等网及其测试方法。

(2)在对等网中实现共享硬、软件资源的配置、管理与使用。

2、实验设备每实验组PC机2台,集线器1台,打印机1台。

3、实验要求(1)实验任务:①规划IP参数,完成基于Windows98的模拟IP对等网的组建和参数设置。

②模拟进行网络环境下软、硬件资源共享的设置与使用。

③进行IP网络连接和IP参数的测试。

(2)实验预习①认真预习实验指导书,深入理解实验的目的与任务,熟悉实验步骤和基本环节。

②复习IP协议及其基本工作参数的概念。

③复习对等网的概念。

(3)实验报告①简要描述组成IP对等网的主要方法,需要哪些条件,实验中遇到了什么问题,如何解决的,以及本人的收获与感想。

②回答后面的实验思考题。

4、基础知识与实验原理对等网络(Peer to Peer)也称工作组模式,其特点是对等性,即网络中各计算机功的能相似,地位相同,不存在专用的服务器,每台计算机对网络中其他的计算机而言,既是服务器又是客户端,相互可以共享各自管理的软、硬件资源。

本实验是在实验室的环境下构建一个基于IP协议和Windows98的对等网,每一实验组的计算机组成一个工作组网络,同时也是一个独立的IP子网,其中的用户可以相互共享硬盘、打印机和应用程序等。

5、实验步骤(1)规划网络工作参数①各实验组的工作组名、计算机名、用户名的格式与实验1相同。

南昌大学计算机组成实验报告

南昌大学计算机组成实验报告

实验报告实验课程:计算机组织与结构学生姓名:学号:专业班级:目录实验一……………………………………………………寄存器实验二……………………………………………………运算器实验三…………………………………………数据输出、移位门实验四……………………………………微程序计数器uPC实验实验五……………………………………程序计数器PC实验实验六………………………………………存储器EM实验实验七………………………微程序控制-数据传送、数据输入输出南昌大学实验报告---(1)寄存器实验学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验目的了解模型机中各种寄存器结构、工作原理及其控制方法。

二、实验内容1:A、W寄存器实验2:R0、R1、R2、R3寄存器实验3:MAR地址寄存器、ST堆栈寄存器、OUT输出寄存器实验.三、实验要求利用COP2000实验仪上的K16..K23开关做为DBUS的数据,其它开关做为控制信号,将数据写入寄存器,这些寄存器包括累加器A,工作寄存器W,数据寄存器组R0..R3,地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。

四、主要实验步骤及处理结果1 A、W寄存器实验将55H写入A寄存器置控制信号为:按住CLOCK脉冲键,CLOCK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A 寄存器。

放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据55H被写入A寄存器。

将66H写入W寄存器置控制信号为:按住CLOCK脉冲键,CLOCK由高变低,这时寄存器W的黄色选择指示灯亮,表明选择W 寄存器。

放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据66H被写入W寄存器。

2 R0、R1、R2、R3寄存器实验将11H写入R0寄存器二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据11H置控制信号为:按住CLOCK脉冲键,CLOCK由高变低,这时寄存器R0的黄色选择指示灯亮,表明选择R0寄存器。

实验三、学生成绩名次排名实验

实验三、学生成绩名次排名实验

南昌大学实验报告学生姓名: 林海金 学 号: 6100210178 专业班级: 卓越通信101班 实验类型: 验证 □综合 □设计 □创新 实验日期: 2012-5-18 实验成绩:一、实验项目名称实验三、学生成绩名次排名实验二、实验目的熟悉和掌握排序编程方法。

三、实验要求根据提示将0~100之间的10个成绩存入首地址为1000H 的单元,1000H+i 表示学号为i 的学生的成绩,编写程序实现在2000H 开始的区域排出名次表,2000H+i 表示学号为i 的学生的名次,并将其显示在屏幕上。

四、实验程序框图开始段寄存器和堆栈初始化显示“请输入30个学生成绩”SI 指向成绩表首址学生数送CX调GETNUM ,读学生成绩送【SI 】中SI 加1指向下一单元学生数送CX DI 指向名次表首址调用SCAN 子程序,扫描成绩表计算名次,并转换成压缩BCD 码调用DISPI,显示排定的学生名次Y Y返回DOSCX-1为0?CX-1为0?N入口CX 入栈保护学生数送CXAL 中放最低成绩00HBX 和SI 均指向成绩表首址【SI 】送AL 中,DX 记录对应学号SI 加1指向下一单元将本次扫描成绩最高者清0CX 出栈返回AL>=【SI 】?CX-1=0?NYYN将BCD 码存入对应名次表单元显示空格显示完?Y NN五、实验程序CRLF MACRO ;宏定义,回车换行 MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AHINT 21HENDMDA TA SEGMENTSTUNUM EQU 30 ;学生数MESS1 DB 'Please input 30 score',0DH,0AH,'$' ;提示信息ERROR DB 'Input error,try again',0DH,0AH,'$' ;报错信息MESS2 DB 'The order is:',0DH,0AH,'$'EMARK DB ? ;报错标志ORG 1000H ;存放成绩地址SCORE DB 30 DUP(?) ;成绩表ORG 2000H ;存放名次地址SEQU DB 30 DUP(?) ;名次表DA TA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV SP,TOPMOV AH,09H ;显示提示信息MOV DX,OFFSET MESS1INT 21HMOV SI,OFFSET SCORE ;成绩表首址MOV CX,STUNUMMOV EMARK,0 ;报错标志清0UUU: CALL GETNUM ;调用子函数读取成绩CMP EMARK,01H ;判断是否出错JE START ;出错则重新开始MOV [SI],DL ;没出错则存入成绩INC SI ;指向下一个成绩单元地址LOOP UUU ;判断30个成绩是否读取完MOV CX,STUNUMMOV DI,OFFSET SEQU ;名次表首址VVV: CALL SCAN ;调用扫描子程序MOV AL,STUNUM ;学生总数SUB AL,CL ;计算名次INC ALMOV BX,DX ;学号PUSH AX ;将名次转换成压缩BCD码方便显示PUSH BXPUSH CXXOR AH,AHMOV BH,0AHDIV BHMOV CL,4SHL AL,CLADD AL,AHMOV DH,ALPOP CXPOP BXPOP AXMOV [DI+BX],DH ;存入名次LOOP VVV ;判断是否存完MOV AH,09H ;显示名次提示信息LEA DX,MESS2INT 21HMOV SI,OFFSET SEQUWWW: MOV AL,[SI]CALL DISPI ;调用子函数显示名次PUSH DXPUSH AXMOV AH,02 ;显示空格MOV DL,20HINT 21HPOP AXPOP DXINC SI ;指向名次表的下一个地址LOOP WWW ;判断是否输出所有名次MOV AH,4CH ;返回DOSINT 21H ;扫面子函数,没调用一遍,找出成绩表SCAN PROC NEAR ;中最高成绩,记录其学号,并将此成绩PUSH CX ;清0MOV CX,STUNUMMOV AL,00HMOV BX,OFFSET SCOREMOV SI,BXCCC: CMP AL,[SI]JAE JJJMOV AL,[SI]MOV DX,SISUB DX,BXJJJ: INC SILOOP CCCADD BX,DXMOV BYTE PTR [BX],00HPOP CXRETSCAN ENDPDISPI PROC NEAR ;显示子程序PUSH CXMOV BL,AL ;显示高4位MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BL ;显示低4位AND DL,0FHCALL DISPLPOP CXRETDISPI ENDPDISPL PROC NEAR ;将名次转换成对应的ASCII码值并显示ADD DL,30HMOV AH,02HINT 21HRETDISPL ENDPGETNUM PROC NEAR ;读取成绩子函数PUSH CXXOR DX,DX ;清0,用于存放成绩GGG: M OV AH,01HINT 21H ;键盘字符输入JZ RRR ;如果是回车则结束SUB AL,30HJB ERR ;小于0则报错CMP AL,09HJBE GETS ;如果在0—9之间则存成绩至DXJMP ERR ;否则报错GETS: MOV CL,04SHL DX,CL ;将DX中已有数值左移四位XOR AH,AHADD DX,AX ;紧接着将数据存在DX中低四位JMP GGG ;跳转继续读取数据ERR: MOV AH,09H ;显示报错信息MOV DX,OFFSET ERRORINT 21HMOV EMARK,01H ;报错标志置1RRR: PUSH DXCRLF ;回车换行POP DXPOP CXRETGETNUM ENDPCODE ENDSEND START六、实验步骤1、在DOS系统下编写上述程序,编译,链接,调试;2、运行程序,随机输入十个学生成绩时,如67 88 90 76 54 65 87 79 77 93显示的结果为:08 03 02 07 10 09 04 05 06 01。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十六学生成绩名次表实验
一.实验要求
根据提示将0~100之间的10个成绩存入首址为1000H的单元,1000H+i表示学号为i 的学生成绩,编写程序能在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次,并将其显示在屏幕上。

二.实验目的
进一步熟悉排序方法。

三.实验程序框图
四.实验程序:
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
STUNUM EQU 10
MESS1 DB '请依次输入1-10号学生的成绩',0DH,0AH,'$' ERROR DB '输入错误,请重新输入!',0DH,0AH,'$'
MESS2 DB '1-10号学生名次依次为:',0DH,0AH,'$' EMARK DB ?
ORG 1000H
SCORE DB 30 DUP(?)
ORG 2000H
SEQU DB 30 DUP(?)
DATA ENDS
STACK SEGMENT
STA DW 32 DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP ;初始化
MOV AH,09H
MOV DX,OFFSET MESS1
INT 21H ;显示提示信息
MOV SI,OFFSET SCORE ;成绩表首址
MOV CX,STUNUM ;学生数送CX
MOV EMARK,0
UUU: CALL GETNUM ;读取键入数值送DX CMP EMARK,01H
JE START
MOV [SI],DL ;存入成绩表缓冲区中
INC SI ;指向下一单元
LOOP UUU
MOV CX,STUNUM ;学生数
MOV DI,OFFSET SEQU ;名次表首址
VVV: CALL SCAN ;扫描子程序
MOV AL,STUNUM ;学生数
SUB AL,CL
INC AL ;计算名次
MOV BX,DX
DAA
MOV [DI+BX],AL ;记DX学号对应名次
LOOP VVV
MOV AH,09H
LEA DX,MESS2
INT 21H
MOV CX,STUNUM ;学生数
MOV SI,OFFSET SEQU ;名次表首址
WWW: MOV AL,[SI]
CALL DISPI
PUSH DX
PUSH AX
MOV AH,02
MOV DL,20H
INT 21H
POP AX
POP DX
INC SI
LOOP WWW ;显示排定的学生名次
MOV AX,4C00H
INT 21H
SCAN PROC NEAR ;子程序,每扫描一遍成绩表缓冲区, 找出其成绩最高者
;(由DX指针指示对应学生),之后将该成绩清除以
便下一次扫描
MOV DX,0
PUSH CX
MOV CX,STUNUM ;学生数
MOV AL,00H ;最低成绩
MOV BX,OFFSET SCORE
MOV SI,BX ;指向成绩表首址
CCC: CMP AL,[SI]
JAE JJJ ;AL中的成绩不低于成绩表指针SI所指单元的成绩则转
JJJ
MOV AL,[SI] ;AL存放较高的成绩
MOV DX,SI
SUB DX,BX ;DX为对应学号
JJJ: INC SI ;指向下一单元
LOOP CCC
ADD BX,DX
MOV BYTE PTR [BX],00H ;本次扫描成绩最高者清0
POP CX
RET
SCAN ENDP
DISPI PROC NEAR ;显示子程序
PUSH CX
MOV BL,AL
MOV DL,BL
MOV CL,04
ROL DL,CL
AND DL,0FH
CALL DISPL
MOV DL,BL
AND DL,0FH
CALL DISPL
POP CX
RET
DISPI ENDP
DISPL PROC NEAR
ADD DL,30H
CMP DL,3AH
JB DDD
ADD DL,27H
DDD: MOV AH,02H
INT 21H
RET
DISPL ENDP
GETNUM PROC NEAR ;键读入子程序PUSH CX
XOR DX,DX
GGG: MOV AH,01H
INT 21H
CMP AL,0DH
JZ PPP
SUB AL,30H
JB KKK
CMP AL,09H
JBE GETS
JMP KKK
GETS: PUSH AX
MOV AL,DL
MOV CL,10
MUL CL
MOV DX,AX
POP AX
XOR AH,AH
ADD DX,AX
CMP DX,100
JA KKK
JMP GGG
KKK: MOV AH,09H
MOV DX,OFFSET ERROR
INT 21H
MOV EMARK,01H
PPP: PUSH DX
CRLF
POP DX
POP CX
RET
GETNUM ENDP
CODE ENDS
END START。

相关文档
最新文档