第二次实验报告

国际商学院实验报告书
执行的结果就是将条件表达式的值赋值给max,也就是将a,b,c中大者赋值
输入一个数字,若大于1000,则另输入一个数,直到小于1000为止,再用printf 函数输出结果,要细心的正确输入,如上题%7.0f错输入为%7.of,漏掉了前面的引号,因此得不到结果,不能执行。

认真正确的编写运用程序。

If语句的一般表达式:if(表达式)语句1
[else语句2]
正确记住一些符号的含义,所指的意义,这样可以避免一些错误。

如上题中
用printf函数输出结果。

If语句的另一种表达方式:if(表达式2)语句1
else if(表达式2)语句2
确定一个条件直接用printf函数输出结果,得到答案,很清新易懂。

程序所称述的是if x大于等于0的前提下 if x大于0得到y 为为-1;而题目所称述的是if x大于等于0的前提下 if x大于0得到否则y为0;因此如下改正。

合集下载

c语言第二次实验报告

c语言第二次实验报告

c语言第二次实验报告摘要:本次实验主要是关于C语言的指针和数组的实验。

通过这次实验,我对C语言的指针和数组有了更深入的理解和应用能力。

一、实验要求:1.编写一个程序,实现对10个整数的输入、输出、求和、求平均数等操作。

2.编写一个程序,实现对10个学生的成绩进行排序并输出。

二、实验过程及结果:1.程序一:对10个整数进行输入、输出、求和、求平均数等操作。

步骤:(1)定义整型数组a[10],用for循环对其进行输入。

(2)定义sum变量并用for循环对数组元素进行求和运算。

(3)定义double类型的avg变量,计算数组元素的平均数。

(4)输出数组元素和平均数。

结果:输入10个整数:1 2 3 4 5 6 7 8 9 1010个数字的和为:5510个数字的平均数为:5.502.程序二:对10名学生的成绩进行排序并输出。

步骤:(1)定义数组grade[10],用for循环进行输入。

(2)用冒泡排序法进行排序。

(3)用for循环进行打印输出操作。

结果:输入10名学生的成绩:99 60 88 72 65 92 78 84 70 95排序后的成绩为:60 65 70 72 78 84 88 92 95 99三、实验总结:通过本次实验,我深刻认识到指针和数组对于C语言程序设计的重要性。

指针和数组是C语言中非常重要的概念,其掌握程度直接影响着程序的设计和效率。

在实验过程中,我充分体会到了C语言指针和数组的使用方法,并加深了其中的应用技巧。

在以后的编程过程中,我会更加熟练的使用指针和数组,努力提高自己的编程能力,为今后的学习和工作打下坚实的基础。

数值分析第二次大作业——编写ln函数实验报告

数值分析第二次大作业——编写ln函数实验报告

为一个整体,将 ln(a)进行 Taylor 级数分解,进而按式计算可以求得 ln(x)的值。由于我们选 取级数的前 n 项和近似 ln(a),则有:
Rn (a
1)

(1)n
(a 1)n1 n 1
…;
|
Rn
(a
1)
||
(a 1)n1 n 1
|
。
2
自 92 乔晖 2009011414
精度为 20 位,即 h4 1020 。
int * GetNumber() {return number;}
//获得大数中的整数数组
bool GetSgn() const {return sgn;}
//获得大数的符号
bool IsZero();
//判断大数是否为 0
CBigNumber Reverse() {sgn = !sgn;return *this;} //取相反数
数值分析——编写 ln 函数
实验报告
自 92 乔晖 2009011414
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
目录
一、 实验任务 ................................................... 2
二、 编译环境 ................................................... 2
1u
x 1
35
5
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
其前 n 项和,近似可得 ln(x)的值。
基于以上原理,可以设计迭代算法,累加 2u2i1 得到前 n 项和。每次计算后,判断计 2i 1

Ev2实验报告

Ev2实验报告

含水率对 Ev2 值的影响试验研究①目的:通过测量不同含水率的Ev2 值,分析沙土在不同含水率时对Ev2 值的影响。

②原理:变形模量 Ev2 试验是通过圆形承载板和加载装置对地面进行第一次加载和卸载后,再进行第二次加载,用测得的承载板下应力σ和与之相对应的承载板中心沉降量 S ,来计算变形模量 Ev2、 Ev1 及Ev2/Ev1 值的试验方法。

