第三次实验报告
数字集成电路实验-反相器实验报告
第三次实验课 反相器(下)实验日期:20142.3 分析如下电路,解答下列问题上面的电路用两种方式实现了反相器,左图只使用了NMOS ,右图则使用了CMOS(NMOS 和PMOS)。
试完成:V F 3.0-=φ1.仿真得到两个电路的VTC 图形答:红色的为仅用NMOS 实现的反相器的VTC 图形;蓝色的为使用CMOS 的反相器的VTC 图形,如图:2.计算两种电路的V OH ,V OL 及V M 。
可参考波形确定管子的工作状态。
答:①当Vin=2.5V 时,N 管导通有在体偏置条件下阀值电压公式:)22(0F SB F T T V V V φφγ-+-+=()()()⎥⎦⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡--=22220'2011'222'OL OL T in n DS DS T GS M M n d DSAT DSAT T DD M M n DSAT V V V V L W k V V V V L W k I V V V V L W k I (M2速度饱和)将下列数据代人VV V A k V V V D SAT n F T 63.0,/10115,3.0,43.026'0=⨯=-==-φ25.075.0,25.0375.01122==M M M M L W L W解得: V V OL 2875.0=当Vin=0V 时,N 管截止,Vout=OH V =2.5V求解M V :当out in V V =时,由于GS DS V V =,M1工作在饱和区此时流过M1(速度饱和)的电流为:()⎥⎥⎦⎤⎢⎢⎣⎡--=22011'1DSAT DSAT T in M M n DSAT V V V V L W k I (1) 流过M2的电流为(速度饱和)()⎥⎥⎦⎤⎢⎢⎣⎡---=2222'2DSAT DSAT T out DD M M n DSAT V V V V V L W k I (2) )22(0F SB F T T V V V φφγ-+-+=(3)M out in SB V V V V ===联立方程解得M V =1.017V②对于CMOS 器件当Vin=0时,V V V out O H 5.2==当Vin=2.5时,V V V out O L 0==求解M V :当out in V V =时,由于GS DS V V =,NMOS 与PMOS 工作在饱和区由于T M D SAT V V V -<,此时已经发生了速度饱和(参考波形)代入,联立解得:将下列数据V V V V V V V V V A k V A k L W k k L W k k V k V k r r V V V r V V V V V V V V k V V V V k DSATp DSATn Tp Tn p n pp p p nn n n DSATnn DSATpp DSAT TP DD DSAT Tn M DSATp Tp DD M DSATp p DSATn Tn M DSATn n 1,63.04.0,43.0,/1030,/101151)2/()2/(0)2/()2/(26'26'''-==-==⨯-=⨯====+++++==---+----M V =1.132315968V3.哪一种结构的反相器的功能性更好,为什么?(噪声容限,再生性,过渡区增益)答:CMOS 反相器更好。
LDMOS版图设计实验_第三次实验报告
半导体功率器件与智能功率IC实验学生姓名:田瑞学号:201422030143指导教师:乔明一、实验室名称:211楼803 工作站二、实验项目名称:半导体功率器件与智能功率IC实验——LDMOS器件版图设计实验三、实验原理:首先,设计版图的基础便是电路的基本原理,以及电路的工作特性,硅加工工艺的基础、以及通用版图的设计流程,之后要根据不同的工艺对应不同的设计规则,一般来说通用的版图设计流程为:1.制定版图规划记住要制定可能会被遗忘的特殊要求清单2.设计实现考虑特殊要求及如何布线创建组元并对其进行布3.版图验证执行基于计算机的检查和目视检查,进行校正工作最终步骤工程核查以及版图核查版图参数提取与后仿真完成这些之后需要特别注意的是寄生参数噪声以及布局等的影响,具体是电路而定,在下面的实验步骤中会体现到这一点。
IC设计与制造的主要流程四、实验目的:掌握版图设计的基本理论。
掌握版图设计的常用技巧。
掌握定制集成电路的设计方法和流程。
熟悉Cadence Virtuoso Layout Edit软件的应用学会用Cadence软件设计版图、版图的验证以及后仿真熟悉Cadence软件和版图设计流程,减少版图设计过程中出现的错误。
五、实验内容:结合LDMOS的版图文件,完成LDMOS器件的版图绘制。
六、实验器材(设备、元器件):CADENCE软件七、实验步骤:LDMOS的版图文件nwell 16400 8000pwell1 10 7000pwell2 70 34003550 40504220 45204740 49905250 54705770 59206350 8000poly 20400 18005000 7400nimplant 20400 74007700 8000pimplant 10 7700omicont 20300 07000900 7600metal 20 20004800 8000nitride 20 06006300 8000八、实验数据及结果分析:整体版图版图下部分别为:源端pad,漏端pad以及栅极pad九、实验结论:通过实验,了解LDMOS器件的版图设计,熟悉CADENCE软件的使用。
生理学第三次实验报告
华南师范大学学生姓名:叶青学号:20102501058专业:生物科学年级班级:10生物科学3班课程名称:生理学实验实验项目:大鼠防御性条件反射的建立和消退、血压的测定、心音的听诊、心电图的描记实验时间:2013.4.22实验指导老师:胡学军老师实验评分:1实验目的1.1学习并掌握间接测量人体血压的原理和方法;1.2学习心音听诊的方法,识别第一心音和第二心音;1.3学习心电图的记录方一法和心电图波形的测量方法。
1.4学习用动物建立条件反射的的基本技术方法,通过小白鼠条件反射的建立、分化和消退,了解条件反射活动的基本规律与生物学意义。
2实验材料小白鼠、大白鼠、人;迷宫刺激器、Y型三等分迷宫;血压计、听诊器、心电图仪。
3实验方法3.1条件反射的建立3.1.1检查迷宫灯光通电情况;3.1.2让动物适应环境,调节最适电压(保持不变)、延时2s;3.1.3开始测试,随机按I或II或III臂,O键暂停;3.1.4判断反应标准,根据标准:走对打勾,错打叉;3.1.5休息30s,随机测下一个迷宫臂,共测试10次,计算反应正确率,90%以上为达学会标准;3.1.6停30分钟或60分钟或24小时,再测试10次,检查是否达90%;3.1.7自然消退:过段时间再检测学习效果。
3.2血压的测量3.2.1受试者取坐位,心脏与血压计零点同一水平,安静;3.2.2松开充气球上的螺丝,将压脉带内的空气排空,再将螺丝旋紧;3.2.3将压脉带裹于左上臂距肘窝3cm处,将听诊器置于肱动脉搏动位置上;3.2.4充气加压听声,声消失再加压30mmHg,然后缓慢放气,听血管音的变化;3.2.5听声音的变化:从无到有,而后由低到高,最后突然变低,完全消失。
如此反复进行2-3次。
3.2.6测量正常的动脉血压:重复步骤5-6,同时注意检压计读数。
当放气第一次听到的血管音即收缩压,最后声音突然变低或完全消失时的代表舒张压。
放空压脉带,使压力降至零。
测试平均值。
直流并励电动机实验报告
第三次实验报告——直流并励电动机1、 实验内容1 1. 工作特性和机械特性保持U=UN 和If =IfN 不变,测取n 、T2 、n=f(Ia)及n=f(T2)。
1.1实验拍照、数据、图表表1-8 U=U N =220V I f =I fN =1.1 A K a =20Ω 1.2 实验结果分析与理解实 验 数 据 I a (A )1.101.00 0.85 0.75 0.63 0.57 0.40 0.25 n (r/min ) 1261 1289 1317 1340 1363 1387 1402 1428 T 2(N.m )2.73 2.512.211.801.571.421.160.84计 算 数 据P 2(w ) 361.5 339.7 305.6 253.3 224.7 206.8 170.8 125.9 P 1(w ) 484.0 462.0 429.0 407.0 380.6 367.4 330.0 297.0 η(%)74.773.5 71.2 62.2 59.0 56.3 51.7 42.4 △n (%)电磁转矩T越大,转速n越低,其特性是一条下斜直线。
原因是T增大,电枢电流Ia与T成正比关系,Ia也增大;电枢电动势Ea则减小,转速n降低。
2、实验内容2调速特性(1)改变电枢端电压的调速2.1实验拍照、数据、图表U a(V)153 123 78 72 66 60 56 0.42n(r/min)858 638 295 276 185 158 138 83I a(A)0.55 0.65 0.93 0.90 0.88 0.86 0.82 0.612.2实验结果分析与理解电枢电压减小时,Ce与电动机本身决定,Φ由励磁电流决定,负载转矩T 不变,只有转速n会随着电枢电压减小而降低,从而实现调速。
改变电枢电压调速,电枢电流几乎不变。
改变电枢电压调速,可以实现连续平滑地无级调速,调速范围大,效率高,机械特性硬,但只能从额定转速向下调节。
第三次试验-实验十六-中波调幅发射机组装及调试
实验十六中波调幅发射机组装及调试标准实验报告一、实验室名称科A402二、实验项目名称中波调幅发射机组装及调试三、实验原理图16-1 中波调幅发射机该调幅发射机组成原理框图如图16-1所示,发射机由音频信号发生器,音频放大,AM调制,高频功放四部分组成。
实验箱上由模块4,8,10构成。
四、实验目的1.在模块实验的基础上掌握调幅发射机整机组成原理,建立调幅系统概念。
2.掌握发射机系统联调的方法,培养解决实际问题的能力。
五、实验内容完成调幅发射机整机联调六、实验器材(设备、元器件)1.高频实验箱 1台2.双踪示波器 1台七、实验步骤在做本实验前请调试好与本实验相关的各单元模块1.将模块10的S1的2拨上,即选通音乐信号,经U4放大从J6输出,调节W2使J6处信号峰-峰值为200mV左右,连接J6和模块4的J5将音频放大信号送入模拟乘法器的调制信号输入端。
同时将1MHz (峰-峰值500mV左右)的载波从模块4的J1端输入。
2.调节W1使得有载波出现,调节W2 从J3处观察输出波形,使调幅度适中。
3.将AM调制的输出端(J3)连到集成线性宽带功率放大器的输入端J7,从TH9处可以观察到放大的波形。
4.将已经放大的高频调制信号连到模块10的天线发射端TX1,并按下开关J2,这样就将高频调制信号从天线发射出去了,观察TH3处波形。
八、实验数据及结果分析1.画出调幅发射机组成框图和对应点的实测波形并标出测量值大小。
图1.蓝色为音频信号放大后波形,黄色为AM调制后波形图2.高频功率放大后的波形图3.发射前天线信号波形图4. 发射时天线信号波形九、实验结论实验通过对音频信号进行放大,AM调制处理,将语音信号调制到载波信号中发射出去。
让接收机能够接收到语音信号并进行解调,但在实验过程中,仪器工作正常,但是接收机无法接收到信号。
原因:实验室内电磁环境复杂,天线拉的太长,接收到了过多的噪声。
解决方法:用导线连接两者的天线,或者讲天线收短。
合肥师范学院软件工程第三次实验报告
使用Rational Rose软件建立系统的用例模型,先确定参与者,然后确定用例。
4.实验结果
电梯系统的用例图
电梯系统的类图、顺序图
pos机系统的用例图
写出图书管理系统的需求陈述,然后创建其用例图
在图书管理系统中,管理员为每个读者建立一个账户,账户内存储读者个人的详细信息,并依据读者类别的不同给每个读者放借书卡(提供借书卡号、姓名、部门或班级等信息)。
读者可以凭借书卡在图书馆进行图书的借、还、续借、查询等操作,不同类别的读者在借书限额、还书期限以及可续借的次数上要有所不同。借阅图书时,由管理员录入借书卡号,系统首先验证该卡号的有效性,若无效,则提示无效的原因;若有效,则显示卡号、姓名、借书限额、已借数量、可再借数量等信息,本次实际借书的数量不能超出可再借数量的值。完成借书操作的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅信息中添加相应的记录。归还图书时,由管理员录入借书卡号和待归还的图书编号,显示借书卡号、读者姓名、读书编号、读书名称、借书日期、应还日期等信息,并自动计算是否超期以及超期的罚款金额,若进行续借则取消超期和罚款等信息;若图书有损坏,由管理员根据实际情况从系统中选择相应的损坏等级,系统自动计算损坏赔偿金额。完成归还操作的同时,修改相应图书信息的状态、修改读者信息中的已借数量、在借书信息中对相应的借书记做标记、在还书信息中添加相应的记录。
图书管理员可以对图书借阅信息进行添加、修改和删除等操作,在图书尚未归还的情况下不能对图书信息进行删除。在读者还有未归还的图书的情况下不能进行删除读者信息。
系统管理员主要进行图书的增加与删除,对读者信息和管理员信息的维护。
合肥师范学院实验报告
姓名:杨亮课程名称:软件工程
院(系):计算机学院专业/年级:软件工程(2)班
Linux的用户和用户组实验报告
第三次实验报告实验内容用户和用户组管理实验内容:用户和用户组的文件/etc/passwd 用户账号文件/shadow 用户口令文件/etc/group 用户组账号文件/gshadow 用户组口令文件添加用户useradd为用户设置口令passwd姓名:学号:520913080429专业:信息安全09-041、用户和用户组的文件/etc/passwd 用户账号文件root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news:uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinrpm:x:37:37::/var/lib/rpm:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinavahi:x:70:70:Avahi daemon:/:/sbin/nologinmailnull:x:47:47::/var/spool/mqueue:/sbin/nologinsmmsp:x:51:51::/var/spool/mqueue:/sbin/nologinnscd:x:28:28:NSCD Daemon:/:/sbin/nologinvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinhaldaemon:x:68:68:HAL daemon:/:/sbin/nologinrpc:x:32:32:Portmapper RPC user:/:/sbin/nologinrpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologinnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpcap:x:77:77::/var/arpwatch:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologingdm:x:42:42::/var/gdm:/sbin/nologinapache:x:48:48:Apache:/var/www:/sbin/nologindistcache:x:94:94:Distcache:/:/sbin/nologinpostgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bashmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bashdovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologinwebalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologinsquid:x:23:23::/var/spool/squid:/sbin/nologinxfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologinnamed:x:25:25:Named:/var/named:/sbin/nologinsabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinamanda:x:33:6:Amanda user:/var/lib/amanda:/bin/bashcyrus:x:76:12:Cyrus IMAP Server:/var/lib/imap:/bin/bashmailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailman:/sbin/nologinradiusd:x:95:95:radiusd user:/:/bin/falseexim:x:93:93::/var/spool/exim:/sbin/nologinprivoxy:x:73:73::/etc/privoxy:/sbin/nologinquagga:x:92:92:Quagga routing suite:/var/run/quagga:/sbin/nologinradvd:x:75:75:radvd user:/:/sbin/nologinldap:x:55:55:LDAP User:/var/lib/ldap:/bin/falsetomcat:x:91:91:Tomcat:/usr/share/tomcat5:/bin/shpegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin student:x:500:500:student:/home/student:/bin/bash账号名称,密码,UID:用户ID,GID:用户组ID,用户信息,用户组目录,2、 用户口令文件 /etc/shadow用户密码用户组IDroot:$1$SI/4xwLM$g2zi4WBPwh87mLxspgx3m1:15223:0:99999:7::: bin:*:15223:0:99999:7:::daemon:*:15223:0:99999:7:::adm:*:15223:0:99999:7:::lp:*:15223:0:99999:7:::sync:*:15223:0:99999:7:::shutdown:*:15223:0:99999:7:::halt:*:15223:0:99999:7:::mail:*:15223:0:99999:7:::news:*:15223:0:99999:7:::uucp:*:15223:0:99999:7:::operator:*:15223:0:99999:7:::games:*:15223:0:99999:7:::gopher:*:15223:0:99999:7:::ftp:*:15223:0:99999:7:::nobody:*:15223:0:99999:7:::rpm:!!:15223:0:99999:7:::dbus:!!:15223:0:99999:7:::avahi:!!:15223:0:99999:7:::mailnull:!!:15223:0:99999:7:::smmsp:!!:15223:0:99999:7:::nscd:!!:15223:0:99999:7:::vcsa:!!:15223:0:99999:7:::haldaemon:!!:15223:0:99999:7:::rpc:!!:15223:0:99999:7:::rpcuser:!!:15223:0:99999:7:::nfsnobody:!!:15223:0:99999:7:::sshd:!!:15223:0:99999:7:::pcap:!!:15223:0:99999:7:::ntp:!!:15223:0:99999:7:::gdm:!!:15223:0:99999:7:::apache:!!:15223:0:99999:7:::distcache:!!:15223:0:99999:7:::postgres:!!:15223:0:99999:7:::mysql:!!:15223:0:99999:7:::dovecot:!!:15223:0:99999:7:::webalizer:!!:15223:0:99999:7:::squid:!!:15223:0:99999:7:::xfs:!!:15223:0:99999:7:::named:!!:15223:0:99999:7:::sabayon:!!:15223:0:99999:7:::postfix:!!:15223:0:99999:7:::amanda:!!:15223:0:99999:7:::cyrus:!!:15223:0:99999:7:::mailman:!!:15223:0:99999:7:::radiusd:!!:15223:0:99999:7:::exim:!!:15223:0:99999:7:::privoxy:!!:15223:0:99999:7:::quagga:!!:15223:0:99999:7:::radvd:!!:15223:0:99999:7:::ldap:!!:15223:0:99999:7:::tomcat:!!:15223:0:99999:7:::pegasus:!!:15223:0:99999:7:::student:$1$OweFzAd9$BO6WG8WVpsoak0JTfl5y3/:15223:0:99999:7:::3、用户组账号文件 /etc/grouproot:x:0:rootbin:x:1:root,bin,daemondaemon:x:2:root,bin,daemonsys:x:3:root,bin,admadm:x:4:root,adm,daemontty:x:5:disk:x:6:rootlp:x:7:daemon,lpmem:x:8:kmem:x:9:wheel:x:10:rootmail:x:12:mail,postfix,eximnews:x:13:newsuucp:x:14:uucpman:x:15:games:x:20:dip:x:40:ftp:x:50:lock:x:54: nobody:x:99: users:x:100: rpm:x:37:dbus:x:81: utmp:x:22: utempter:x:35: avahi:x:70: mailnull:x:47: smmsp:x:51: nscd:x:28: floppy:x:19: vcsa:x:69: haldaemon:x:68: rpc:x:32: rpcuser:x:29: nfsnobody:x:65534: sshd:x:74:pcap:x:77:ntp:x:38: slocate:x:21: gdm:x:42: apache:x:48: distcache:x:94: postgres:x:26: mysql:x:27: dovecot:x:97: webalizer:x:67: squid:x:23:xfs:x:43: named:x:25: sabayon:x:86: postdrop:x:90: postfix:x:89: saslauth:x:76:cyrus mailman:x:41: radiusd:x:95: exim:x:93: privoxy:x:73: quaggavt:x:85: quagga:x:92:screen:x:84: ldap:x:55: tomcat:x:91: pegasus:x:65: student:x:500:4、用户组口令文件etc/gshadowroot:::root bin:::root,bin,daemondaemon:::root,bin,daemonsys:::root,bin,admadm:::root,adm,daemontty:::disk:::rootlp:::daemon,lpkmem::: wheel:::root mail:::mail,postfix,exim news:::news uucp:::uucp man::: games::: gopher:::dip:::ftp:::lock::: nobody::: users:::rpm:x::dbus:x::utmp:x:: utempter:x::avahi:x::mailnull:x:: smmsp:x::nscd:x::floppy:x::vcsa:x:: haldaemon:x::rpc:x::rpcuser:x:: nfsnobody:x::sshd:x::pcap:x::ntp:x::slocate:x::gdm:x::apache:x:: distcache:x:: postgres:x::mysql:x::dovecot:x:: webalizer:x::squid:x::xfs:x::named:x:: sabayon:x:: postdrop:x::saslauth:x::cyrusmailman:x::radiusd:x::exim:x::privoxy:x::quaggavt:x::quagga:x::radvd:x::screen:x::ldap:x::tomcat:x::pegasus:x::student:!!::5、添加用户Useradd[root@localhost etc]# useradd lisi[root@localhost etc]# at /default/useradd syntax error. Last token seen: /Garbled time[root@localhost etc]# cat /etc/default/useradd # useradd defaults fileGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skel[root@localhost etc]#6、为用户设置口令passwd# useradd defaults file GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skel[root@localhost etc]# passwd lisi Changing password for user lisi. New UNIX password:Retype new UNIX password:passwd: all authentication tokens updated successfully. [root@localhost etc]#7、修改用户信息Usermod修改用户为lisi的UID为558,用户组ID为500[root@localhost etc]# passwd lisiChanging password for user lisi.New UNIX password:Retype new UNIX password:passwd: all authentication tokens updated successfully. [root@localhost etc]# usermod -u 558 -g 500 lisi [root@localhost etc]# grep lisi[1]+ Stopped grep lisi[root@localhost etc]# grep lisi /etc/passwdlisi:x:558:500::/home/lisi:/bin/bash[root@localhost etc]#8、删除用户userdel[root@localhost etc]#Userdel lisi9、用户身份的切换[lisi@localhost etc]$ su root 口令:[root@localhost etc]#切换用户root输入密码:切换用户。
《数据结构》实验报告三:几种查找算法的实现和比较
第三次实验报告:几种查找算法的实现和比较//2019-12-4//1.随机生成5万个整数,存入一个文件;//2.算法实现:(1)顺序查找:读入文件中的数据,查找一个key,统计时间;// (2)二分查找:读入文件,排序,二分查找key,统计时间;// (3)分块查找:读入文件,分100块,每块300+数字,查找key,统计时间// (4)二分查找树:读入文件,形成BST,查找key,统计时间//二叉排序树:建立,查找#include "stdio.h"#include "time.h"#include "stdlib.h"struct JD{//定义分块查找的链表结点结构int data;JD *next;};struct INDEX_T{//定义分块查找中,索引表结构int max;//这一块中最大的数字,<maxJD *block;//每一块都是一个单向链表,这是指向块的头指针};INDEX_T myBlock[100];//这是索引表的100项struct NODE{//定义的二分查找树结点结构int data;NODE *left;NODE *right;};const int COUNT=50000;//结点个数int key=666;//待查找的关键字int m=1;//int *array2;void createData(char strFileName[]){//产生随机整数,存入文件srand((unsigned int)time(0));FILE *fp=fopen(strFileName,"w");for(int i=1;i<=COUNT;i++)fprintf(fp,"%d,",rand());fclose(fp);}void createBST(NODE* &bst){//产生5万个随机整数,创建二叉排序树FILE *fp=fopen("data.txt","r");for(int i=1;i<=COUNT;i++){int num;fscanf(fp,"%d,",&num);//从文件中读取一个随机整数//若bst是空子树,第一个结点就是根结点//若bst不是空子树,从根结点开始左小右大,查找这个数字,找到了直接返回,//找不到,就插入到正确位置//创建一个结点NODE* p=new NODE;p->data=num;p->left=0;p->right=0;if(0==bst)//空子树{bst=p;continue;}//非空子树,//在bst中,查找给结点,NODE *q=bst;//总是从根结点开始查找while(1){if(p->data == q->data)//找到了,直接退出break;if(p->data < q->data && q->left==0){//小,往左找,且左边为空,直接挂在q之左q->left=p;break;}if(p->data < q->data && q->left!=0){//小,往左找,且左边非空,继续往左边找q=q->left;continue;}if(p->data > q->data && q->right==0){//大,往右找,且右边为空,直接挂在q之右q->right=p;break;}if(p->data > q->data && q->right!=0){//大,往右找,且右边非空,继续往右边找q=q->right;continue;}}}}int BST_Search(NODE *bst,int key){//在bst中找key,if(0==bst)return -1;//非空子树,//在bst中,查找给结点,NODE *q=bst;//总是从根结点开始查找while(1){if(key == q->data)//找到了,直接退出return 1;if(key < q->data && q->left==0)//小,往左找,且左边为空,找不到return -1;if(key < q->data && q->left!=0)//小,往左找,且左边非空,继续往左边找{q=q->left;continue;}if(key > q->data && q->right==0)//大,往右找,且右边为空,找不到return -1;if(key > q->data && q->right!=0){//大,往右找,且右边非空,继续往右边找q=q->right;continue;}}}void inOrder(NODE *bst){if(bst!=0){inOrder(bst->left);array2[m]=bst->data;//反写回array数组,使数组有序// printf("%7d",array2[m]);m++;inOrder(bst->right);}}int getBSTHeight(NODE *bst){if(bst==0)return 0;else{int hl=getBSTHeight(bst->left);int hr=getBSTHeight(bst->right);int h=hl>hr?hl:hr;return h+1;}}void makeArray(int array[],char strFileName[]) {//生成5万个随机整数FILE *fp=fopen(strFileName,"r");int i=1;while(!feof(fp)){fscanf(fp,"%d,",&array[i]);// printf("%6d",array[i]);i++;}}int Seq_Search(int array[],int key){//在无序顺序数组中,找data是否存在,-1=不存在,存在返回位置下标//监视哨:把要找的那个数放到首部array[0]=key;//for(int i=COUNT;array[i]!=key;i--);if(i>0)//找到了,返回下标return i;return -1;//查找不成功,返回-1}int Bin_Search(int array[],int key){//在有序存储的数组中查找key,找到返回位置,找不到返回-1 int low=1,high=COUNT,mid;while(1){if(low>high)//找不到return -1;mid=(low+high)/2;if(key == array[mid])return mid;else if(key<array[mid])high=mid-1;elselow=mid+1;}}void makeBlock(INDEX_T myBlock[],char strFileName[]) {//从文件中读取整数,分配到块中去//1.初始化块索引表,分100块,400,800,1200,for(int i=0;i<=99;i++){myBlock[i].max=400+400*i;//400,800,1200, (40000)myBlock[i].block=0;}//2.打开文件,读取整数,把每一个整数分配到相应的块中去FILE *fp=fopen(strFileName,"r");while(!feof(fp)){int num=0;fscanf(fp,"%d,",&num);//把num分配到num/400块中,挂到该块链表第一个int blockID=num/400;//求出应该挂在的块号//生成一个新节点,把num放进去,挂上JD *p=new JD;p->data=num;p->next=myBlock[blockID].block;myBlock[blockID].block=p;}fclose(fp);}int Block_Search(INDEX_T myBlock[],int key){int blockID=key/400;//找到块号JD* p=myBlock[blockID].block;while(p!=0){if(p->data==key)return blockID;//能找到p=p->next;}return -1;//找不到}void main(){clock_t begin,end;int pos=-1;//1.生成文件,存入5万个随机整数createData("data.txt");//2.顺序查找int *array=new int[COUNT+1];makeArray(array,"data.txt");//从文件中读取数据begin=clock();for(int k=1;k<=10000;k++)pos=Seq_Search(array,key);end=clock();printf("顺序查找:%d所在的位置=%d.时间=%d毫秒\n",key,pos,end-begin);//3.二分查找树NODE *bst=0;createBST(bst);//产生5万个随机数字,建立一个二叉排序树begin=clock();for(k=1;k<=10000;k++)pos=BST_Search(bst,key);//在bst中找key,找到返回1,找不到返回-1end=clock();printf("二叉排序树查找:%d所在的位置=%d.时间=%d毫秒\n",key,pos,end-begin);array2=new int[COUNT+1];inOrder(bst);//中序输出bst// int height=getBSTHeight(bst);//求出bst的高度// printf("BST高度=%d.\n\n",height);//4.二分查找,利用前面二叉排序树产生的array2,查找key begin=clock();for(k=1;k<=10000;k++)pos=Bin_Search(array2,key);end=clock();printf("二分查找:%d所在的位置=%d.时间=%d毫秒\n",key,pos,end-begin);//5.分块查找,关键字范围[0,32767],分配到100块中去,每一块中存400个数字makeBlock(myBlock,"data.txt");//从文件中读取数据,产生块begin=clock();for(k=1;k<=10000;k++)pos=Block_Search(myBlock,key);//在block中查找key,找到返回块号,找不到返回-1end=clock();printf("分块查找:%d所在的块=%d.时间=%d毫秒\n",key,pos,end-begin);/*for(k=0;k<=99;k++){printf("\n\n\n第%d块<%d:\n",k,myBlock[k].max);JD *q=myBlock[k].block;//让q指向第k块的第一个结点while(q!=0){//输出第k块中所有数字printf("%7d ",q->data);q=q->next;}}*/}。
四川大学操作系统课程设计第三次实验报告生产者和消费者
实验报告(学生打印后提交)实验名称: 生产者和消费者问题实验时间: 2023年 5 月 5日●实验人员:●实验目的:掌握基本的同步互斥算法, 理解生产者和消费者模型。
●了解Windows 2023/XP中多线程的并发执行机制, 线程间的同步和互斥。
●学习使用Windows 2023/XP中基本的同步对象, 掌握相应的API●实验环境: WindowsXP + VC++6.0●运用Windows SDK提供的系统接口(API, 应用程序接口)完毕程序的功能。
API是操作系统提供的用来进行应用程序设计的系统功能接口。
使用API, 需要包含对API函数进行说明的SDK头文献, 最常见的就是windows.h实验环节:1.读懂源程序.2.编辑修改源程.......................................实验陈述:1.基础知识:本实验用到几个API函数:CreateThread CreateMutex, WaitForSingleObject, ReleaseMutexCreateSemaphore, WaitForSingleObject, ReleaseSemaphore, ReleaseMutex, nitializeCriticalSection, EnterCriticalSection, LeaveCriticalSection。
这些函数的作用:CreateThread, 功能:创建一个线程, 该线程在调用进程的地址空间中执行。
CreateMutex,功能:产生一个命名的或者匿名的互斥量对象。
WaitForSingleObject(相应p操作)锁上互斥锁, ReleaseMutex(相应v操作)打开互斥锁.。
CreateSemaphore, 创建一个命名的或者匿名的信号量对象。
信号量可以看作是在互斥量上的一个扩展。
WaitForSingleObject, 功能:使程序处在等待状态, 直到信号量(或互斥量)hHandle出现或者超过规定的等待最长时间, 信号量出现指信号量大于或等于1, 互斥量出现指打开互斥锁。
东大虚拟仪器第三次实验报告数组簇与曲线图形
东南大学生物科学与医学工程学院虚拟仪器实验报告第三次实验实验名称:数组簇和曲线图形专业:生物医学工程姓名:学号:同组人员:学号:实验室:实验时间:评定成绩:审阅教师:目录一、实验题目 (3)二、实验目的 (3)三、实验内容 (3)1.1实验方案 (3)1.2程序框图设计 (3)1.3程序前面板设计 (4)1.4调试过程 (5)1.5结果分析 (5)1.6使用说明 (7)2.1实验方案 (7)2.2程序框图设计 (7)2.3程序前面板设计 (9)2.4调试过程 (10)2.5结果分析 (10)2.6使用说明 (11)四、心得体会 (11)五、参考文献 (11)一、实验题目1.在波形Graph显件上用两种不同颜色显示一条正弦曲线和一条余弦曲线,每条曲线长度为128个点,其中正弦曲线的x0 =0,△x=1;余弦曲线的x=2,△x=5。
并利用属性节点通过前面板控件改变每条曲线的颜色。
2.设计一个VI,将一个一维数组(含有正数和负数的混合数组)分成两个只含正数(包含0的数)和负数的一维数组。
并分别计算两个数组中各自有多少个元素,同时显示出各自数组中最大、最小值。
二、实验目的1.学习如何创建和初始化数组。
2.建立自动索引概念。
3.学习使用波形Graph显示多条曲线的方法,学习改变Graph上曲线的颜色等属性的方法。
三、实验内容1.在波形Graph显件上用两种不同颜色显示一条正弦曲线和一条余弦曲线,每条曲线长度为128个点,其中正弦曲线的x0 =0,△x=1;余弦曲线的x=2,△x=5。
并利用属性节点通过前面板控件改变每条曲线的颜色。
1.1实验方案使用for循环以及产生正弦和余弦,并使一个周期为128个点;利用簇函数设置正余弦函数的x0和△x,接入到波形图上产生波形;设置属性节点,可改变曲线颜色。
1.2程序框图设计⑴首先运用for循环,设置循环次数为128,产生曲线横轴的128个点。
⑵利用将一个周期2π分成128份,并与i(每次循环i自动加1)相乘后形成x轴的取样点。
武汉理工大学软件工程基础实验第三次实验报告
2)系统为 Windows10 的 PC 机一台 PC 机上装有 Eclipse
第二部分:实验过程记录(可加页) (包括实验原始数据记录,实验现象记录,实验过程发
现的问题等) 一、 实验原始数据记录
即第一次源代码。 二、 实验过程
一、测试工具的使用 CheckStyle 使用情况:
勾选之后 即可使用 CheckStyle 对代码进行检查
成绩评定表: 序号 1 2 3 4 评分项目 实验报告格式规范 实验报告过程清晰,内容详实 实验报告结果正确性 实验分析与总结详尽 总得分 满分 2 4 2 2 10 实得分
如图 CheckStyle 对代码做了检查 FindBugs 使用情况:
并提出了修改建议。
因本代码中并没有显著的 bug,点击使用后,未提示有 bug。 PMD 使用情况:
三、
性能分析
四、
实验过程当中发现的问题 PMD 安装过程中出现失败,在使用中发现找不到该插件。
第三部分 结果与讨论(可加页)
实验课程名称:__软件工程基础实验____
实验项目名称 实 验者 同 组 者 代码评审与程序性能优化 徐强国 专业班级 吴灿柳 软件 1602 实验成绩 组 别 2018 年 9 月 26 日
实验日期
第一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及 耗材,实验方案与技术路线等) 一、实验目的 使用一下三个工具完成代码评审: -Checkstyle -FindBugs -PMD 二、实验内容及要求 针对“实验一”中所完成的代码,进行代码评审(走查)和性能分析,从时间性能角度对 代码进行优化; (1) 使用一下三个工具完成代码评审: -Checkstyle -FindBugs -PMD (2)选择一个代码性能优化工具,对源代码进行性能分析,给出优化方案; 按 “实验一” 的分组方式, 两人一组, 随机分配另一组的代码作为本组评审和分析的对象, 试验期间不能与原作者进行沟通。 三、实验基本原理和方法 (1) Checkstyle 是一款检查 java 程序代码样式的工具,可 以有效的帮助我们检查 代码以便更好的遵循代码编写标 准,特别适用于小组开发时彼此间的样式规范和统一。 Checkstyle 提供了高可配置性,以便适用于各种代码规 范,所以除了可以使用它提供的 sun 的代码标准外,你也 可以定制自己的标准。 Checkstyle 可以让我们养成书写良好代 码风格的习惯。 使用 checkstyle 的过程中可能需要经常的调整配置文 件,有些 check 过于 严格,可以根据实际情况取消一些代码检查。 (2)Findbugs 是一个在 java 程序中查找 bug 的程序,它查 找 bug 模式的实例,也就是 可能出错的代码实例,注意 Findbugs 是检查 java 字节码,也就是*.class 文件。 其实准确 的说,它是寻找代码缺陷的。很多我们写 的不好的地方,可以优化的地方,它都能检查 出来。例 如:未关闭的数据库连接,缺少必要的 null check,多余 的 null check,多余的 if 后置条件,相同的条件分支,重 复的代码块,错误的使用了"=="等等。而且我们可以 自 己配置检查规则,也可以自己来实现独有的校验规则。 (3)PMD 是一种开源分析 Java 代码错误的工具。与其他 分析工具不同的是,PMD 通 过静态分析获知代码错误。 也就是说,在不运行 Java 程序的情况下报告错误。 PMD 的 核心是 JavaCC 解析器生成器。从根本上看, Java 源代码只是一些普通的文本。不过,为 了让解析器 承认这些普通的文本是合法的 Java 代码,它们必须符合 某种特定的结构要 求。这种结构可以用一种称为 EBNF 的句法元语言表示,通常称为“语法” (Grammar) 。 JavaCC 根据语法要求生成解析器,用于解析用 Java 编程 语言编写的程序。
第三次实验报告-货币时间价值的应用
宁波大学商学院实验报告实验课程名称:财务管理实验学院:商学院专业:工商管理指导教师:陈永平报告人姓名:张峻学号:096010051班级:工商111学期:2012-2013 第一学期商学院商科实验教学中心制货币时间价值的应用一、实验目的与要求:保险正在成为人们经济生活中不可或缺的一部分。
通过本实验使学生掌握利用时间价值的观念,对购买保险未来收益做出正确评判。
根据资料,以6%的贴现率分别计算各保险方案未来收益的现值(以80岁寿命计算)并根据计算结果为他们作选择。
若贴现率为3%,计算未来收益的现值。
(假设付出与收入都是年末发生)、实验设备及软件:互联网、Microsoft word、Microsoft excel三、实验方法(原理、流程图)(一)世纪彩虹保险0岁(男),年交,保额5万元保费支出:年交保费8280元,交费期至15周岁的保单周年日止保险利益:1、生存领取:18、19、20、21周岁保单周年日每年领取20000元作为大学教育金;25周岁保单周年日领取40000元作为婚嫁金60周岁保单周年日领取50000元作为满期保险金2、身故保险金:25周岁保单周年日前身故领取保证现金价值25周岁保单周年日后至满期前身故,领取50000元3、分红:公司每年根据分红保险业务的实际经营状况,按照保险监管机关的规定确定红利分配(二)育英年金保险二、养老年金:儿子从60周岁起,每年领取13000元养老年金至终身三、身故保险金父亲于投保后一年内因病不幸身故,遗属可领取1万元身故保险金,并领回所交保费8900元,保险责任终止。
若父亲因意外或一年后因病于儿子25周岁之前不幸身故,遗属可领取10万元身故保险金,此后儿子可按下表金额每年领取一次育英年金,直至25周岁。
并且豁免保费,前述生存教育金、养老年金依然有效。
1说明18 〜2125岁60岁每年底一项保险年 金的支出 投资收 益率付款的年 限 8280¥ 8,280.008280 0.600.600.60 15.00 15.00 15.00未来值80000.0040,000.00若儿子不幸于周岁前身故,遗属可领回所交保费并按 年增长率单利增值,保险责任终止。
混凝土用砂、石等骨料实验 实验报告
混凝土用砂、石等骨料实验实验报告学号: 2010010131班号:结 02实验日期: 2011.11.16实验者:陈伟同组人:吴一然建筑材料第三次实验一、 实验目的1、 学习砂筛分析和石子捣实密度的试验方法;2、 通过砂的筛分析实验,判断砂的粗、细和砂的级配是否合格;3、了解石子的针、片状颗粒含量、压碎指标松堆密度等试验方法;4、了解轻骨料的筒压强度测试方法。
二、 实验内容1、砂表观密度测定;2、砂筛分析试验;3、石子捣实密度试验;4、石子针状、片状颗粒含量测定(演示);5、石子压碎指标测定(演示);6、轻骨料筒压强度试验(演示)。
三、 实验原理1、 表观密度的定义:包含闭孔体积在内的单位体积的质量,称材料的表观密度。
(单位:g/cm 3),如果两次实验结果的平均值作为测定值,如两次结果之差大于0.02g/cm 3,应重新进行实验。
2、 细度模数:砂的粗细程度用通过累计筛余百分比计算的细度模数(M x )表示,其计算公式为(1) 式中,A1、A2……A6分别为5.00、2.50……0.160 mm 孔筛上的累计筛余百分率;(2) 砂按细度模数(Mx)分粗、中、细和特细四种规格,由所测细度模数按规定评定该砂样的粗细程度;(3)用M x =3.7~3.1为粗砂,3.0~2.3为中砂,2.2~1.6为细砂,1.5~0.7为特细砂来评定该砂的粗细程度。
并根据0.630mm 筛所在的区间判断砂子属于哪个区累计筛余百分比在85%~71%的属于Ⅰ区,在70%~41%的属于Ⅱ区,在40%~16%的属于Ⅲ区。
11654321005)(A A A A A A A M x --++++=3、石子捣实密度实验要求及说明:1)通过对两种单粒级石子不同比例的搭配,观察其捣实密度的变化,画出石子比例和捣实密度的曲线 ,并进行分析;2)实验使用的石子是石灰岩碎石,粒径分别为5—10mm,10-20mm单粒级;3)所用容积升体积为10L;4)石子的称量总质量为20Kg。
Java课程第三次实验报告(第17周)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new FileWriter(fout));
同时明白了不耻下问的道理,有些事在我们看来是百思不得其解的,这时不妨去请教我们身边的老师,或许这些问题是同学们经常犯的,老师可以帮助你从容搞定,自己在其中还会收获别人意想不到的新知识呢。
五、指导教师评语
成绩
批阅人
日期
bw.close();
}
}
2.实验册119页实验17,实验内容的第一题:运行以下代码,体会通过继承Thread类构造线程的特点。将程序运行结果截图。
package sy3;
class SimpleThread extends Thread{
public SimpleThread(String str){
super (str);
}
public void run(){
for (int i=0;i<10;i++){
System.out.println(i+" "+getName());
try{
sleep((int)(Math.random()*1000));
}catch(InterruptedException e){}
实验报告
(2013 / 2014学年第2学期)
课程名称
JAVA语言程序设计
实验名称
标准输入输出流的程序设计、多线程程序设计
实验报告温度实验
实验报告温度实验实验报告:温度实验一、实验目的:探究温度对物体性质和物质变化的影响,理解温度与物质之间的关系。
二、实验原理:温度是指物体分子平均动能的一种度量,并且与分子的运动状况有关。
温度越高,分子的平均动能越大,物质的分子会更加剧烈地运动。
物体的温度可以通过温度计进行测量,常用的温度计有水银温度计和电子温度计等。
三、实验步骤:1. 准备实验所需材料,包括温度计、水杯和热水。
2. 将温度计放入室温的水中,观察温度计的指示并记录下来,作为初始温度。
3. 将一定量的热水倒入水杯中,然后将温度计插入水中,等待一段时间直到温度稳定,并记录下来。
4. 重复步骤3,但将热水的量减少。
5. 重复步骤3,但将热水的量增加。
四、实验结果:实验中我们记录了不同热水温度下的温度计指示。
以下为实验结果:初始温度:26第一次实验:热水温度:50温度计指示:68第二次实验:热水温度:70温度计指示:88第三次实验:热水温度:90温度计指示:108五、实验讨论:根据实验结果,我们可以观察到热水的温度升高是导致温度计指示升高的原因。
由此,我们可以得出结论:温度是描述物体分子平均动能的物理量,温度越高,分子的运动越剧烈。
在实验中,当我们将温度计浸入热水中时,热能会从热水传递到温度计上的液体,使得液体膨胀,从而使温度计指示上升。
这也是为什么温度计可以用来测量温度的原因。
此外,我们还观察到热水的温度越高,温度计指示的差值也越大。
这与温度计的工作原理有关,当温度升高时,液体膨胀得更多,指示的差值也就越大。
在实验中,我们还发现实验过程中温度计指示并不是立即变化的,而是需要等待一段时间,直到温度稳定才会显示出来。
这是因为温度计的敏感度较低,需要一定的时间来传导热量并使温度计达到平衡。
六、实验总结:通过这次温度实验,我们加深了对温度的理解。
温度是描述物体分子平均动能的物理量,与物体的热能相关。
温度的测量通常可以使用温度计进行,根据温度计指示的差异可以判断物体的温度高低。
MIS第三次实验报告
1.通过实验操作,根据所学理论知识熟悉并掌握管理信息系统所使用的主要技术。
2.上机之前应作好充分的准备工作,以提高上机效率。
3.具备团队合作意识,小组成员之间互相帮助,共同完成实验。
4.上机结束后,应整理出实验报告。书写实验报告时,重点放在具体实验内容和小结部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。
2、该系统包括几大功能,分别是什么,请简要说明各功能。
该系统主要功能是对员工基本信息的收录、员工业务记录查询。实际这个系统使对公司人事管理做得一个数据库,包括员工在公司的职位信息、员工本身的基本信息以及合同期限、合同详细内容、员工业务信息。
3、简述本系统的优缺点,并说明自己认为可改进的方向。
该系统有利于对员工的基本信息进行查询,有利于人事管理的展开,但是只能进行一般的信息查询,不能对绩效、考核等版块进行相关的查询,应该建立更加详细的考核系统,这样才有利于人事管理。
二、实验内容或步骤
1、试用AH人事管理软件,输入以下模块的基本内容:(至少较完整的输入一个员工的信息,并截图放到实验报告中)
公用资料:维护组织机构,职工属性代码,岗位代码,职称代码,职工状态,职工流动类型,合同类型,职工帐号类别,职工薪资项目,职工考勤考核项目。人事管理:职工基本档案,职工学历档案,职工履历档案,职工社会关系,职工职务档案,职工职称档案,职工流动档案,职工工资档案,其它变更档案,职工奖惩档案,职工合同档案,职工出国档案。教育培训:职工培训计划,培训记录,培训档案等。工资保险:薪资结构维护,职工账号维护,职工工资标准,职工月工资,职工奖金,工资条打印,工资单打印,工资汇总,银行报盘。考勤考核:职工日考勤,职工月考核。离退休管理:离退...
《管理信息系统》课程实验实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序地址
机器码
指令说明
微程序
PC
uPC
运行时寄存器或存储器的值
MOV A,#55H
00
7C55
C7FFF7
CBFFFF
01
02
7C
7D
A:00,L:00,D:00,R:00
55,00,00,00
RR A
02
D0
FFFCB7
CBFFFF
03
03
D0
D1
55,AA,55,2A
2A,AM,将程序汇编成机器码,反汇编窗口会显示出程序地址,机器码,反汇编指令。
3执行“单微指令运行”功能,观察执行每条指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作,其跟踪结果写人下表。
汇编指令
程序地址
机器码
指令说明
微程序
PC
uPC
运行时寄存器或存储器的值
三实验内容
在实验前,先用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。将计算机串口与实验仪串口相连,启动COP2000软件,并用快捷图标“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接COP2000实验仪”按钮接通到实验仪。
实验1数据传送/输入输出实验
1.在COP2000软件中的源程序窗口输入下列程序:
汇编指令
程序地址
机器码
指令说明
微程序
PC
uPC
运行时寄存器或存储器的值
ADDC A,R1
00
21
FFF7EF
FFFE94
CBFFFF
01
01
01
20
21
22
A:00,W:00
00,00
00,00
SUB A,@R0
01
35
FF77FF
D7BFEF
FFFE91
CBFFFF
02
02
02
02
34
35
36
37
五、实验体会及建议
实验遇到的问题及解决办法;
实验内容是否合适:(内容多,适中,内容少);
对本次实验的建议,以及以后实验内容安排的建议等。
MOV A,#00
00
7C00
C7FFFF
CBFFFF
01
02
7C
7D
A:00
00
CALL 06
02
BC06
EF7F7F
FFEF7F
D6BFFF
CBFFFF
03
04
04
06
BC
BD
BE
BF
00
00
00
00
ADD A,#01
06
1C01
C7FFEF
FFFE90
CBFFFF
07
08
08
1C
1D
1E
00
00,D:01
00,00
00,00
00,21
DF,21
AND A,#55H
02
5C55
C7FFEF
FFFE93
CBFFFF
03
04
04
5C
5D
5E
DF,21
DF,55
55,55
OR A,02H
04
6802
C77FFF
D7BFEF
FFFE92
CBFFFF
05
06
06
06
68
69
6A
68
55,55
55,55
55,5C
02
C4
FFEF7F
FEFF3F
02
02
B8
B9
00,00
00,00
JMP 00
08
AC00
CPL A
0A
E4
四、思考题
1,简述IR寄存器的作用,IR0,IR1的作用。IR2,IR3的作用。
答:IR寄存器用来存放当前从主存储器读出的正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR,DataRegister)中,然后再传送至IR。6IR0,IR1的作用:都是作用在地址码字段。IR2,IR3的作用:都是作用在操作码字段。
RLC A
03
DC
FFFED7
CBFFFF
04
04
DC
DD
2A,54,2A,15
A:54,L:54,D:2A,R:15
CRL A
04
E4
FFFE96
CBFFFF
05
05
E4
E5
54,A8,54,2A
AB,56,AB,55
实验4转移实验
1在COP2000软件中的源程序窗口输入下列程序:
MOV A,#01
MOV A,#12H
MOV A,R0
MOV A,@R0
MOV A, 01H
IN
OUT
END
2将程序另存为EX1.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址,机器码,反汇编指令。
3执行“单微指令运行”功能,观察执行每条指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作,其跟踪结果写人下表。
CBFFFF
04
04
04
74
75
76
00,74
00,74
7C,7C
MOV A, 01H
04
7801
C77FFF
D7BFF7
CBFFFF
05
06
06
78
79
7A
7C,78
7C,01
12,12
IN
06
C0
FFFF17
CBFFFF
07
07
00
C1
12,C0
00,C0
OUT
07
C4
FFDF9F
CBFFFF
08
汇编指令
程序地址
机器码
指令说明
微程序
PC
uPC
运行时寄存器或存储器的值
MOV A,#01
00
7C01
C7FFF7
CBFFFF
01
02
7C
7D
A:00,
01
SUB A,#01
02
3C01
C7FFEF
FFFE91
CBFFFF
03
04
04
3C
3D
3E
01
01,W:01
00,01
JC 02
04
A002
C6FFFF
RETI
END
2将程序另存为EX6.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址,机器码,反汇编指令。
3执行“单微指令运行”功能,观察执行每条指令时,堆栈及中断请求,中断响应位的状态和寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作,其跟踪结果写人下表。
汇编指令
程序地址
机器码
答:有三个状态周期,在T2状态,微指令的值为0FFEF7FH,其中X2X1X0=011(二进制),表示从PC中读出数据送到DBUS上,STEN有效表示将DBUS上数据存入堆栈寄存器ST中,这条微指令执行的就是将PC值(即下条将执行的指令的地址)存入堆栈。在T1状态,微指令值为0FEFF3FH,其中X2X1X0=001表示将中断地址寄存器IA的值送到DBUS上,IA的缺省值为0E0H,ELP有效,与指令寄存器IR的IR3、IR2=10(二进制)组合,将DBUS值存入PC,实现程序的跳转。在T0态以中断地址0E0H为地址取出中断服务程序的第一条指令,准备执行。
08
C4
C5
00,C4
00,C4
实验2数据运算实验
1在COP2000软件中的源程序窗口输入下列程序:
ADDC A, R1
SUB A, @R0
AND A,#55H
OR A,02H
END
2将程序另存为EX2.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址,机器码,反汇编指令。
3执行“单微指令运行”功能,观察执行每条指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作,其跟踪结果写人下表。
2,简述跳转指令的执行过程。
答:取指令,读出指令码,存入IR寄存器后,指令码存入μPC后,从μM读出伪指令,表示以PC为地址从EM中读出数据并送到数据总线上,因为ELP有效,与IRI3、RP2组合产生PC的打入信号,将数据总线上的数据存入PC中,下一条去址微指令按新的PC值读出程序的伪指令。
3,简述中断指令的执行过程。
2实验要求
(1)做好实验预习和准备工作,掌握本次实验所用指令系统功能
(2)将实验用汇编语言源文件编译成机器语言的目标文件
(3)完成规定的实验内容
(4)故障分析与排除
(5)实验结束时完成实验报告,并将报告提交服务器。
二实验原理
模型机的逻辑框图如图所示。其指令系统和微指令系统可参看资料。在本实验中,模型机作为一个整体工作。所有微程序的控制信号由微程序存储器uM输出。而各寄存器,运算器的控制端口与uM联接。
指令说明
微程序
PC
uPC
运行时寄存器或存储器的值
MOV A,#00
00
7C00
C7FFF7
CBFFFF
01
02
7C
7D
00,00
00,00
OUT
02
C4
FFDF9F
CBFFFF
03
03
C4
C5
00,00
00,00
JMP 02
03
AC02
C6FFFF