重庆大学汇编实验报告3
重庆大学数学实验实验三
重庆大学
学生实验报告
实验课程名称数学实验
开课实验室
学生姓名学号
开课时间2015 至2016 学年第二学期
数学与统计学院制
开课学院、实验室:数统学院实验时间:2016 年3 月28 日
1、同一章的实验作为一个实验项目,每个实验做完后提交电子稿到服务器的“全校任选课数
学实验作业提交”文件夹,文件名为“学院学号姓名实验几”,如“机械20073159张新实验一”。
2、提交的纸质稿要求双面打印,中途提交批改不需要封面,但最后一次需将该课程所有实验
项目内页与封面一起装订成册提交。
3、综合实验要求3人合作完成,请在实验报告上注明合作者的姓名。
重庆大学实习报告范文5篇
重庆大学实习报告范文5篇重庆大学实习报告范文1生产实习是教学与生产实际相结合的重要实践性教学环节。
在生产实习过程中,学校也以培养我们观察问题、解决问题和向生产实际学习的能力和方法为目标。
培养我们的团结合作精神,牢固树立我们的群体意识,即个人智慧只有在融入集体之中才能限度地发挥作用。
一、实习目的通过这次生产实习,使我在生产实际中学习到了在学校无法学到的实践知识。
在向工人学习时,培养了我们艰苦朴素的优良作风。
在生产实践中体会到了严格地遵守纪律、统一组织及协调一致是现代化大生产的需要,也是我们当代大学生所必须的,从而近一步的提高了我们的组织观念。
通过生产实习,对我们巩固和加深所学理论知识,培养我们的独立工作能力和加强劳动观点起了重要作用。
二、我对公司工作的理解很荣幸成为公司的一员。
公司是一个团结的整体,每一个员工都有自己的工作岗位,公司需要依其更快更好发展的需要并结合个人的情况来安排工作岗位。
有做技术工作的,有做市场工作的,还有做管理工作的等等众多的工作岗位。
哪一个环节出了问题都是不允许的。
因此,我认为每一个工作岗位都很重要。
作为一名未来电气控制方面的技术员工,我会始终坚持公司提出的原则。
技术员工不能只会配线、接线、调试和装配,而不懂研发、设计和编程等工作。
三、入厂以来的工作体会在实习期间,毕竟是第一次工作,所以起初做起来笨手笨脚的,也挺辛苦的,不过在同事和同学的的关心和帮助下不断进步和成长,也充分感受到公司这个大家庭的团结和温暖,于是我决定就算再苦再累我也要坚持下去,所以工作起来反而觉得轻松了许多。
更是通过虚心请教,在师傅的指导帮忙协助下,我很快的适应了这份工作,经过这几天的过渡,我已经初步掌握了步骤和一些基本注意事项。
不过对于相关的专业知识我知道甚少,于是我虚心请教师傅同时自己也阅读相关的书籍,并细心专研,最终问题得到很好解决。
在实习的这段时间,虽然有时候工作很苦很累,但是,我从中体会到了实践中的专业技术,不断积累实践技术经验。
重庆大学数学实验实验三
重庆大学学生实验报告实验课程名称数学实验开课实验室学院年级专业班学生姓名学号开课时间至学年第学期数学与统计学院制开课学院、实验室:实验时间:2013年4月24 日2.第二题程序:(1)先编写M文件:function weif=erone(t,x) weif=sin(t)*x+exp(sin(t));(2)编写M文件:function weif=ertwo(t,x)weif=[x(2);-(x(1)-t)*x(2)./(t+1)-x(1)./(t+1)+(t*cos(t))./(t+1)];在外面的窗口中运行下面的命令:4.第三题程序:首先编写rossler.M 文件:function f=rossler(t,x)global af=[-x(2)-x(3);x(1)+a*x(2);2+x(3)*(x(1)-4)];a=0.3时a=0.4时a=0.6时运行出错,输不出结果。
4.第四题程序:编写si.m 的M文件:function f=si(t,x)f=[x(2)+cos(t);sin(2*t)];在外面的窗口中编写下面命令:[t,x]=ode45('si',[0,50],[0.5,-0.5])第五题程序:先编写名为logistic.m的M文件: f=logistic(t,x)a=0.5;b=2;分析图可知,种群2竞争能力较弱,最终灭亡,种群1 的竞争能力较强,最终达到环境所容许的最大值。
(2)a=1.5 b=0.7时将logistic.m文件中的a b的值改为a=1.5 b=0.7,然后保存,运行程序,可得结果:t =分析上图可知,种群1的竞争能力较弱,种群2的竞争能力较强,灭亡,种群2在竞争中达到环境所容许的最大数量。
应用实验(或综合实验)一、实验内容5号宋体1、同一章的实验作为一个实验项目,每个实验做完后提交电子稿到服务器的“全校任选课数学实验作业提交”文件夹,文件名为“学院学号姓名实验几”,如“机械20073159张新实验一”。
重庆大学实习报告(12篇)
重庆大学实习报告重庆大学实习报告(12篇)随着个人的素质不断提高,报告与我们愈发关系密切,报告中涉及到专业性术语要解释清楚。
那么你真正懂得怎么写好报告吗?下面是小编为大家整理的重庆大学实习报告,希望能够帮助到大家。
重庆大学实习报告11.实习性质、目的现场实习是电气工程及其自动化专业的集中性必修实践环节,要求学生在完成基础课和部分技术基础课学习之后,通过参观生产企业、听取学术讲座和观看教学录像片,结合工程实际问题,进一步了解各种主要电气设备的基本结构和基本作用、电能的生产和输配电方式、电气设备的控制与检测方法,为今后的专业课程学习打下良好的基础。
通过现场实习,让学生学习工厂工作人员的优良品质和严肃认真的工作作风,初步了解与电气工程领域的相关仪器、仪表和设备,熟悉企业的生产、运行和管理等情况,培养学生了解专业、热爱专业、勤奋学习、树立为我国电气工程发展作贡献的思想品质和业务素质。
2.实习的内容和方法1)学习和了解主要电气设备(含建筑电气设备)的种类、名称、结构、作用和主要参数;2)学习和了解变电站主要控制室和开关站的作用和布置方式,电气主接线的类型;3)学习和了解发电厂的主要设备及其参数和技术经济指标,电能的生产和输配方法;4)学习和了解同步电机、感应电机、变压器、直流电机、断路器、隔离开关、熔断器、跌落式保险器、电容补偿器等电气设备的作用、主要参数、制造材料和制造方法;5)学习和了解计算机控制、PLC、电力电子等技术在电气行业中的应用。
3.实习内容3.1重庆电机厂3.1.1公司简介:重庆电机厂又名重庆赛力盟电机有限公司,是由重庆机电控股(集团)有限公司——重庆电机厂与其他非国有出资人按照现代企业制度于20xx年1月18日成立的有限责任公司。
公司是专业研发、生产和销售各型交流异步电动机、交流同步电动机、直流电动机、汽车电机、轨道牵引电机、水轮发电机及发电机组和其它特殊电机的企业。
3.1.2参观过程:与其他工业制造厂一样,重庆电机厂座落在空旷的郊区。
(实验六)汇编语言课内实验报告
实验四循环结构程序设计上机实验
一、实验目的:
1、掌握循环结构程序设计的基本方法。
2、掌握用masm for Windows编辑、编译、连接汇编语言源程序的基本方法。
3、掌握DEBUG调试程序的U、D、R、T、G、Q常用命令的用法。
二、实验步骤:
1、用ASM masm for Windows将源程序输入,其扩展名为.ASM。
2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,则修改源程序后重新汇编,直至通过。
3、用LINK将.OBJ文件连接成可执行的.EXE文件。
4、用DEBUG调试程序并分析结果。
三、实验内容:
1. 在数据段中从变量DA1开始有N个带符号数。
把其中的正数、负数(设没有0)依次存入DA2、DA3开始的单元中并分别统计正、负数的个数存入DA4、DA5字节单元之中。
试编写程序。
将本例中的DEC指令修改为LOOP指令来实现循环程序的设计。
在修改过程中还应修改哪能些指令,请自己分析,为什么?
四、综合练习:
1.编写求100个正整数的和的程序。
如果和不超过16位字的范围(即65535),则将其和保存到WORDSUM单元中,若超过则显示OVERFLOW。
2.设有N个数,连续存放在以BUF为首址的字存储区中,试编写程序,统计其中最高的6位全1的数个数并将统计结果送入寄存器DX中。
五、实验报告(注意:将报告正反两面打印后用手写)附件如下:
实验四循环程序设计实验报告学号姓名成绩。
汇编综合性实验报告
实验报告一、实验目的《汇编语言程序设计》是计算机专业的重要的专业基础课,通过本综合性、设计性实验使学生进一步巩固课堂所学,全面熟悉、掌握8088宏汇编语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。
二、实验要求用键盘选择计算机演奏乐曲,程序运行时首先在屏幕上显示出乐曲名单,当从键盘上输入乐曲的序号时,计算机则演奏所选择的乐曲,当键盘上按下Q键时,演奏结束。
三、实验原理分析(一)发音原理计算机有两种产生声音的方法,一种方法是通过I/O指令向设备寄存器(端口地址为61H)的第1位交替送1和0,使与第1位相连的扬声器脉冲门产生连续的脉冲电流,驱动扬声器发出声音。
另一种方法是利用8254(系统定时器)中的2号定时器向扬声器发送不同频率的脉冲,使之产生音调高低不同的声音,这种产生声音的方法可使计算机演奏出各种乐曲。
本程序选用定时器产生声音。
ROM BIOS中的BEEP子程序能根据BL中给出的时间计数值控制8254定时器,产生持续时间为1个或几个0.5秒、频率为896HZ的声音。
通过对BEEP的修改,可以使其产生任一频率的声音。
用汇编语言编写的程序GENSOUND,能使PC机发出指定频率和指定延迟时间的声音,它是一个很好的通用发声程序。
组成乐曲的每个音符的频率值和持续时间是乐曲发声程序所必须的两组数据,知道了音调及频率的关系后,就可以按照乐曲的乐谱将每个音符的频率和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音。
但GENSOUND程序产生的声音不仅与输入频率有关,而且与CPU有关。
如果80X86的工作频率为8MHZ(如IBM PS/ 2-25型),则T=125ns(1 /8MHz=125ns),那么上面程序产生的时间延迟就要短的多。
在80286中,LOOP指令只需8个执行周期,而不是17个执行周期,这也会使延迟时间缩短很多。
汇编实验报告
汇编实验报告一、实验目的本次汇编实验的主要目的是深入理解计算机底层的工作原理,掌握汇编语言的基本语法和编程技巧,能够运用汇编语言编写简单的程序来实现特定的功能。
通过实践操作,提高对计算机体系结构的认识,培养解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 Windows 10,汇编语言编译器为MASM 615。
三、实验内容(一)数据传送与算术运算1、编写程序实现将两个 16 位的整数相加,并将结果存储在指定的内存单元中。
2、实现数据在不同寄存器和内存单元之间的传送。
(二)逻辑运算与移位操作1、对给定的两个字节数据进行逻辑与、或、异或操作,并观察结果。
2、进行移位操作,包括左移和右移,理解移位对数据的影响。
(三)循环与分支结构1、利用循环结构计算 1 到 100 的整数之和。
2、根据给定的条件,使用分支结构实现不同的操作。
(四)子程序调用1、编写一个子程序,实现两个数的乘法运算。
2、在主程序中调用该子程序,并输出结果。
四、实验步骤(一)数据传送与算术运算1、打开 MASM 编译器,新建一个汇编源文件。
2、使用`MOV` 指令进行数据传送,将两个整数分别存储在寄存器`AX` 和`BX` 中。
3、使用`ADD` 指令将两个数相加,结果存储在`CX` 寄存器中。
4、最后,使用`MOV` 指令将结果存储到指定的内存单元。
(二)逻辑运算与移位操作1、在源文件中定义两个字节变量,并初始化其值。
2、使用逻辑运算指令(如`AND`、`OR`、`XOR`)对这两个变量进行操作。
3、使用移位指令(如`SHL`、`SHR`)对变量进行移位,并观察结果。
(三)循环与分支结构1、对于循环结构,使用`LOOP` 指令实现从 1 到 100 的累加。
2、在分支结构中,根据给定的条件(如比较两个数的大小),使用`JZ`、`JL` 等指令执行不同的分支操作。
(四)子程序调用1、定义一个子程序,使用参数传递的方式接收两个数,并进行乘法运算。
汇编语言实验报告
实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行过程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行2.实验环境IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。
3.实验内容及实验数据记录1、将数据段输入,取名1.txt,保存在MASM文件夹下。
生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。
试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND2、输入有错误的文件,修改错误语句。
(MASM没有出现错误即可。
不必连接、运行。
)DATA SEGMENTVAR1 DB 0, 25, ODH, 300VAR2 DB 12H, A4H, 6BHVAR3 DB ’ABCDEF’VAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DATA BEING MOV AX, DATAMOV DS, AXLEA SI, VAR5MOV BX, OFFSET VAR2MOV [SI], 0ABHMOV AX, VAR1+2MOV [BX], [SI]MOV VAR5+4, VAR4MOV AH, 4CHINT 21HCODE ENDSEND START3、输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DATASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.算法描述及实验步骤(1)编写源程序。
重庆大学数据库实验报告3
《数据库系统》实验报告2 BC D 3 A备注:1、教师在布置需撰写实验报告的实验前,应先将报告书上的“实验题目”、“实验性质”、“实验目的”、“实验项目内容”等项目填写完成,然后再下发给学生。
2、教师在布置需撰写报告的实验项目时,应告知学生提交实验报告的最后期限。
3、学生应按照要求正确地撰写实验报告:1)在实验报告上正确地填写“实验时间”、“实验地点”等栏目。
2)将实验所涉及的源程序文件内容(实验操作步骤或者算法)填写在“实验过程或算法(源程序)”栏目中。
3)将实验所涉及源程序调试过程(输入数据和输出结果)或者实验的分析内容填写在“实验结果及分析和(或)源程序调试过程”栏目中。
4)在实验报告页脚的“报告创建时间:”处插入完成实验报告时的日期和时间。
5)学生将每个实验完成后,按实验要求的文件名通过网络提交(上载)到指定的服务器所规定的共享文件夹中。
每个实验一个电子文档,如果实验中有多个电子文档(如源程序或图形等),则用WinRAR压缩成一个压缩包文档提交,压缩包文件名同实验报告文件名(见下条)。
6)提交的实验报告电子文档命名为:“年级(两位数字不要“级”字)专业(缩写:计算机科学与技术专业(计科)、网络工程专业(网络)、信息安全专业(信息)、物联网工程(物联网))班级(两位数字)学号(八位数字)姓名实验序号(一位数字).doc。
如学号为20115676、年级为2011级、专业为“计算机科学与技术”专业、班级为“02班”、姓名为“王宇”的学生,完成的第一次实验命名为:11计科02班20115676王宇1.Doc,以后几次实验的报告名称以此类推。
4、教师(或助教)在评价学生实验时,应根据其提交的其他实验相关资料(例如源程序文件等)对实验报告进行仔细评价。
评价后应完成的项目有:1)在“成绩”栏中填写实验成绩。
每个项目的实验成绩按照五级制(优、良、中、及格、不及格)方式评分,实验总成绩则通过计算每个项目得分的平均值获得(平均值计算时需将五级制转换为百分制优=95、良=85、中=75、及格=65、不及格=55)。
重庆大学学生实验报告
重庆大学
学生实验报告实验课程名称
开课实验室
学院年级专业班
学生姓名学号
开课时间至学年第学期
材料学院制
《********》实验报告
实验报告打印格式说明
1.标题:三号加粗黑体
2.开课实验室:号加粗宋体
3.表中内容:
(1)标题:号黑体
(2)正文:号宋体
4.纸张:开(×)
5.版芯
上距:
下距:
左距:
右距:
说明:、“年级专业班”可填写为“电子班”,表示级电子工程专业第班.
、实验成绩可按五级记分制(即优、良、中、及格、不及格),或者百分制记载,若需要将实验
成绩加入对应课程总成绩地,则五级记分应转换为百分制.。
汇编语言编程实验报告
汇编语言编程实验报告学号:姓名:成绩:目录一、实验一: ......................................................错误!未定义书签。
二、实验二: (4)三、实验三: (8)四、实验四: (10)五、实验五: ......................................................错误!未定义书签。
六、实验六: (19)七、汇编实验总结 (23)实验一一. 实验题目【汇编语言补充作业T20T20】编写完整程序,利用】编写完整程序,利用DOS 系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。
二. 程序流程及思路实现字符串输入,需要分成三个步骤:实现字符串输入,需要分成三个步骤:1、在数据段中定义一个缓存区为存放字符串做准备;2、DOS 系统功能调用0AH 号子功能,(DS:DX DS:DX))= = 输入缓冲区首址;输入缓冲区首址;输入缓冲区首址;3、在输入的字符串尾加上‘、在输入的字符串尾加上‘$$’字符,以作为输出结束条件。
’字符,以作为输出结束条件。
实现字符串输出,则需要注意的问题是:实现字符串输出,则需要注意的问题是:1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;和字符串实际字符数;2、输出回车换行可利用字符串:、输出回车换行可利用字符串:CR DB 0AH,0DH,CR DB 0AH,0DH,CR DB 0AH,0DH,’’$’。
’。
三. 源程序清单DATA SEGMENTN EQU 50MAXLEN DB N ;MAXLEN DB N ;缓冲区字符的最大长度缓冲区字符的最大长度缓冲区字符的最大长度ACTLEN DB ? ;ACTLEN DB ? ;实际字符个数实际字符个数实际字符个数STRING DB N DUP(?) ;STRING DB N DUP(?) ;字符空间字符空间字符空间CR DB 0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXLEA DX,MAXLENMOV AH,0AHINT 21H ;字符串输入字符串输入MOV AH,09HLEA DX,CRINT 21H ;回车换行回车换行MOV BL,MAXLEN+1 ;取实际的字符长度取实际的字符长度MOV BH,0LEA SI,MAXLEN+2 ;取字符开始的首地址取字符开始的首地址MOV BYTE PTR [SI+BX],'$' ;输出结尾要加上输出结尾要加上$ $MOV DX,SI ;把开始存放字符的首地址赋给DX(注:以下程序采用b方法)方法)。
汇编实验报告3
汇编实验报告3汇编实验报告3引言:汇编语言是一种低级语言,用于编写计算机程序。
在本次实验中,我们将继续学习和实践汇编语言的基本概念和技术。
本报告将详细记录我们在实验过程中所遇到的问题、解决方案和实验结果。
实验目的:本次实验的主要目的是加深对汇编语言的理解,并通过实践掌握汇编语言的基本操作和调试技巧。
通过完成实验,我们将能够编写简单的汇编程序,理解程序的执行过程和内存的使用。
实验环境:本次实验使用的是x86架构的计算机,并使用MASM汇编器进行程序的编译和链接。
我们还使用了调试器来跟踪程序的执行过程。
实验步骤:1. 阅读实验指导书和相关资料,了解本次实验的要求和目标。
2. 编写一个简单的汇编程序,实现两个数的相加功能。
程序首先要求用户输入两个数,然后将其相加并输出结果。
3. 使用MASM汇编器将程序源代码编译成目标文件。
4. 使用链接器将目标文件与运行时库链接,生成可执行文件。
5. 运行程序,并验证程序的正确性。
如果程序不能正常工作,使用调试器进行调试,找出问题的原因并进行修复。
6. 记录实验结果和遇到的问题,撰写实验报告。
实验结果:我们编写了一个简单的汇编程序,成功实现了两个数的相加功能。
程序能够正确地接收用户输入的两个数,并将其相加后输出结果。
我们通过多次测试,验证了程序的正确性。
实验中遇到的问题及解决方案:在实验过程中,我们遇到了一些问题,下面是其中的两个例子以及我们的解决方案:1. 问题:在程序运行过程中,无法正确接收用户输入的数值。
解决方案:我们仔细检查了程序的输入部分,发现在读取用户输入时,没有正确设置输入缓冲区的大小。
通过增大缓冲区的大小,我们成功解决了这个问题。
2. 问题:程序输出的结果不正确。
解决方案:我们使用调试器跟踪程序的执行过程,发现在进行相加操作时,寄存器的值被错误地覆盖了。
经过进一步的调试,我们发现这是因为在进行相加操作之前,没有正确地保存寄存器的值。
通过添加保存和恢复寄存器值的代码,我们成功解决了这个问题。
masm实验3 实验报告
(1)将下面程序保存为t1.asm,生成可执行文件t1.exe。
assume cs:codesgcodesg segmentmov ax,2000Hmov ss,axmov sp,0add sp,10pop axpop bxpush axpush bxpop axpop bxmov ax,4c00Hint 21Hcodesg endsend(2)用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶内容。
step 0:通过debug t1.exe加载程序后:ax=0000H;bx=0000H;cx=0016H(表示程序长度,为22个字节);ds=13D5H(表示操作系统给t1.exe分配的空闲区域的段地址);cs=13e5H(=ds+10H,与之前描述一致);ss=13e5H,sp=0000H;通过d 13e5:0 1命令查看栈顶内容,为00b8H;step1:单步执行第一条指令后:ax=2000H;bx=0000H;其余cx,ds,cs,ss,sp均不变;此时栈顶内容理应不变,查看依旧为00b8H;step2:单步执行第二条指令后,自动连带执行第三条指令:ax=2000H;bx=0000H;其余cx,ds,cs均不变;ss和sp被重置,栈顶指向:2000:0,查看栈顶内容,为:0ff1H;step3:单步执行第四条指令后:ax=2000H;bx=0000H;其余cx,ds,cs,ss均不变;sp被重置,栈顶指向:2000:0a,查看栈顶内容,为:615fH;step4:单步执行第五条指令后:ax=615fH(与上一步所得一致);bx=0000H;其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0c,查看栈顶内容,为:0DF0H;----------因重新debug,导致前后ax不一致-----------step5:单步执行第六条指令后:ax=13e5H;bx=0DF0H(与上一步所得一致);其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;step6:单步执行第七条指令后:ax=13e5H;bx=0DF0H;其余cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H (与AX一致);step7:单步执行第八条指令后:ax,bx,cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0A,查看栈顶内容,为:0DF0H (与BX一致);step8:单步执行第九条指令后:ax=0DF0H(与上步查看一致);bx,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H;step9:单步执行第十条指令后:bx=13E5H(与上步查看一致);ax,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;(3)PSP头两个字节为CD 20,用debug加载t1.exe.查看PSP内容:PSP区域地址范围为:ds:0~ds:ff.分类: 汇编语言。
汇编课程设计实验报告
汇编语言程序设计实验报告专业:班级:学号:姓名:日期:湖南科技大学实验报告一实验题目:有两个数(字数据)DATA1和DATA2,把两数之和放在DA TA3中,两数之差放在DA TA4中。
实验目的:1.熟练掌握汇编语言的程序结构,学会如何使用数据定义、符号定义、模块定义等常用的批示性语句。
2.熟悉汇编语言的工作环境;学会使用汇编语言的编辑、汇编、和连接装配程序的方法;熟悉汇编语言程序的编辑-汇编-连接-运行-调试的过程3.熟练掌握用DEBUG来调试程序,掌握调试程序的反汇编、读写寄存器或存储单元、运行程序等简单的调试命令。
4.熟悉汇编语言指令,学会使用数据传送,算术逻辑运算,处理器控制等简单指令。
实验主要原理:先用数据传送指令将DATA1,DA TA2放入AX和BX两个寄存器中,分别用ADD和SUB 两个指令来计算两数之和与两数之差,再用数据传送指令将两数之和放入DA TA3中,将两数之差放入DATA4中。
最后用ret指令返回DOS程序流程图:源程序:datarea segmentDA TA1 dw 5 ;数据定义DA TA2 dw 4DA TA3 dw ?DA TA4 dw ?datarea endsprognam segmentmain proc farassume cs:prognam,ds:datareastart: push ds ;准备工作sub ax,axpush axmov ax,datareamov ds,axmov ax,DATA1mov bx,DATA2add ax,bx ;做加法mov DATA3,axmov ax,DATA1sub ax,bx ;做减法mov DATA4,axretmain endpprognam endsend startDEBUG调试关键步骤:执行mov ax,DATA1(AX)=5,传送成功执行add ax,bx(AX)=9,加法成功执行到最后ret时,查看数据段内容分别为5, 4,9,1 说明加法,减法都成功执行运行结果:(DATA3)=9(DA TA4)=1实验报告二实验题目:数据段中有一个字符串DATA1,串长为3,内容为‘CDE’,还有另一个字符串为DATA2,长度为4,内容为‘ABCD’。
重庆大学数学实验实验报告(参考)
( x) x ( x) 1 ( x)
2 x 5x
4 x 2 x 5 x 3 1 5 2 15 x 2 5 ,算法设计为: 4 1 3 2 1 2 x 5 x 1 5 2 15 x 5 3
1 5
1
x1=0; x2=((2*x1-5*x1^3-1)^(1/5)-1/5*(2*x1-5*x1^3-1)^(-4/5)*(2*x1-15*x1^3))/(1-1/5*(2*x1-5*x1^3-1)^(4/5)*(2-15*x1^2)); for k=1:100 x1=x2; x2=((2*x1-5*x1^3-1)^(1/5)-1/5*(2*x1-5*x1^3-1)^(-4/5)*(2*x1-15*x1^3))/(1-1/5*(2*x1-5*x1^31)^(-4/5)*(2-15*x1^2)); end x1 输出结果为: x1 = -0.1483 + 0.7585i
2 2 1 2 3 2 2 x x 2 3 3 x ( x) x ( x) x x x x ,算法设计为: x h( x ) 2 1 ( x) 2 5 2 3 3x 2 x x
1
2
x1=0; x2=((0.4*x1-0.2*x1^5-0.2)^(1/3)-1/15*(0.4*x1-0.2*x1^5-0.2)^(-2/3)*(2*x1-5*x1^5))/(1-(1/15*(0.4*x 1-0.2*x1^5-0.2)^(-2/3)*(2-5*x1^4))); while abs(x1-x2)>10^(-5) x1=x2; x2=((0.4*x1-0.2*x1^5-0.2)^(1/3)-1/15*(0.4*x1-0.2*x1^5-0.2)^(-2/3)*(2*x1-5*x1^5))/(1-(1/15*(0 .4*x1-0.2*x1^5-0.2)^(-2/3)*(2-5*x1^4))); end x1 输出结果为: x1 = 0.4004 + 0.2860i ③迭代函数为 ( x)
汇编语言实验报告
实验一 Masm6.11的使用方法一、实验目的1、创建一个新的汇编语言程序,熟练掌握汇编语言开发工具的使用方法,并对开发环境中一些坏境变量进行设置。
2、创建一个工程文件,对该工程文件进行编译,连接,并运行;3、对建立的工程文件进行调试,在运行过程中查看各个寄存器的值,内存单元的值等。
二、实验环境该试验包括的硬件和软件条件如下:1、硬件环境(1)INTEL I3(2)内存4g2、软件环境(1)Window XP Professor VMware虚拟机(2)MASM6.11开发软件三、实验步骤1、将Masm6.11安装程序拷贝到D盘根目录下,并执行d:\Masm611目录下Setup.exe文件,按照安装提示将程序安装到C盘根目录。
2、将C:\masm611\Bin目录下的所有文件拷贝到C:\Masm611\binr目录下,将C:\Masm611\help目录下的所有文件拷贝到c:\Masm61\binr目录下。
3、执行C:\Masm611\Binr目录下的pwb.exe文件,打开开发环境。
4、在PWB编辑窗口中输入实验1.1中的程序,并保存为test.asm文件。
5、执行Project菜单下New Project子菜单创建一个新的工程文件,并命名为test.mak,将test.asm文件加入到该工程文件中。
6、执行Project下Build子菜单编译连接该工程文件,并运行该可执行程序,观察程序执行的结果。
7、执行Run菜单下Debug子菜单,进入调试环境。
8、在程序的如下位置设置断点,并按要求观察寄存器堆栈或者内存单元的值。
Data segmentMsgl db "please input the number of student:$"Num db 0EnMsg db 0ah,0dh,'$'Msg2 db "please input the grade of each student:$"Msg3 db "the average grade of these student is:$"avg db 0ascavg db 0,0,'$'Data endsStack segment para stackdb 20h dup(0)Stack endscode segmentAssume Cs:code,Ss:stack,ds:DataStart: mov ax,datamov ds,axlea dx,Msgl ;此行设置断点,观察DS所指示的数据段的情况mov ah, 09hint 21hCall Numproc ;此行设置断点,观察屏幕输出,并观察堆栈的变化mov num,bl ;此行设置断点,观察bl的值,并观察堆栈的变化lea dx,EnMsgmov ah,09hint 21hlea dx,Msg2mov ah,09hint 21hcall Avgproc ;此行设置断点,观察屏幕输出信息lea dx,EnMsg ;此行设置断点,观察avg所对应的存储单元的值mov ah,09hint 21hlea dx, Msg3mov ah,09hint 21hcall bta ;此行设置断点,观察屏幕输出信息mov ah,4ch ;此行设置断点,观察ascavg所对应的存储单元的值及屏 ;幕输出信息int 21hNumproc procpush axpush cxpush dxlea dx,EnMsgmov ah,09hint 21hmov bl,0lop1: mov ah,01hint 21h ;设置断点观察al寄存器的值cmp al,0dhjz lop2cmp al,'0'jl lop1cmp al, '9'ja lop1sub al,30hmov cl,almov al,blmov ch,10mul chmov bl,al ;设置断点观察al寄存器的值add bl,cl ;设置断点观察bl寄存器的值jmp lop1lop2: pop dxpop cxpop axretNumproc endpAvgproc procpush axpush cxxor dx,dx ;设置断点观察堆栈值的变化mov cl,num ;设置断点观察cl寄存器的值lop3: call Numprocxor ax,axmov al,bladd ax,dxDiv numadd avg,al ;设置断点观察avg存储单元的值 xor dx,dxmov dl,ahsub cl,1jnz lop3pop axpop cxret ;设置断点观察堆栈值的变化Avgproc endpbta procpush ax ;设置断点观察堆栈值的变化push bxxor ax,axmov al,avgmov bl,10div bladd ah,30h ;设置断点观察ax寄存器的值add al,30hmov ascavg ,al ;设置断点观察ascavg存储单元的值mov ascavg+1,ahlea dx,EnMsgmov ah,09hint 21hlea dx,ascavg ;设置断点观察dx寄存器的值mov ah,09hint 21hpop bxpop axretbta endpcode endsend start9、按照程序的执行过程绘制出程序流程图。
重庆大学数学实验第三次
开课学院、实验室:实验时间:年月日1-2*x-2+3*exp(x)y =3*exp(x)-2*x–2x=0:0.02:1;y1=3*exp(x)-2*x-2;plot(x,y1,'b-')2通解y=dsolve('D2y+y*cos(x)=0')y =C19*exp(t*(-cos(x))^(1/2)) + C20/exp(t*(-cos(x))^(1/2))y=dsolve('D2y+y*cos(x)=0','y(0)=1,Dy(0)=0','x') 结果 y =[ empty sym ].设y1=y,y2=y’则可得y1’=y2y2’+y1cos(x)=0首先建立M-文件function f=fun(x,y)f=[y(2);-y(1)*cos(x)];[x,y]=ode23('fun',[0,1],[1,0])x =0.00010.00050.00250.01250.06250.15410.25410.35410.45410.55410.65410.75410.85410.95411.00002.用向前欧拉公式和改进的欧拉公式求方程y’= y - 2x/y, y(0) = 1 (0≤解,要求编写程序,并比较两种方法的计算结果,说明了什么问题?当a=0.2时当a=0.3时当a=0.4时当a=0.5时当a=0.6时结论4.Apollo卫星的运动轨迹的绘制编写M1133121331()()2,2,(0)0,(0)0,(0) 1.04935751x xx y xr ry yy x yr rx y yμμμμμμ+-=+--=-+--===-1、同一章的实验作为一个实验项目,每个实验做完后提交电子稿到服务器的“全校任选课数学实验作业提交”文件夹,文件名为“学院学号姓名实验几”,如“机械20073159张新实验一”。
重庆大学计算机辅助设计实验3-4
可以求出所有特征根离散系统:(d )i (G)D ((z ))))abs ei g G F 或传递函数模型: roots(den),eig(G)图解判定法连续系统:同时画出单位圆离散系统:,同时画出单位圆3_2.考虑下面给出的多变量系统,试用MATLAB编程求出该系统的零点和极点,并判定系统的稳定性。
⎡⎥⎤⎢⎡=⎥⎥⎤⎢⎢⎡=⎥⎥⎤⎢⎢=-1-221C 2001B 11-2-4-01213-A ,,⎦⎣⎥⎥⎥⎦⎢⎢⎢⎣⎥⎥⎥⎦⎢⎢⎢⎣211211302-11-1-1-21¾3_1与3_2选择其中之一写在实验报告中¾实验报告要求①写出程序写出程序。
②写出MATLAB仿真后的结果。
③结论。
4二.系统能控性、能观测性判定¾可控性判定矩阵由Tc=ctrb(A, B)函数构造。
¾rank( )函数可求出矩阵的秩,学生将其与系统状态变量rank()函数可求出矩阵的秩学生将其与系统状态变量数比较,就可以判定能控性了。
编写MATLAB 程序,完成以下内容4.判定下列系统的可控性、可观测性。
⎡0111⎥⎦⎤⎢⎣⎡=⎥⎥⎥⎤⎢⎢⎢⎡=⎥⎥⎥⎤⎢⎢⎢=00100001C 10001B 001010000A 1,,)(⎥⎤⎢⎡⎥⎤⎢⎡⎥⎥⎦⎢⎢⎣⎥⎥⎦⎢⎢⎣01020020011100⎥⎦⎤⎢⎣⎡=⎥⎥⎥⎥⎦⎢⎢⎢⎢⎣=⎥⎥⎥⎥⎦⎢⎢⎢⎢⎣=001000C 001021B 0001130002-10A 2,,)(¾实验报告要求①在同一段程序分别求2题,写出程序。
,。
②写出MATLAB仿真运行后的结果。
结论。
③。
在MATLAB中,符号积分由函数int( )来实现,其调用格符号积分由函数int(MATLAB impulse()MATLAB 下的impulse( ) 函数与数调用结构完全一致任意输入下系统的响应,命令调用格式如下:lsim(G,u,t)[y,t]= lsim(G,u,t)i()lsim(G,u,t,x0)[y,t,x]= lsim(G,u,t,x0)i(G0)[k,poles]=rlocfind(num,den) [k,poles]rlocfind(A,B,C,D) [k,poles]=rlocfind(A,B,C,D) [k,poles]=rlocfind(G)三基于三.基于MATLAB的线性系统的频域分析 Nyquist曲线绘制[Gm,Pm,Wg,Wp]=margin(sys)[Gm,Pm,Wg,Wp]margin(mag,phase,w) [Gm,Pm,Wg,Wp]=margin(mag,phase,w)margin(mag,phase,w)margin(sys)计算对数幅值稳定裕度GmdB=20*log10(Gm)。
重庆大学操作系统实验3报告材料书
《操作系统》实验报告
int i;
for(i=0;i<N;i++)
pthread_mutex_init(&chopsticks[i],NULL);
for(i=0;i<N;i++)
pthread_create(&philosopherID[i],NULL,eat_think,NULL);
while(1)
{
sleep(N);
}
return 0;
}
四、实验结果及分析和(或)源程序调试过程
结果截图:
FCFS:
SJF:
RR:
sy3b:
(部分截图)
遇到的问题:
1.进程调度实验通过定义一个虚拟PCB保存线程的各种信息,具体信息以随机数的方式存储,对FCFS与SJF调度,主线程用冒泡排序以线程的虚拟PCB中的arrivalTime 与burstTime为对象排序了虚拟PCB并以此决定先运行哪个线程,为避免线程之间运行次序出现错乱采用usleep()函数将他们的顺序固定
2.线程同步实验的问题主要出在互斥锁若已lock再次lock会出现错误,查阅资料后有pthread_mutex_trylock()函数可以尝试lock,若已lock则返回一非零值,借此判断信号量是否已被占用,若未被占用则可以使用,若已被占用为防止死锁则不再占用之前申请的资源,对先前lock的信号量进行unlock。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《汇编语言程序设计》实验报告
年级、专业、班级姓名
实验题目实验3:汇编程序的循环结构的使用
实验时间2013年4月15 实验地点DS1421
实验成绩实验性质□验证性 设计性□综合性教师评价:
□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范;
其他:
评价教师签名:
一、实验目的
通过一个排序算法,来熟悉和掌握利用汇编语言实现循环处理能力的程序。
二、实验项目内容
1 编写一个整数数组内的元素排序的程序
2 需要排序数组大小为10个DW的整数
3 按照从低到高输出这10个数字
4 要求撰写必要程序模块设计图和主要的流程
三、实验过程或算法(源程序)
assume cs:code,ds:data
data segment
dw 1234h,2a45h,345bh,45c7h,5678h,4321h,5432h,6543h,7654h,0d765h table db '0123456789abcde'
data ends
stack segment
db 32 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov di,0
mov ax,stack
mov ss,ax
mov sp,32
mov cx,9
s0: mov ax,ds:[si]
push cx
s1: add si,2
cmp ax,ds:[si]
jb change
s2: loop s1
xchg ax,ds:[si]
xchg ax,ds:[di]
mov si,0
mov di,0
pop cx
loop s0
mov ax,data
mov ds,ax
mov si,0
call show
mov ax,4c00h
int 21h
change: mov ax,ds:[si]
mov di,si
jmp s2
show: push es
push di
push ax
push bx
push cx
push dx
mov ax,0b800h
mov es,ax
mov di,160*12+2*10
mov cx,10
show1: push cx
show2: mov al,ds:[si]
mov dl,al
and al,00001111b
mov bl,al
mov bh,0
mov al,table[bx]
mov ah,2
push ax
shr dl,1
shr dl,1
shr dl,1
shr dl,1
mov bl,dl
mov bh,0
mov dl,table[bx]
mov dh,2
push dx
inc si
loop show2
mov cx,4
show3: pop word ptr es:[di]
add di,2
loop show3
mov al,'h'
mov ah,2
mov es:[di],ax
add di,2
mov al,' '
mov es:[di],ax
add di,2
pop cx
loop show1
pop dx
pop cx
pop bx
pop ax
pop di
pop es
ret
code ends
end start
Data segment存放要进行排序的数据和下面程序中要用到的数据。
stack segment主要用于嵌套循环是保存cx的值和下面输出数据时的类型转换。
开始,使ds:si指向第一个数据,ss:sp指向栈底,di用于下面程序中保存最大值的位置。
采用冒泡排序算法,流程图为:
其中的change代码段在后面
Ax,ds,si为送入函数show的参数,其中ds:si指向要显示的数据(16进
制).show函数的功能为把十六进制的数据显示到屏幕上。
上面排序要用到的代码。
Show函数首先保存要中到的寄存器。
然后使es:di设置光标,指示数据在屏幕上的第一个位置。
因为数值0-15与字符‘0’-’f’之间没有一致的映射关系存在,所以我用table 表在他们之间建立一致的映射关系:以数值为table表的偏移,可以找到对应的字符。
10个数据,可以用10次循环依次输出。
每个数据2个字节,所以每次处理2位一个字节。
由于数据在内存中一个字节表示两位对应屏幕上的数,所以用and al,00001111,与shr bl,cl(cl=4)分离数据。
又由于输出位置的先后关系,所以用栈转换顺序,最后在数据后面加上‘h’表示十六进制。
程序结束。
四、实验结果及分析和(或)源程序调试过程
运行上面的程序:
可以看出数据是从小到大依次排列的。
通过本实验,我熟悉和掌握利用汇编语言实现循环处理能力的程序,loop指令的格式是:loop 标号,CPU执行loop指令的时候,要进行两步操作,(1)(cx)=(cz)-1 (2)判断cx的中的值,不为0则转到标号处执行程序,如果为0则向下执行。
所以我们用cx存放循环次数。
对于嵌套循环,我们可以用栈来保存外循环的cx,当内循环结束时,再出栈,恢复cx的值。
报告创建时间:2013-5-1。