变形模量 Ev2 是反映荷载作用下土体反抗变形能力的刚度参数。

变形模量 Ev2 测试仪器应包括承载板、范蠡装置、加载装置、荷载量测装置及沉降量测装置。

JBM-2 型变形模量 Ev2 测试仪测试仪箱承载板为圆形钢板,承载板直径为300mm±0.2mm,厚度为 25mm ±0.2mm ,材质为 Q345 钢。

承载板上应带有水准泡。

承载板加工表面粗糙度应不大于 6.3um。

反力装置的承载能力应大于最大试验荷载 10kN 以上。

加载装置的液压千斤顶应通过高压油软管与手动液压泵连接。

千斤顶顶端应设置球铰,并配有可调节丝杆和加长杆件,以便与各种不同高度的反力装置相适应。

高压油软管长度应不小于 2m ,两端应装有自动开闭阀门的快速接头,以防止液压油漏出。

手动液压泵上应装有可调节减压阀,可准确地对荷载板进行分级加、卸载。

为使力准确传递,千斤顶两边应固定,并确保不倾斜。

千斤顶活塞的行程应不小于 150mm。

在试验过程中,应保证千斤顶高度不超过 600mm。

荷载量测表量程应达到最大试验荷载的1.25 倍,最大误差不大于 1 %。

荷载量测表显示值应能保证承载板荷载有效位至少达到 0.001MPa。

① 沉降量测装置应由测桥和测表组成。

②测桥的测量臂可采用杠杆式(见图 2-1 )或者垂直抽拉式(见图 2-2 )。

测量臂应有足够的刚度。

图 2-1 杠杆式测量臂1—触点 2—承载板 3—千斤顶 4—加长杆件 5—反力装置6—沉降量测表 7—支撑架 8—杠杆支点 9—测量臂 10—支撑座图 2-2 垂直抽拉式测量臂1—触点 2—承载板 3—千斤顶 4—加长杆件 5—反力装置6—沉降量测表 7—支撑架 8--垂直支架 9—支撑座③ 承载板中心至测桥支撑座的距离应大于 1.25m。

两次仪器高法水准测量实验报告

两次仪器高法水准测量实验报告

两次仪器高法水准测量实验报告对于仪器高法水准测量实验,我进行了两次实验,并撰写了以下报告。

一、实验目的本次实验的目的是掌握水准仪的使用方法,了解仪器高法水准测量的原理,并通过实验计算出不同目标点之间的高差。

二、实验原理1. 仪器高法水准测量原理仪器高法水准测量是利用水准仪来确定不同目标点之间的高度差,根据高度的测量需要,可将测站分为平距越小的几组,每组称为测段。

测量从起始测站开始,沿着测段逐步确定各目标点的高程。

2. 水准仪的使用方法在进行仪器高法水准测量前,需要先通过水准仪来确定起始测站的基准高度,然后再进行不同目标点之间的高度测量。

使用水准仪时,需要进行水平、垂直调节,以保证数据的准确性。

三、实验仪器1. 水准仪2. 四抬杆3. 测量带4. 针式水平仪四、实验步骤1. 调整水准仪的水平和垂直,使其处于工作状态。

2. 根据实际需要,确定不同目标点的位置和编号。

3. 把四抬杆固定在目标点上,并使用水准仪对杆进行观测,记录读数。

4. 计算不同目标点之间的高差。

五、实验结果第一次实验:起始测站高度:100.50米目标点1高度:99.42米目标点2高度:98.75米目标点3高度:98.21米目标点4高度:97.96米计算结果:目标点1高程:100.50-0.08=100.42米目标点2高程:100.50-1.75=98.75米目标点3高程:100.50-2.29=98.21米目标点4高程:100.50-2.54=97.96米第二次实验:起始测站高度:99.75米目标点1高度:98.83米目标点2高度:98.02米目标点3高度:97.60米目标点4高度:97.32米计算结果:目标点1高程:99.75-0.92=98.83米目标点2高程:99.75-1.73=98.02米目标点3高程:99.75-2.15=97.60米目标点4高程:99.75-2.43=97.32米六、实验结论通过本次仪器高法水准测量实验的两次实验结果可看出,不同目标点的高度差是根据起始测站的高度与目标点的高度之差来计算的。

