华中科技大学汇编实验报告2
- 格式:docx
- 大小:154.27 KB
- 文档页数:11
2012 级《信号与控制综合实验》课程实验报告(基本实验一:信号与系统基本实验)姓名学号U2012 专业班号电气12 同组者1 学号U2012指导教师日期实验成绩评阅人实验评分表目录1实验一、常用信号的观察 (1)2实验二、零输入相应、零状态响应及完全响应 (4)3实验五、无源滤波器与有源滤波器 (9)4实验六、LPF、HPF、BPF、BEF间的变换 (18)5实验七、信号的采样与恢复 (25)6实验八、调制与解调 (30)7思考与体会 (31)8参考文献 (39)1 实验一常见信号的观察1.1任务和目标了解常见信号的波形和特点。
了解常见信号有关参数的测量,学会观察常见信号组合函数的波形。
学会使用函数发生器和示波器,了解所用仪器原理与所观察信号的关系。
掌握基本的误差观赏和分析方法。
1.2原理分析描述信号的方法有很多种,可以用数学表达式(时间的函数),也可以用函数图形(信号的波形)。
信号可以分为周期信号和非周期信号两种。
普通示波器可以观察周期信号,具有暂态拍摄功能的示波器可以观察到非周期信号的波形。
目前,常用的数字示波器可以非常方便地观察周期信号及非周期信号的波形。
1.3实验方案(1)观察常用的正弦波、方波、三角波、锯齿波等信号及一些组合函数的波形。
(2)用示波器测量信号,读取信号的幅值和频率。
1.4具体实现(1)接通函数发生器电源。
(2)调节函数发生器选择不同频率、不同波形输出。
(3)用数字示波器观察各发生器输出函数波形、幅值、频率等特性。
1.5实验结果(1)正弦信号观察与测量,波形如图1-1所示。
图1-1 正弦波示波器测量显示,该正弦波的幅值为A=V p-p/2=2.08V/2=1.04V 频率为f=1.000kHz 函数可表示为:y=1.04sin(2kπt) V(2)方波的观察与测量,波形如图1-2所示。
图1-2方波的幅值为A=V p-p/2=2.08V/2=1.04V 频率f=1.000kHz函数可以表示为t 4 ωt1ωt1ωtπ其中,Um=A=1.04V ω=2πf=2kπ3、三角波的观察与测量,波形如图1-3所示。
电气学科大类《计算机原理与应用实验》课程实验报告电气与电子工程学院级姓名:学号:专业班号:日期:2014年1月7日实验成绩:评阅人:实验评分表目录实验评分表错误!未指定书签。
实验一:软件安装与使用错误!未指定书签。
一、实验目的错误!未指定书签。
二、实验设备错误!未指定书签。
三、实验任务错误!未指定书签。
四、实验原理错误!未指定书签。
五、实验内容错误!未指定书签。
六、实验过程及结果错误!未指定书签。
七、实验感想八、参考文献实验二:汇编语言实例讲解与程序编写一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验三:基于软件的最小系统硬件设计一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验四:基于最小系统的汇编程序设计一、实验目的错误!未指定书签。
二、实验设备错误!未指定书签。
三、实验任务错误!未指定书签。
四、实验原理错误!未指定书签。
五、实验内容六、实验过程及结果七、实验感想八、参考文献实验五:并行接口实验(演示实验)一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验六:工频测频接口电路设计与实现一、实验目的二、实验设备三、实验任务四、实验原理五、实验内容六、实验过程及结果七、实验感想八、参考文献实验一:软件安装与使用一、实验目的通过本实验学习软件的安装与使用。
二、实验设备微机一台,仿真软件三、实验任务.安装仿真软件。
.利用仿真软件编程。
四、实验原理仿真软件就是在下的一种仿真软件,它可以仿真模拟的程序运行,并且可以直观地观察寄存器的变化情况。
结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟),还有一个循序渐进的指导工具。
这对刚开始学组合语言的人会是一个很有用的工具。
它会在模拟器中一步一步的编译程序码并执行,视觉化的工作环境让它更容易使用。
课程实验报告课程名称:计算机系统基础专业班级:学号:姓名:指导教师:报告日期:2016年5月24 日计算机科学与技术学院目录实验1: (2)实验2: (9)实验3: (22)实验总结 (30)实验1:数据表示1.1 实验概述本实验的目的是更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。
实验中,你需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中你将加深对数据二进制编码表示的了解。
实验语言:c; 实验环境: linux1.2 实验内容需要完成bits.c 中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。
1.3 实验设计源码如下:/** lsbZero - set 0 to the least significant bit of x* Example: lsbZero(0x87654321) = 0x87654320* Legal ops: ! ~ & ^ | + << >>* Max ops: 5* Rating: 1*/int lsbZero(int x) {//x右移一位再左移一位实现把最低有效位置0x = x>>1;x = x<<1;return x;}/** byteNot - bit-inversion to byte n from word x* Bytes numbered from 0 (LSB) to 3 (MSB)* Examples: getByteNot(0x12345678,1) = 0x1234A978* Legal ops: ! ~ & ^ | + << >>* Max ops: 6* Rating: 2*/int byteNot(int x, int n) {//x第n个字节每位都和1异或实现取反int y = 0xff;n = n<<3;y = y<<n;x = (x^y);return x;}/** byteXor - compare the nth byte of x and y, if it is same, return 0, if not, return 1* example: byteXor(0x12345678, 0x87654321, 1) = 1* byteXor(0x12345678, 0x87344321, 2) = 0* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 2*/int byteXor(int x, int y, int n) {//把x和y的第n个字节取出来异或,再转换为逻辑的0和1n = n<<3;x = x>>n;y = y>>n;x = x&(0xff);y = y&(0xff);return !!(x^y);}/** logicalAnd - x && y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int logicalAnd(int x, int y) {//把x和y分别转化为逻辑的0和1,再相与x = (!(!x))&(!(!y));return x;}/** logicalOr - x || y* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int logicalOr(int x, int y) {//把x和y分别转化为逻辑的0和1,再相或x = (!(!x))|(!(!y));return x;}/** rotateLeft - Rotate x to the left by n* Can assume that 0 <= n <= 31* Examples: rotateLeft(0x87654321,4) = 0x76543218* Legal ops: ~ & ^ | + << >> !* Max ops: 25* Rating: 3*/int rotateLeft(int x, int n) {//先构造低n位为1,高(32-n)位为0的数z,x左移n位后的数加上x右移(32-n)位的数&z即可int z;z = ~(((1<<31)>>31)<<n);x = ((x>>(32+(~n+1)))&z)+(x<<n);return x;}/** parityCheck - returns 1 if x contains an odd number of 1's* Examples: parityCheck(5) = 0, parityCheck(7) = 1* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 4*/int parityCheck(int x) {//每次将数的低半数位与高半数位比较,再把y右移31位,最后把y转化为逻辑的0和1int y;y = x<<16;y = y^x;y = y^(y<<8);y = y^(y<<4);y = y^(y<<2);y = y^(y<<1);y = y>>31;return !(!y);}/** mul2OK - Determine if can compute 2*x without overflow* Examples: mul2OK(0x30000000) = 1* mul2OK(0x40000000) = 0** Legal ops: ~ & ^ | + << >>* Max ops: 20* Rating: 2*/int mul2OK(int x) {//把x第31位和30位分别和1做按位与,再异或,再和1异或int m;m = ((x>>31)&0x1)^((x>>30)&0x1);return m^0x1;}/** mult3div2 - multiplies by 3/2 rounding toward 0,* Should exactly duplicate effect of C expression (x*3/2),* including overflow behavior.* Examples: mult3div2(11) = 16* mult3div2(-9) = -13* mult3div2(1073741824) = -536870912(overflow)* Legal ops: ! ~ & ^ | + << >>* Max ops: 12* Rating: 2*/int mult3div2(int x) {//左移一位再+x即x*3,右移一位的时候,当y的最高位和最低位都为0时还要+1int y = (x<<1)+x;y = (y>>1)+(((y>>31)&1)&(((y<<31)>>31)&1));return y;}/** subOK - Determine if can compute x-y without overflow* Example: subOK(0x80000000,0x80000000) = 1,* subOK(0x80000000,0x70000000) = 0,* Legal ops: ! ~ & ^ | + << >>* Max ops: 20* Rating: 3*/int subOK(int x, int y) {//x的最高有效位和y的最高有效位不同且x和(x-y)的最高位不同才能判断溢出int m = (x>>31)&1;int n = (y>>31)&1;x = (m^n)&(m^(((x+(~y+1))>>31)&1));return (!x);}/** absVal - absolute value of x* Example: absVal(-1) = 1.* You may assume -TMax <= x <= TMax* Legal ops: ! ~ & ^ | + << >>* Max ops: 10* Rating: 4*/int absVal(int x) {//x最高位为0时就是x,最高位为1时是~x+1int y = x>>31;x = (y&(~x+1))+((~y)&x);return x;}/** float_abs - Return bit-level equivalent of absolute value of f for * floating point argument f.* Both the argument and result are passed as unsigned int's, but * they are to be interpreted as the bit-level representations of * single-precision floating point values.* When argument is NaN, return argument..* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while* Max ops: 10* Rating: 2*/unsigned float_abs(unsigned uf) {int x=uf&(~(1<<31));if(x>0x7f800000){return uf;}else return x;}/** float_f2i - Return bit-level equivalent of expression (int) f* for floating point argument f.* Argument is passed as unsigned int, but* it is to be interpreted as the bit-level representation of a* single-precision floating point value.* Anything out of range (including NaN and infinity) should return * 0x80000000u.* Legal ops: Any integer/unsigned operations incl. ||, &&. also if, while* Max ops: 30* Rating: 4*/int float_f2i(unsigned uf) {unsigned num=0x80000000;int x=(uf&0x007fffff)^0x00800000;int order=0;order=(uf&0x7f800000)>>23;if(order>158){return num;}if(order<127) return 0;else if(((uf>>31)&1)==1){if(order>150){return ~(x<<(order-150))+1;}else return ~(x>>(150-order))+1;}else{if(order>150) return x<<(order-150);else return x>>(150-order);}}1.4 实验过程编写源码,运行btest,得出实验结果。
课程实验报告课程名称:汇编语言程序设计实验实验名称:实验一简单程序设计 TD的使用实验时间: 2016-3-22,14:00-17:30 实验地点:南一楼804室74号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威同组学生:无报告日期:2016年 3 月23日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。
除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。
特此声明!学生签名:日期:成绩评定实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分)(报告规范、完整、通顺、详实等)总成绩(100分)指导教师签字:日期:查和对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查,并中资试卷目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (2)3.1.3源程序 (2)3.1.4实验步骤 (2)3.1.5实验记录 (2)3.2任务2 (4)3.2.1设计思想及存储单元分配 (4)3.2.2流程图 (4)3.2.3源程序 (4)3.2.4实验步骤 (4)3.2.5实验记录 (4)3.3任务3 (6)3.3.1设计思想及存储单元分配 (6)3.3.2流程图 (6)3.3.3源程序 (6)3.3.4实验步骤 (7)3.3.5实验记录 (7)4体会 (7)参考文献 (8)1实验目的与要求掌握汇编源程序编译工具、汇编程序、连接程序、调试工具的使用;理解数、符号、寻址方式等在计算机内的表现形式;理解指令执行与标志位之间的关系;熟悉常用的DOS功能调用。
2实验内容任务1. 《80X86汇编语言程序设计》教材中P31的1.14题。
汇编实验报告姓名:班级:CS1209 学号:一、实验目的(1) 掌握汇编源程序开发的过程:编译、汇编MASM、连接LINK、用TD调试。
(2)编写简单的汇编代码,加强对汇编语言的理解。
二、实验内容及要求(1)、《80X86汇编语言程序设计》P299中的程序实例。
要求:重复7.4.3节中的整个过程,初步掌握TD的使用方法。
(2)、《80X86汇编语言程序设计》P31中的1.14题。
要求:直接在TD中输入指令进行求和(如MOV AH, x1、MOV AL, x2、ADD AH, AL),记录执行指令后标志位SF、OF、CF、ZF的值(验证自己的作业情况)。
(3)、编写程序缓冲区BUF中有若干个有符号短整数(2个字节),找出其中的绝对值最大的数并存放到变量RESULT中。
要求:在BUF中定义不同的正负数,用TD查看变量RESULT的值是否正确。
三、实验步骤题目一,从键盘中输入一个字符,若该字符为‘1’,则在下一行输出字符串‘11111111111!’后返回DOS;若该字符为‘2’,则在下一行输出字符串‘22222222222!‘后返回DOS;若该字符为其他字符,则在下一行输出字符串’Other Character’后返回DOS。
通过TD调试找出下面代码的错误并改正。
1、用记事本建立汇编源程序文件WAN.ASM.386STACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSDATA SEGMENT USE16BUF1 DB 0AH,0DH,'1111111111! $'BUF2 DB 0AH,0DH,'2222222222! $'BUF3 DB 0AH,0DH,'Other Character!',0AH,0DHDATA ENDSCODE SEGMENT USE16ASSUME DS:DATA,CS:CODE,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AH,1INT 21H ;等待从键盘输入一个字符CMP AL,'1'JE A1CMP AL,'2'JE A2JMP A3A1: LEA DX,BUF1MOV AH,9INT 21HA2: LEA DX,BUF2MOV AH,9INT 21HA3: LEA DX,BUF3MOV AH,9INT 21HEXIT: MOV AH,4CHINT 21HCODE ENDSEND START2.编译连接该程序3.运行程序中出现了如下问题。
电力系统综合实验报告第一部分综合实验台1、实验目的通过实验加深对电力系统暂态稳定性内容的理解,在对不同类型短路数据的分析中锻炼独立思考的能力,进一步了解不同短路故障对电力系统的危害。
实验方式为在理想实验台上模拟最简单的电力系统暂态稳定性问题,以期巩固学生在前一阶段的学习中对相关内容的掌握。
2、实验原理与接线电力系统中不同类型的短路故障引起的最大短路电流可由下式得到,推导过程可参见《电力系统分析》一书相关章节内容。
单相接地短路:两相相间短路:两相接地短路:三相对称短路:如下图1实验接线模拟了单机无穷大系统。
图1单机无穷大系统3、实验结果与数据分析⑴、不同故障类型对短路电流影响在下表中根据QF1~QF6的开断来选择单机无穷大系统的运行方式。
XL1接入双回线运行、XL2接入双回线运行。
表格 1 短路切除时间0.5s单相接地短路实验数据表格 3 短路切除时间0.5s两相接地短路实验数据根据以上表格得出以下结论:1)在各种不同类型的短路中,系统以双回线运行时短路电流较系统单回线运行时短路电流更大,与序网分析结果一致。
2)在各种不同类型的短路中,XL1接入时短路电流相对XL2接入时短路电流更小,以单相短路为例进行分析,可知接入XL阻抗越小,短路电流越大。
判断实验台设置中XL1大于XL2。
3)对比各组实验数据,发现短路电流大小在不同短路类型中呈现有以下关系。
两相相间短路两相接地短路三相接地短路单相接地短路根据相关实验原理分析,由于,一般有三相接地短路两相接地短路单相接地短路两相相间短路。
实验台中元件参数不可测量,经分析判断本次实验中负序阻抗偏小导致了两相短路电流偏大的现象发生。
4)小组实验中发现通过实验台面板调节似乎无法改变内部默认参数,继电器动作阈值无法重新整定,动作电流始终为5A,导致实验中多次出现未按预期跳闸的现象发生。
可能因为设备老化或内部模块未连接。
⑵、不同故障切除时间对短路电流影响表格 5 不同短路切除时间最大短路电流记录由I第二部分 动模实验记录的量:故障线路首端和末端电压电流(6个波形)电压电流的测量可以通过电压电流表计模型测量,也可以通过断路器和节点测量。
课程实验报告课程名称:汇编语言程序设计实验实验名称:实验二分支程序、循环程序的设计实验时间: 2016-3-29,14:00-17:30 实验地点:南一楼804室63号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号: U201414813 姓名:唐礼威同组学生:无报告日期: 2016年 3 月 30日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。
除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。
特此声明!学生签名:日期:成绩评定指导教师签字:日期:目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (3)3.1.3源程序 (3)3.1.4实验步骤 (6)3.1.5实验记录 (7)4体会 (8)参考文献 (9)1实验目的与要求1、熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法;2、加深对转移指令及一些常用的汇编指令的理解;3、加深对常用DOS功能调用指令的理解,进一步熟悉TD的使用。
2实验内容设计实现一个学生成绩查询的程序。
1、实验背景在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。
例如:N EQU 1000BUF DB ‘zhangsan’,0,0 ;学生姓名,不足10个字节的部分用0填充DB 100, 85, 80,? ; 平均成绩还未计算DB ‘lisi’,6 DUP(0)DB 80, 100, 70,?DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的成绩表以外,其他学生的信息暂时假定为一样的。
汇编语言实验报告学院:计算机学院专业:网络工程指导老师:纪平实验一汇编语言程序调试方法一、实验目的,1,熟悉汇编语言运行环境和方法2,了解如何使用汇编语言编制程序3,熟悉debug有关命令的使用方法4,利用debug掌握有关指令的功能5,利用debug运行简单的程序段二、实验内容1,学会输入、编辑汇编语言程序2,学会对汇编语言程序进行汇编、连接和运行3,进入和退出debug程序4,学会debug中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
三、实验准备1,仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。
2,准备好程序清单、设计好调试步骤、测试方法、对运行结果的分析3,编写一个程序:比较2个字符串所含的字符是否相同。
若相同则显示’Match.’,否则显示’No match!’。
4,仔细阅读有关debug命令的内容,对有关命令,都要事先准备好使用的例子。
四、实验步骤1,在DOS提示符下,进入masm目录。
2,在MASM目录下启动edit编辑程序,输入源程序,并对其进行汇编、连接和运行。
(1)调用edit输入、编辑源程序并保存在指定的目录中。
例:edit abc.asm(2)用汇编程序masm对源程序汇编产生目标文件obj。
例:masm abc(3)用连接程序link产生执行文件exe。
例:link abc(4)执行程序3,详细记录每一步所用的命令,以及查看结果的方法和具体结果。
五、实验结果1,输入sample.asm的源码;PROGRAM TITLE GOES HERE--Compare string;************************************************************************** **datarea segment ;define data segmentstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.';mess1 db 'Match',13,10,'$'mess2 db 'No match!',13,10,'$'datarea ends;************************************************************************** **program segment ;define code segment;----------------------------------------------------------------------------main proc farassume cs:program,ds:datarea,es:datareastart: ;starting execution address;set up stack for returnpush ds ;save old data segmentsub ax,ax ;put zero in AXpush ax ;save it on stack;set DS register to current data segmentmov ax,datarea ;datarea segment addrmov ds,ax ;into DS registermov es,ax ;into ES register;MAIN PART OF PROGRAM GOES HERElea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp:mov ah,09int 21hret ;return to DOSmain endp ;end of main part of program;--------------------------------------------------------------------program ends ;end of code segment;****************************************************************** **end start ;end assembly2,汇编生成目标文件3,连接生成exe文件4,执行程序5,调试程序-g命令在debug环境下运行该文件-d0(-d ds:ea)命令显示指定数据段地址中的内容-u命令显示汇编源程序-e ds:ea更改指定位置的内容实验二用DEBUG编程使用堆栈段AX和BX的内容进行交换等一、实验目的:1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2012 级《信号与控制综合实验》课程实验报告(基本实验一:信号与系统基本实验)姓名学号U2012 专业班号电气12同组者1 学号U2012 专业班号电气12指导教师日期实验成绩评阅人1实验评分表2目录1实验一、常用信号的观察 (1)2实验二、零输入相应、零状态响应及完全响应 (4)3实验五、无源滤波器与有源滤波器 (9)4实验六、LPF、HPF、BPF、BEF间的变换 (18)5实验七、信号的采样与恢复 (25)6实验八、调制与解调 (30)7思考与体会 (31)8参考文献 (39)31 实验一常见信号的观察1.1任务和目标了解常见信号的波形和特点。
了解常见信号有关参数的测量,学会观察常见信号组合函数的波形。
学会使用函数发生器和示波器,了解所用仪器原理与所观察信号的关系。
掌握基本的误差观赏和分析方法。
1.2原理分析描述信号的方法有很多种,可以用数学表达式(时间的函数),也可以用函数图形(信号的波形)。
信号可以分为周期信号和非周期信号两种。
普通示波器可以观察周期信号,具有暂态拍摄功能的示波器可以观察到非周期信号的波形。
目前,常用的数字示波器可以非常方便地观察周期信号及非周期信号的波形。
1.3实验方案(1)观察常用的正弦波、方波、三角波、锯齿波等信号及一些组合函数的波形。
(2)用示波器测量信号,读取信号的幅值和频率。
1.4具体实现4(1)接通函数发生器电源。
(2)调节函数发生器选择不同频率、不同波形输出。
(3)用数字示波器观察各发生器输出函数波形、幅值、频率等特性。
1.5实验结果(1)正弦信号观察与测量,波形如图1-1所示。
图1-1 正弦波示波器测量显示,该正弦波的幅值为A=V p-p/2=2.08V/2=1.04V频率为f=1.000kHz 函数可表示为:y=1.04sin(2kπt) V(2)方波的观察与测量,波形如图1-2所示。
5图1-2方波的幅值为A=V p-p/2=2.08V/2=1.04V 频率f=1.000kHz函数可以表示为U(t)=4Um(sin ωt+13sin3ωt+15sin5ωt−⋯)π其中,Um=A=1.04V ω=2πf=2kπ3、三角波的观察与测量,波形如图1-3所示。
2012 级《信号与控制综合实验》课程实 验 报 告(基本实验一:信号与系统基本实验)姓 名 曹 学 号 U2012 专业班号 水电1204班同组者1 招 学 号 U2012 专业班号 水电1204班指导教师 日 期 2015.1.3实验成绩 评 阅 人电气学科大类实验评分表基本实验实验编号名称/内容(此列由学生自己填写)实验分值评分二阶系统的模拟与动态研究二阶系统的稳态性能研究设计性实验实验名称/内容实验分值评分线性控制系统的设计与校正控制系统状态反馈控制器设计创新性实验实验名称/内容实验分值评分教师评价意见总分目录实验十一二阶系统的模拟与动态研究 (4)实验十二二阶系统的稳态性能研究 (10)实验十四线性控制系统的设计与校正 (24)实验十六控制系统状态反馈控制器设计 (28)实验心得 (33)实验十一 二阶系统的模拟与动态性能研究一、实验目的1.掌握典型二阶系统动态性能指标的测试方法。
2.通过实验和理论分析计算的比较,研究二阶系统的参数对其动态性能的影响。
二、实验原理典型二阶系统的方框图如图11-1:其闭环传递函数为:22222)(1)()(nn n s s k s Ts Ks G s G s ωξωωφ++=++=+=式中: TKKTn ==ωξ;21ζ为系统的阻尼比,n ω为系统的无阻尼自然频率。
任何二阶系统都可以化为上述的标准形式。
调节系统的开环增益K ,或时间常数T 可使系统的阻尼比分别为:0<ζ<1,ζ=1和ζ>1三种。
实验中能观测对应于这三种情况下的系统阶跃响应曲线是完全不同的。
三、实验设备和模拟电路图图11-1 典型二阶振荡环节的方框图s11+Ts K )(s R )(s C 图11-2 二阶系统模拟电路图电子模拟装置、数字示波器四、实验内容1、分别设置ξ=0;0<ξ<1;ξ> 1,观察并记录r(t)为正负方波信号时的输出波形C(t);分析此时相对应的各σp、ts,加以定性的讨论。
实验一汇编语言源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。
参考程序:MOV AX, 2000 ; AL= 00HMOV DS, AX ; DS= 2000HNOT AX ; AX= DFFFHXOR AX, AX ; AX= 0000HDEC AX ; AX= FFFFHINC AX ; AX= 0000HMOV BX, 2030 ; BH= 20HMOV SI, BX ; SI= 2030HMOV [SI], BL ; [2030H]= 30HMOV WORD PTR[SI], 10F ; [2030H]= 0FH[2031H]= 01H MOV DI, SI ; DI= 2030HMOV [DI+50], BH ; [DI+50H]= 20HMOV BH, [SI] ; BH= 0FHMOV BL, [DI+50] ; BL= 20HMOV SP, 5000PUSH AX ; AX= 0000H[SS:4FFEH]= 00H[SS:4FFFH]= 00HPUSH BX ; BX= 0F20H[SS:4FFCH]=20H [SS:4FFDH]= 0FHPOP AX ; AX= 0F20HPOPF ; F= 00000000NEG BX ; BX= F0E0HXCHG BX, AX ; BX= 0F20HSTD ; F= 01010001STI ; F= 01110001CLD ; F= 00110001CLI ; F= 00010001ADC DI, 2050 ; DI= 4081H F= 00000010 //执行过程中考虑上一条指令的进位标志2030【BI】+2050+1(上一条指令的进位标志)ADC SP, DI ; SP= 9081H F= 10010010 ADC AX, 1500 ; AX= 05E0H F= 00000001 SUB AX, BX ; AX= F6C0H BX= 0F20H SHL AH, 1 ; AH= ECHRCL AX, 1 ; AX= D981HSHR BH, 1 ; BH= 07HRCR BL, 1 ; BL= 90HMOV CL, 4MOV DX, 80F0ROL DX, CL ; DX= 0F08H CL= 04HINT 20 ; CS= 00A7H IP= 1072H实验二数据的建立与传送程序一、实验目的1. 继续学习DEBUG命令。
华中科技大学单片机实验二报告《单片机实验》报告实验名称分支程序设计指导教师刘冬生专业班级学号联系方式一.任务要求熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 元,请按要求编写程序。
240/2204020X X Y X X XX ?≥?=<<??≤?当当当2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二.设计思路1.分段函数设计对于第一个任务,根据变量X 的值的不同进行相应的计算。
所以我们首先要判断X 的值属于那个范围。
我们可利用比较转移指令CJNE 来判断X 是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY 的值来判断X 与临界值的的大小关系,如:CY=0则X 大于临界值,CY=1则X 小于临界值;然后根据X 的值所在的区间进行相应的计算。
应该注意的是,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储2.24进制时钟本程序须可以构建两部分循环。
首先构建一个三重循环实现“一秒延时”,循环体利用NOP 指令(单字节指令,1μs)经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。
秒和分计60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。
课程实验报告课程名称:汇编语言程序设计实验实验名称:实验四子程序的设计与调用,模块化程序设计实验时间: 2016-4-12,14:00-17:30 实验地点:南一楼804室73号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威同组学生:鲁凯报告日期:2016年 4 月18日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。
除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。
特此声明!学生签名:日期:成绩评定指导教师签字:日期:目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (3)3.1.3源程序 (4)3.1.4实验步骤 (12)3.1.5实验记录 (12)4体会 (14)参考文献 (15)1实验目的与要求(1) 掌握子程序设计的方法与技巧,熟悉子程序的参数传递方法和调用原理;(2) 掌握宏指令、模块化程序的设计方法;(3) 掌握较大规模程序的合作开发与调试方法。
2实验内容进一步修改与增强实验二的学生成绩查询程序的功能,具体要求如下:(1)程序执行时首先显示一个功能菜单:选择1=录入学生姓名和各科考试成绩,2=计算平均分,3=成绩排序,4=输出成绩单,5=程序退出。
提示:由于学生姓名和成绩是通过程序录入的,因此,定义学生成绩表缓冲区时,初始值都可以置零。
为避免录入成绩的时间过程太长,假定学生人数在5人左右,具体人数自行决定。
(2)2人一组,一人负责包括菜单显示、程序退出在内的主程序,以及菜单中的功能1和2;另一人负责菜单中的功能3和4。
各自汇编自己的模块,然后连接生成一个程序。
注意,在每个模块的开始,注明编写者的名字以及同组同学的名字。
(3)录入学生姓名和各科考试成绩时,首先显示录入的是第几个学生的信息,然后分别在提示之后输入姓名和各科成绩(可以借鉴书上十进制转二进制的子程序F10T2)。
篇一:汇编实验报告2汇编语言与接口课程实验报告实验名称循环与分支程序设计实验室名称班级________________软件93_______________ 学号_______________09161059_______________ 实验日期年月日评分教师实验报告成绩__________ 评分日期________年_______月________日一、二、实验目的实验环境实验内容熟悉汇编语言上机环境masm以及上机过程,学会设计循环与分支程序;掌握基本的输入输出及debug调试。
编程环境:masm for windows 集成实验环境 2011 三、预习:了解循环程序的结构形式,掌握do_while结构和do_until结构学会设置循环的初始状态、循环体和循环控制部分,掌握loop等指令了解分支程序的结构形式,掌握一般的控制转移指令及跳跃表法实验题目:1. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来2. 试编制一个汇编语言程序,求出首地址为data的100d字数组中的最小偶数,并把它存放在ax中3. 试编写一汇编语言程序,要求从键盘接收一个4位的十六进制数,并在终端上显示与它等值的二进制数实验步骤:实验一主要步骤:从键盘接收一个字符,判断是否为’0’,若是则退出;否则判断该字符是否介于’a’和’z’之间,若是输出空格,并给该字符减去20h后输出,再输出回车换行进行下一次操作,否则直接回车换行进行下次操作。
实验二主要步骤:循环初始设置,将最大的奇数ffff赋给ax(无符号),bx设为0(采用寄存器相对寻址法),cx设为100,循环100次;从数组读取一个字到dx中,test若最后一位为1则进行下次循环,否则与ax进行比较,如果小则交换,否则进行下次循环实验三主要步骤:循环四次从键盘接收四个字符并将其存放到一个数组中,每次判断如果字符为’q’,则退出,介于’0’到’9‘之间,减去30h,介于’a’到‘f’之间减去37h;然后对每个字节分别向右移动3、2、1、0位,与0x01相与后输出四、源程序清单、测试数据、运行结果实验一(1) 源程序清单start:mov ax,datasmov ds,ax;此处输入代码段代码 next:mov ah,01h int 21h cmp al,0 jz exit cmp al,a jl next1 cmp al,z jg next1 mov bl,al mov dl,20h mov ah,02h int 21hsub bl,20h mov dl,bl mov ah,02h int 21h next1:mov dl,0ah mov ah,02h int 21hmov dl,0dh mov ah,02h int 21h jmp next exit:mov ah,4chint 21h(2) 运行结果:实验二(1) 源程序清单: start:mov ax,datas mov ds,ax;此处输入代码段代码 mov ax,0ffffh mov cx,100 movbx,0loop1:mov dx,data[bx] test dx,0001h jnz next cmp dx,ax jge next mov ax,dx next:add bx,2 loop loop1 mov ah,4chint 21h(2) debug调试:实验三(1)源程序清单 start:movax,datas篇二:汇编第2次上机实验报告汇编语言上机实验报告时间: 2013-4-19,19:00-21:30 地点:南一楼803室实验人员:王涛实验一一、题目从键盘输入两串字符分别存入buf1和buf2区,比较两串内容是否相等,相等显示“match !”, 不相等显示“no match !”。
《单片机实验》报告实验名称分支程序设计指导教师刘冬生专业班级学号联系方式一. 任务要求熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 元,请按要求编写程序。
240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二. 设计思路1.分段函数设计对于第一个任务,根据变量X 的值的不同进行相应的计算。
所以我们首先要判断X 的值属于那个范围。
我们可利用比较转移指令CJNE 来判断X 是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY 的值来判断X 与临界值的的大小关系,如:CY=0则X 大于临界值,CY=1则X 小于临界值;然后根据X 的值所在的区间进行相应的计算。
应该注意的是,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储2.24进制时钟本程序须可以构建两部分循环。
首先构建一个三重循环实现“一秒延时”,循环体利用NOP 指令(单字节指令,1µs )经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。
秒和分计60次,小时计24次,但,是从0开始计,所以在分、秒达到59,小时达到23时,下一次应该为零。
课程实验报告课程名称:汇编语言程序设计实验实验名称:实验二分支程序、循环程序的设计实验时间: 2016-3-29,14:00-17:30 实验地点:南一楼804室63号实验台指导教师:张勇专业班级:计算机科学与技术201409班学号:U201414813 姓名:唐礼威同组学生:无报告日期:2016年 3 月30日原创性声明本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。
除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。
特此声明!学生签名:日期:成绩评定指导教师签字:日期:目录1实验目的与要求 (1)2实验内容 (1)3实验过程 (2)3.1任务1 (2)3.1.1设计思想及存储单元分配 (2)3.1.2流程图 (3)3.1.3源程序 (3)3.1.4实验步骤 (6)3.1.5实验记录 (7)4体会 (8)参考文献 (9)1实验目的与要求1、熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法;2、加深对转移指令及一些常用的汇编指令的理解;3、加深对常用DOS功能调用指令的理解,进一步熟悉TD的使用。
2实验内容设计实现一个学生成绩查询的程序。
1、实验背景在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。
例如:N EQU 1000BUF DB ‘zhangsan’,0,0 ;学生姓名,不足10个字节的部分用0填充DB 100, 85, 80,? ; 平均成绩还未计算DB ‘lisi’,6 DUP(0)DB 80, 100, 70,?DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的成绩表以外,其他学生的信息暂时假定为一样的。
DB ‘wangwu’,0,0,0,0DB 85, 85, 100, ?2、功能一:提示并输入学生姓名(1)使用9号DOS系统功能调用,提示用户输入学生姓名。
(2)使用10号DOS系统功能调用,输入学生姓名。
输入的姓名字符串放在以in_name为首址的存储区中。
(3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。
3、功能二:以学生姓名查询有无该学生(1)使用循环程序结构,在成绩表中查找该学生。
(2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。
(3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。
提示:字符串比较时,当采用输入串的长度作为循环次数时,若因循环次数减为0而终止循环,则还要去判断成绩表中名字串的下一个字符是否是结束符0,若是,才能确定找到了。
4、功能三:计算所有学生的平均成绩使用算数运算相关指令计算并保存每一个学生的平均成绩。
平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。
要求避免溢出。
提示:使用循环程序结构,注意寻址方式的灵活使用。
把小数3.5转换成分数后再运算避免使用浮点数指令。
5、功能四:将功能二查到的学生的平均成绩进行等级判断,并显示判断结果。
(1)平均成绩等级显示方式:若平均成绩大于等于90分,显示“A”;大于等于80分,显示“B”;大于等于70分,显示“C”;大于等于60分,显示“D”;小于60分,显示“F”。
提示:使用分支程序结构,采用2号DOS系统功能调用显示结果。
(2)使用转移指令回到“功能一(1)”处(提示并输入姓名)。
3实验过程3.1任务13.1.1设计思想及存储单元分配设计思想:本实验主要是要解决3个问题:一是提示并输入学生姓名;二是如何进行字符串的比较从而查询学生;三是如何计算平均分从而分出等级。
依据本次实验的要求,此处用分支、循环程序的结构及控制方法来解决。
寄存器分配:CX:存放学生数量(默认3),计数器作用;BX:存放目标学生下标值,得到分数缓冲区首地址;BP:存放缓冲区基地址;AL:存放平均成绩;AX,DX,SI:临时寄存器;3.1.2 流程图开始9号调用输出提示信息,10号调用输入查询学生姓名输入字符串为空?Y9号调用:是否继续,按任意键继续,按q 退出N结束YN CX=0?Y输出查找失败N缓冲区是否为零N当前字符是否匹配NCX--Y 缓冲区减一Y 计算平均成绩并输出等级3.1.3 源程序.386STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDSDATA SEGMENT USE16 N EQU 3BUF DB 'zhangsan',0,0 DB 100,85,80,? DB 'lisi',6 DUP(0) DB 80,100,70,? DB 'wangwu',4 DUP(0) DB 85,85,100,?MSG DB 'Input the name : $'CONTINU DB 'Enter any keys to continue(if enter q,exit!):$' FAIL DB 'Not Exist!$' INPUT DB 10 DB ? DB 10 DUP(0) DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AXJMP BEGINFAILED: LEA DX, OFFSET FAIL ; 查找失败MOV AH, 9HINT 21HLOOPA: MOV DL, 0AH ;换行符MOV AH, 2HINT 21HLEA DX, OFFSET CONTINU ;继续MOV AH, 9HINT 21HMOV DL, 0AH ;换行符MOV AH, 2HINT 21HMOV DL, 0DHMOV AH, 2HINT 21HMOV AH, 8HINT 21HCMP AL, 71HJE OVER ;输入 'q', 退出程序BEGIN: MOV CX, N ; 学生个数LEA DX, OFFSET MSG ;输出提示信息MOV AH, 9HINT 21HMOV DL, 0AH ; 换行符MOV AH, 2HINT 21HLEA DX, OFFSET INPUT ; 读入学生姓名MOV AH, 0AHINT 21HMOV DL, 0AH ; 换行符MOV AH, 2HINT 21HLEA BP, OFFSET INPUT ; 将 INPUT 基址存放至 BP ADD BP,2CMP DS:BYTE PTR [BP-1],0H ;空字符串JE LOOPAINC CXCOMPA: DEC CXJE FAILED ; 查找失败, 重新输入MOV BX, N ; 计算目标学生下标值, 存放至 BXSUB BX, CXIMUL BX, 14 ; 根据目标学生下标值, 找到分数缓冲区首地址MOV AX, 10 ; 临时计数器MOV SI, 0COMPB: MOV DL, [BX + SI]MOV DH, BYTE PTR DS:[BP + SI]CMP DL, 0 ; 如果缓冲区姓名已结束,说明查找成功JE CAL ; 跳转至平均成绩计算处CMP DH, DL ; 比较当前缓冲区姓名与输入姓名字符JNE COMPA ; 当前字符相同,继续循环以比较下一字符INC SIDEC AXJNE COMPBCAL: MOV BX, N ; 计算目标学生下标值, 存放至 BXSUB BX, CXIMUL BX, 14ADD BX, 10 ; 根据目标学生下标值, 找到分数缓冲区首地址 BX = m * 14 + 10MOV AX, 0MOV DX, 0MOV AL, [BX] ; 计算平均成绩ADD AX, AXMOV DL, [BX +1]ADD AX, DXMOV DL, [BX +2]SAR DL, 1ADD AX, DX ;AL=A*2+B+C/2SAL AX, 1MOV DL, 7IDIV DL ; AL = 2 * AL / 7MOV [BX + 3], AL; AVG = AL ( AL / 3.5)CMP AL, 90JGE LEVELACMP AL, 80JGE LEVELBCMP AL, 70JGE LEVELCCMP AL, 60JGE LEVELDJMP LEVELFLEVELA:MOV DL, 41H ;输出成绩等级MOV AH, 2HINT 21HJMP LOOPALEVELB:MOV DL, 42HMOV AH, 2HINT 21HJMP LOOPALEVELC:MOV DL, 43HMOV AH, 2HINT 21HJMP LOOPALEVELD:MOV DL, 44HMOV AH, 2HINT 21HJMP LOOPALEVELF:MOV DL, 46HMOV AH, 2HINT 21HJMP LOOPAOVER: MOV AH, 4CHINT 21HCODE ENDSEND START3.1.4实验步骤1. 使用编辑程序EDIT.EXE录入源程序,存盘文件名为shiyan.ASM。
2. 使用MASM 6.0汇编源文件。
即MASM shiyan;3. 观察提示信息,若出错,则用编辑程序修改错误,存盘后重新汇编,直至不再报错为止。
4. 使用连接程序LINK.EXE将汇编生成的shiyan.OBJ文件连接成执行文件。
即LINK shiyan;5. 若连接时报错,则依照错误信息修改源程序。
之后重新汇编和连接,直至不再报错并生成shiyan.EXE文件。
6. 执行该程序。
即在命令行提示符后输入shiyan后回车,观察执行现象。
7.让9号功能调用显示的信息放在自己希望的位置。
8.在9号功能调用时,尝试带显示字符串的结尾没有“$”结束符。
9.10号功能调用时,输入的字符数超过定义的数量时,它是如何处理的?3.1.5实验记录(包括实验条件、输入/输出、错误和修改等信息的记录)1、实验环境条件:P3 1GHz,256M内存;WINDOWS 2000命令行窗口;EDIT.EXE 2.0;MASM.EXE 6.0;LINK.EXE 5.2; TD.EXE 5.0。