JAVA实验报告Y.Daniel Liang第二次实验

JAVA实验报告Y.Daniel Liang第二次实验

2014-2015学年第一学期实验报告课程名称:Java SE 平台技术实验名称:JA VA编程(基础练习)姓名:学号:成绩:指导教师:日期:目录一、实验目的 (3)二、实验内容 (3)2.1 构建一个继承类。

(3)2.2 抽象类和接口的使用 (3)2.3 图像类编程和事件驱动程序。

(3)三、实验环境 (3)四、实验结果 (3)4.1构建继承类 (3)4.2抽象类和接口的使用 (3)4.3 事件驱动程序 (3)五、附录 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.3 算法 (4)5.3.1 三角形继承类 (4)5.3.2 抽象类与接口 (5)5.3.3 画出小车 (5)5.4. 设计图 (6)5.4.1 三角形类UML设计图 (6)5.4.2.1 Colorable接口UML设计图 (7)5.4.2.2 CompareTo与Clone接口UML设计图 (8)5.4.3 小车UML设计图 (9)5.5 仿真结果 (9)5.5.1构建继承类 (9)5.5.2抽象类和接口的使用 (9)5.5.3 事件驱动程序 (10)5.6 调试心得 (10)5.6.1 错误分析 (10)5.6.2 心得与收获 (10)一、实验目的通过使用JA V A语言进行基本程序的开发,掌握JA V A通用IDE,练习类的封装使用、JA V A基本类库的使用、利用UML进行简单建模。

二、实验内容2.1 构建一个继承类。

2.2 抽象类和接口的使用2.3 图像类编程和事件驱动程序。

三、实验环境Eclipse、Win 8.1四、实验结果4.1构建继承类输出了三角形的三边长,面积,周长。

4.2抽象类和接口的使用4.2.1执行Colorable接口,输出了一条how to color的信息4.2.2执行Comparable 和Cloneable接口,输出了创建的五边形和克隆五边形的周长和面机的信息。

第二次实验报告心得

第二次实验报告心得

第二次实验报告心得前言本次实验是第二次实验,我们小组研究的主题是XXX。

通过这次实验,我们掌握了XXX的基本原理和实验操作方法。

在实验过程中,我们遇到了挑战和问题,但也取得了进步和收获。

实验过程与成果我们小组在实验前制定了详细的实验计划并分工合作。

首先,我们对XXX进行了深入的了解和学习,并通过查阅大量的文献和资料来提高对该主题的理解和认识。

在熟悉了实验内容和操作流程后,我们进行了实验的准备工作,包括搭建实验装置、调试仪器设备等。

在实验过程中,我们认真操作,严格遵守实验操作规范,确保了实验的安全性和准确性。

我们按照实验计划逐步进行实验并记录下实验数据和现象。

同时,我们也积极讨论和交流,共同解决实验中遇到的问题和困难。

通过实验,我们获得了大量的实验数据和结果。

我们对实验数据进行了仔细的整理和分析,并进行了合理的处理和计算。

最终,我们得到了一系列有关XXX的重要结论和发现。

实验收获与成长本次实验让我们获得了许多宝贵的经验和知识,也让我们在实践中得到了成长。

首先,通过实验过程,我们掌握了XXX的基本原理和实验方法。

我们深入研究了相关的理论知识,并将其运用到实际操作中。

我们通过实验实践,进一步加深了对XXX的理解,加强了对实验方法的掌握。

其次,通过团队合作,我们学会了有效地协作和沟通。

在实验过程中,我们互相帮助、共同解决问题,并且共同分工合作,提高了实验效率和质量。

我们在团队中形成良好的合作氛围,培养了团队意识和合作能力。

最后,通过实验报告的撰写,我们学会了对实验数据进行整理和分析,并将实验结果清晰准确地表达出来。

这锻炼了我们的科学思维和表达能力,提高了我们的写作水平。

反思与改进在实验中,我们也面临了一些挑战和问题。

通过实验的反思和总结,我们认识到了不足之处,并提出了一些改进的建议。

首先,我们在实验前准备方面需要更加细致和仔细。

在本次实验中,我们发现有些仪器设备的调试工作并没有充分准备,导致实验过程中出现了一些意外情况。

东南大学检测技术第2次实验报告

评定成绩: 审阅教师:东南大学自动化学院实验报告第 2次实验姓 名:课程名称:检测技术实验名称: 实验九、实验十二、实验十三 院(系):自动化专 业: 自动化实验室: 常州楼5楼 实验组别:同组人员:实验时间:2016年12月02日学 号:《检测技术》实验报告学号实验九电容式传感器的位移实验实验目的•…基本原理•…实验器材•…四、实验步骤•…五、实验数据处理•-八、实验十二电涡流传感器位移实验实验目的•…基本原理•…实验器材•…四、实验步骤•…五、实验数据处理•-八、实验十三四、五、八、七、被测体材质、面积对电涡流传感器的特性影响实验实验目的•…基本原理•…实验器材•…实验步骤一•-实验步骤二•-实验数据处理--实验小结•-• (3)• (5)• (9) (10)--• 10--• 10--• 10--• 10--•11...•15《检测技术》实验报告 学号实验九电容式传感器的位移实验图3-6电容式位移传感器结构三、实验器材主机箱、电容传感器、电容传感器实验模板、测微头。

电压放大《 低通电ft*图3-7电容传感器位移实验原理图四、实验步骤一、实验目的了解电容式传感器结构及其特点。

二、基本原理利用电容C = £ A /d 的关系式,通过相应的结构和测量电路, 可以选择 £、A d 三个参数中保持二个参数不变,而只改变其中一个参数,就可以组成测介质的性质( £变)、测位移(d 变)和测距离、液位(A 变)等多种电容传感器。

本实验采用的传感器为圆筒式变面积差动结构的电容式位移传感器,如图 3-6所示:由二个圆筒和一个圆柱组成。

设圆筒的半径为 R ;圆柱的半径为r ;圆柱的长为x ,则电容量为C= £ 2 n x/ In(R /r)。

图中C1、C2是差动连接,当图中的圆柱产生 ?X 位移时,电容量的变化量为 ?C=C J C2=£ 2 n 2?X /In(R /r),式中 n 、In (R /r )为常数,说明?C 与位移?X 成正比, 配上配套测量电路就能测量位移。

计算机图形学第二次实验报告

一、绘制FERGUSON 曲线1,改变各点处的一阶导 数数值,绘制 FERGUSON 曲线进行对比分析A=[100,300;120,200;220,200;270,100;370,100;420, 200;420,300;220,280;100,300];B=[10,-10;30,-30;30,-30;30,-10;20,20;20,20;-20, 20;-20,10;20,-20];Q=[2,-2,1,1;-3,3,-2,-1;0,0,1,0;1,0,0,0]; plot(A(:,1),A(:,2)); [m, n]=size(A); hold on for i=1:m-1for t=0:0.001:1 T=[tA3F2,t,1];Px=[A(i,1),A(i+1,1),B(i,1),B(i+1,1)]; Py=[A (i, 2),A(i+1,2),B (i, 2),B(i+1,2)]; x=T*Q*Px :y=T*Q*Py' plot(x,y, 'r');end end2,FERGUSON 曲线丰满度实验姓名学号所使用的语言 完成日期MATLAB 2016/5/9截图部分B=[10,-10;30,-30;30,-30;30,-10;20,20;2 0,20;-20,20;-20,10;20,-20];B=[210,-210;230,-230;230,-230;230,-210;220,240;250,250;-210,230;-220,210;220,-200];A=[100,300;120,200;220,200;270,100;370,100;420, 200;420,300;220,280;100,300]; B=[10,-10;30,-30;30,-30;30,-10;20,20;20,20;-20,20;-20,10;20,-20];C=[20,-20;60,-60;60,-60;60,-20;40,40;40,40;-40,40;-40,40;40,-40];D=[40,-40;120,-120;120,-120;120,-40;80,80;80,80 ;-80,80;-80,80;80,-80];Q=[2,-2,1,1;-3,3,-2,-1;0,0,1,0;1,0,0,0];plot(A(:,1),A(:,2));[m, n]=size(A);hold onfor i=1:m-1for t=0:0.001:1T=[tA3F2,t,1];Px=[A(i,1),A(i+1,1),B(i,1),B(i+1,1)];Py=[A (i, 2),A(i+1,2),B (i, 2),B(i+1,2)];x=T*Q*Px :y=T*Q*Py :Px 1= [A(i,1),A(i+1,1),C(i,1),C(i+1,1)];Py 1=[A (i, 2),A(i+1,2),C(i,2),C(i+1,2)];x1= T*Q*Px1';y1=T*Q*Py1';Px2=[A(i,1),A(i+1,1),D(i,1),D(i+1,1)];Py2=[A (i, 2),A(i+1,2),D(i,2),D(i+1,2)];x2=T*Q*Px2';y2=T*Q*Py2';plot(x,y, 'r');plot(x1,y1, 'r');plot(x2,y2, 'r');endend2、绘制任意二次三点Bezier曲线x=[100 150 200 ];y=[100 50 100 ];plot(x,y, 'k' , ‘n eWidth' ,1); k=le ngth(x);for i=1:k-2for t=0:0.005:1Bx=(t A2-2*t+1)*x(1)+(-2*t A2+2*t)*x (2)+ (t A2)*x(3);By=(t A2-2*t+1)*y(1)+(-2*t A2+2*t)* y(2)+(t A2)* y(3);hold onplot(Bx,By, 'r' , 'Li neWidth' ,2);endend3、绘制三次七点Bezier曲线clear all hold onB1=[100,300;120,200;220,200;270,100];B2=[270,100;370,100;420,200;420,300]plot(B1(:,1),B1(:,2), '-b');plot(B2(:,1),B2(:,2), '-b');for t=0:0.001:1P=[t*t*t t*t t 1];Q=[-1,3,-3,1;3,-6,3,0;-3,3,0,0;1,0,0,0];P仁P*Q*B1;plot(P1(:,1),P1(:,2), '.b' , 'markersize' ,10);P仁P*Q*B2;plot(P1(:,1),P1(:,2), '.b' , 'markersize' ,10); end三、绘制B样条曲线1、绘制均匀二次三点B样条曲线x=[100 150 200 250 300 350 400 450 500];y=[100 50 100 50 150 50 100 50 100];plot(x,y, 'k' , ‘n eWidth' ,1);k=le ngth(x);B=1/2;for i=1:k-2for t=0:0.005:1Bx=B*(tA2-2*t+1)*x(i)+B*(-2*L2+2*t+1)*x(i+1)+B*(t A2)*x(i+2);By=B*(t A2-2*t+1)*y(i)+B*(-2*t A2+2*t+1)*y(i+1)+B*(t A2)*y(i+2);hold onplot(Bx,By, 'r' , 'Li neWidth' ,2);endend2、绘制三次B样条曲线x=[100 120 220 270 370 420 420 ];y=[300 200 200 100 100 200 300 ];plot(x,y, 'k' , 'Li neWidth' ,1);k=le ngth(x);B=1/6;for i=1:k-3for t=0:0.005:1Bx=B*(-t A 3+3*t A2-3*t+1)*x(i)+B*(3*t A3-6*t A2-0*t +4)*x(i+1)+ B*(-3*t A3+3*t A2+3*t+1)*x(i+2)+B*(1*t A3-0*t A2-0* t+0)*x(i+3); By=B*(-t A 3+3*t A2-3*t+1)*y(i)+B*(3*t A3-6*t A2-0*t +4)*y(i+1)+B*(-3*t A3+3*t A2+3*t+1)*y(i+2)+B*(1*t A3-0*t A2-0* t+0)*y(i+3);plot(Bx,By,'r' , 'LineWidth' ,2);endend3、在同一控制顶点下(四个控制定点)绘制三次Bezier曲线和三次B样条曲线hold onx=[220 270 300 320 340 360 370 420 ];y=[200 100 150 150 150 150 100 200 ]; plot(x,y, '-b' , 'Li neWidth' ,2);plot(x,y, '*r' , 'Lin eWidth' ,3);k=length(x); B=1/6;for i=1:k-3for t=0:0.001:1Bx=B*(-t A 3+3*t A2-3*t+1)*x(i)+B*(3*t A3-6*t A2-0*t+4)*x(i+1)+ ...B*(-3*t A3+3*t A2+3*t+1)*x(i+2)+B*(1*t A3-0*t A2-0* t+0)*x(i+3);By=B*(-t A3+3*t A2-3*t+1)*y(i)+B*(3*t A3-6*t A2-0*t +4)*y(i+1)+ ...B*(-3*t A3+3*t A2+3*t+1)*y(i+2)+B*(1*t A3-0*t A2-0* t+0)*y(i+3);plot(Bx,By, 'r' , 'Li neWidth' ,2);endend四、有理曲线绘制绘制有理二次Bezier曲线x=[100 150 200 250 300 350 400 450 500];y=[100 50 100 50 150 50 100 50 100];plot(x,y, 'k' , 'Li neWidth' ,1);k=le ngth(x);B=1/2;for t=0:0.005:1Bx=(B*(tA2-2*t+1)*x(i)+B*(-2*L2+2*t+1)*x(i+1)+B*(tA2)*x(i+2))/(B*(tA2-2*t+1)+B*(-2*L2+2*t+1)+…B*(t A2));By=(B*(t A2-2*t+1)*y(i)+B*(-2*t A2+2*t+1)*y(i+1)+B*(t A2)*y(i+2))/(B*(t A2-2*t+1)+B*(-2*t A2+2*t+1)+…B*(t A2));hold onplot(Bx,By, 'r' , 'Li neWidth' ,2);endend均匀有理B样条曲线绘制有理三次B样条曲线hold on各种参数图形x=[220 270 300 320 340 370 420 ];y=[200 100 140 150 130 100 200 ]; plot(x,y, '-b' , 'Lin eWidth' ,2);k=length(x); B=1/6;for i=1:k-3for t=0:0.001:1Bx=(B*(-t A3+3*t A2-3*t+1)*x(i)+B*(3*t A3-6*t A2-0* t+4)*x(i+1)+ ...B*(-3*t A3+3*t A2+3*t+1)*x(i+2)+B*(1*t A3-0*t A2-0* t+0)*x(i+3))/(B*(-t A3+3*t A2-3*t+1)+B*(3*t A3-6*t A2-0*t+4)+ ...B*(-3*t A3+3*t A2+3*t+1)+B*(1*t A3-0*t A2-0*t+0));By=(B*(-t A3+3*t A2-3*t+1)*y(i)+B*(3*t A3-6*t A2-0* t+4)*y(i+1)+ ...B*(-3*t A3+3*t A2+3*t+1)*y(i+2)+B*(1*t A3-0*t A2-0*。

MCU第二次实验报告

实验名称:I/O接口实验与LED显示实验目录一.实验目的和要求 (3)二.实验原理 (3)三.实验方案与实验步骤 (5)四.实验设备与器材 (7)五.实验记录 (7)六.实验总结 (7)七.源代码 (7)一.实验目的与要求(一)实验目的1、I/O接口实验了解单片机各个口的输出,以及延时程序的计算;2、L ED显示实验,了解数码管显示机理,学会片外编码。

(二)实验要求1、I/O接口实验利用实验板I/O口(例如P0口)控制8个LED循环显示,循环点亮时间间隔约为1秒(采用软件延时实现)。

2、LED显示实验要求在8个LED数码管显示8个指定的数(例如学号后8位)。

本实验不需要接线。

二.实验原理1、I/O接口实验图2-1 上排LED指示灯(与FPGA相连)原理图图2-2 下排LED指示灯(通过CPLD译码与CPU相连)原理图主板左下方有16个LED指示灯,其中上面8个LED指示灯FLED0~FLED7输入直接与FPGA 插座引脚相连,可由FPGA模块输出引脚直接驱动,电路如图2-1所示,输入高电平时相应指示灯被点亮(这里实验箱开机复位后默认是点亮的)。

下面一排的8个LED指示灯LED0~LED7输入与CPU总线相连,作为系统扩展接口,其地址选通(0F600H)由CPLD地址译码控制,电路如图2-2所示,输入低电平时相应指示灯被点亮。

本实验采用的是上面一排与FPGA 相连的LED,需要8根导线将I/O口与相应的LED连接。

2、LED显示实验如图所示:实验装置上设有8只共阳极七段数码管及驱动电路,8只数码管共数据线,通过片选可以分别显示。

段码表为:表2-1 数码管段码表编程提示:数码管模块具有两个地址:片选地址(位控地址)0F400H和数据(段码)地址0F300H,要在某个数码管上显示1个数,需要先向片选地址上送一个数选中其中一个数码管,再向数据地址送要显示的数据的段码值,这就是位控和段控。

数码管的I/O地址都为片外地址。

西北工业大学_计算机系统基础_实验报告_第2次

计算机系统基础实验课第二次实验报告对二进制炸弹求解过程的详细描述首先使用objdump命令对bomb程序进行反汇编,并将汇编代码输出到asm.txt中。

阶段一、字符串比较打开asm.txt文件,搜索到phase_1函数,可以看到以下代码。

08048b33 <phase_1>:8048b33: 83 ec 14 sub $0x14,%esp8048b36: 68 7c a0 04 08 push $0x804a07c8048b3b: ff 74 24 1c pushl 0x1c(%esp)8048b3f: e8 3e 05 00 00 call 8049082 <strings_not_equal>8048b44: 83 c4 10 add $0x10,%esp8048b47: 85 c0 test %eax,%eax8048b49: 74 05 je 8048b50 <phase_1+0x1d>8048b4b: e8 29 06 00 00 call 8049179 <explode_bomb>8048b50: 83 c4 0c add $0xc,%esp8048b53: c3 ret可以看出,用户输入字串指针保存在0x1c(%esp),然后调用<strings_not_equal>,待<strings_not_equal>返回后,测试返回值,若equal则进入下一phase,否则<explode_bomb>,从<strings_not_equal>可知该函数用于比较两函数的值,因此需要两个字串作为输入,上面代码中, pushl 0x1c(%esp)用于传递用户字串指针,则push $0x804a07c自然是传递比较字串的指针了。

打开gdb,x/s 0x80497c0, 可以直接查看到该指针指向的子符串:所以第一个炸弹的拆弹指令为:I turned the moon into something I call a Death Star.阶段二、循环在asm.txt文件中可以找到phase_2函数代码如下:08048b54 <phase_2>:8048b54: 56 push %esi8048b55: 53 push %ebx8048b56: 83 ec 2c sub $0x2c,%esp8048b59: 65 a1 14 00 00 00 mov %gs:0x14,%eax8048b5f: 89 44 24 24 mov %eax,0x24(%esp)8048b63: 31 c0 xor %eax,%eax8048b65: 8d 44 24 0c lea 0xc(%esp),%eax8048b69: 50 push %eax8048b6a: ff 74 24 3c pushl 0x3c(%esp)8048b6e: e8 2b 06 00 00 call 804919e <read_six_numbers>8048b73: 83 c4 10 add $0x10,%esp8048b76: 83 7c 24 04 01 cmpl $0x1,0x4(%esp)8048b7b: 74 05 je 8048b82 <phase_2+0x2e>8048b7d: e8 f7 05 00 00 call 8049179 <explode_bomb>8048b82: 8d 5c 24 04 lea 0x4(%esp),%ebx8048b86: 8d 74 24 18 lea 0x18(%esp),%esi8048b8a: 8b 03 mov (%ebx),%eax8048b8c: 01 c0 add %eax,%eax8048b8e: 39 43 04 cmp %eax,0x4(%ebx)8048b91: 74 05 je 8048b98 <phase_2+0x44>8048b93: e8 e1 05 00 00 call 8049179 <explode_bomb>8048b98: 83 c3 04 add $0x4,%ebx8048b9b: 39 f3 cmp %esi,%ebx8048b9d: 75 eb jne 8048b8a <phase_2+0x36>8048b9f: 8b 44 24 1c mov 0x1c(%esp),%eax8048ba3: 65 33 05 14 00 00 00 xor %gs:0x14,%eax8048baa: 74 05 je 8048bb1 <phase_2+0x5d>8048bac: e8 df fb ff ff call 8048790 <__stack_chk_fail@plt>8048bb1: 83 c4 24 add $0x24,%esp8048bb4: 5b pop %ebx8048bb5: 5e pop %esi8048bb6: c3 ret根据call 804919e <read_six_numbers>可以推测题目要求是输入六个数字。

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