东北大学上机实验3

时间:2019-05-12 01:30:37下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《东北大学上机实验3》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《东北大学上机实验3》。

第一篇:东北大学上机实验3

实验三顺序结构程序设计实验

一、实验目的

1.掌握顺序结构程序的基本设计方法; 2.掌握数据传送指令和算术运算指令的用法; 3.掌握逻辑操作指令和移位操作指令的用法; 4.掌握状态标志位操作指令的用法; 5.掌握简单的I/O功能调用。

二、实验要求

1.熟练掌握DEBUG中的各命令的使用方法;

2.学会利用系统功能调用,来实现键盘输入字符、显示字符的方法;

3.学会十进制数字与其对应的ASCII码相互转换的方法; 4.学会十六进制数字与其对应的ASCII码相互转换的方法; 5.学会利用查表的方法实现代码的转换。

三、实验内容

1.编写十六进制数的乘法程序。要求从键盘上输入两个一位十六进制数据,乘积存入SUM单元。

2.编写程序,求表达式5X+Y的值,要求:X、Y值从键盘输入,X、Y均为一位十六进制数据,将计算结果存入SUM单元。

四、解题思路

利用INT 21H的1号功能可以从键盘上输入数据, 通过通用寄存器保存中间结果,完成各项计算功能。将结果的ASCII码保存在内存单元和DL寄存器中,然后利用INT 21H的2号功能将其输出到屏幕上。输出到屏幕上一次只能显示4位二进制数,所以一个字节需要分两次才能显示出来。

五、编程实现 5.1 内容1 DSEG

SEGMENT HTAB

DB

'0123456789ABCDEF' SUM

DW

0,0 DSEG

ENDS CSEG

SEGMENT

ASSUME CS:CSEG,DS:DSEG

START: MOV

MOV

MOV AX,DSEG

;初始化DS寄存器 DS,AX AH,01H

;从键盘上输入一个数X(默认放入AL)

INT

SUB

MOV

MOV

MOV

INT

MOV

INT

SUB

MUL

MOV

MOV

MOV

MOV

MOV

INT

MOV

SHR

MOV

LEA

XLAT

MOV

MOV

INT

AND

MOV

XLAT

MOV

MOV

INT

MOV

INT CSEG

ENDS

END

21H AL,30H

BL,AL

DL,'*'

AH,02H

21H AH,01H

21H AL,30H

BL

SUM,AX

CH,AL

DH,AL DL,'='

AH,02H 21H CL,4 DH,CL

AL,DH

BX,HTAB

DL,AL

AH,02H 21H CH,0FH

AL,CH

DL,AL AH,02H 21H AH,4CH 21H START

;输入的数据ASIIC码翻译成十六进制;X放入到BL中

;规定要显示的符号必须在DL中;显示’*’

;从键盘输入第二个数Y(默认放入AL);输入的数据ASIIC码翻译成十六进制;AL*BL

保存数据到SUM中;利用CH和DH存放;规定要显示的符号必须在DL中 显示‘=’

;DH中保存了之前AL中的高四位;查表规定数据必须在AL中;利用查表方法显示;显示AL中的高四位

;CH中保存了之前AL中的低四位;查表规定数据必须在AL中;查表方法显示

;;

运行结果如下如图3-1

图3-1 5.2 内容2 DSEG HTAB SUM DSEG SEGMENT DB DW ENDS '0123456789ABCDEF' 0,0 CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG START: MOV

MOV

MOV

INT

SUB

MOV

MUL

MOV

MOV

MOV

INT

MOV

LEA

XLAT

MOV

MOV

INT

MOV

MOV

INT

MOV

INT

SUB

AX,DSEG DS,AX AH,01H 21H AL,30H BL,5 BL CX,AX DL,'*'

;BL中保存数据5;X*5默认保存到AX中;X*5保存在CX中

;屏幕上显示'*'前规定需要保存到DL中;显示’*’

;利用查表法输出5,之前必须放入到AL中;查表获取地址;查表转换

;屏幕显示数据5之前规定需要放到DL中;显示5

;屏幕显示’+’之前规定需要放到DL中;屏幕显示’+’;从键盘上输入数据Y

;从键盘上输入X,默认保存到AL中

AH,02H 21H AL,05H BX,HTAB

DL,AL AH,02H 21H DL,'+'

AH,02H 21H AH,01H 21H AL,30H

MOV

MOV

ADC

MOV

MOV

MOV

INT

MOV

MOV

MOV

SHR

MOV

LEA

XLAT

MOV

MOV

INT

AND

MOV

XLAT

MOV

MOV

INT

MOV

INT CSEG

ENDS BL,AL BH,00H CX,BX SUM,CX DL,'=' AH,02H 21H BH,CL CH,CL CL,4 BH,CL

;右移4位,即为原来结果的高4位;放到AL中,便于查表转换后显示出来;查表

;显示结果的高4位 AL,BH BX,HTAB DL,AL

;Y保存到BL寄存器中;实现5X+Y;保存结果

;屏幕显示‘=’之前规定需放入到DL寄存器中;显示’=’

;保存CL,因为下面指令SHR需用到CL寄存器;保存CL,因为下面指令SHR需用到CL寄存器

AH,02H 21H CH,0FH AL,CH

;原来结果低4位处理;查表转换;显示结果低4位 DL,AL AH,02H 21H AH,4CH 21H

END

START 运行结果如图3-2

图3-2

六、实验总结 6.1 心得体会

6.2 遇到的问题

实验过程中遇到的问题很多,我就挑典型的几个错误分享一下。1.实验内容1中,INT 21H会改变AL中的值,所以AL中的数据要在该语句之前保存;

2.实验内容2中,我刚刚开始输入Y时忘记写SUB AL,30H,后来运行结果屏幕显示的结果总是比实际结果大3,这个错误找了很久,给我印象深刻。

第二篇:计算方法上机实验

龙格-库塔

#include

#include

float function(float x,float y)

{

return(0-(y*y));//f(x,y)µÄ±í´ïʽ }

int main()

{

float x0,x1,y0,y1,k1,k2,k3,k4,a,b,c,n,h;int i;

scanf(“%f %f %f %f”,&a,&b,&c,&n);x0=a;

y0=c;

h=(b-a)/n;

for(i=1;i<=n;i++)

{

k1=h*function(x0,y0);

k2=h*function(x0+h/2,y0+k1/2);k3=h*function(x0+h/2,y0+k2/2);k4=h*function(x0+h,y0+k3);x1=x0+h;

y1=y0+(k1+2*k2+2*k3+k4)/6;

printf(“x%d=%f,y%d=%fn”,i,x1,i,y1);x0=x1;

y0=y1;

}

return 0;

}

拉格朗日

#include

#include

#include

#define maxlength 500

#define pi 3.14***

floata[maxlength],f[maxlength];

float n;

floatlagrange(floata[],floatf[],float x,int n)

{

int k=0,j;

floaty=0.0,l;

while(k<=n)

{

l=1.0;

// printf(“%lfn”,y);

for(j=0;j<=n;j++)

{

if(j!=k)

{

l=l*(x-a[j])/(a[k]-a[j]);// printf(“%lfn”,l);

}

}

//printf(“%lfn”,f[k]);

// printf(“%lfn”,l);

y=y+l*f[k];

k++;

}

printf(“x=%f,y=%fn”,x,y);

return y;

}

float fx1(floatx)

{

return(1/(1+x*x));

}

floatfx2(floatx)

{

return exp(x);

}

floatfx3(float x)

{

return sqrt(x);

}

void math1(float c,float n)

{

int i=0;

float h;

h=2*c/n;

while(i<=n)

{

a[i]=i*h-5;

i++;

}

}

void math2()

{

int i=0;

while(i<=n)

{

a[i]=cos((2*i+1)*pi/2/(n+1));

i++;

}

}

int main()

{

n=20;

int i;

math1(5,n);

for(i=0;i<=n;i++)

{

f[i]=fx1(a[i])

}

lagrange(a,f,0.75,n);

return 0;

}

龙贝格

#include

#include

#include

double t[1000],r[1000];

double f(double x)

{

return(x*x*exp(x));

}

int main()

{

double h,a,b,e;

int i,N,m;

scanf(“%lf,%lf,%d,%lf”,&a,&b,&N,&e);

h=b-a;

m=0;

t[1]=0.5*h*(f(a)+f(b));

printf(“%lf”,t[1]);

r[0]=t[0];

while(1)

{

printf(“n”);

for(i=0;i<((m<4)?m:4);i++)

t[i]=r[i];

m++;

h=h/2;

r[0]=t[0]/2;

for(i=1;i<=pow(2,m);i++)

r[0]+=h*f(a+(i-0.5)*h)/2;

printf(“%lf”,r[0]);

r[1]=(4*r[0]-t[0])/3;

printf(“ %lf”,r[1]);

if(m==1)

continue;

r[2]=(16*r[1]-t[1])/15;

printf(“ %lf”,r[2]);

if(m==2)

continue;

r[3]=(64*r[2]-t[2])/63;

printf(“ %lf”,r[3]);

if(m==3)

continue;

if((fabs(r[3]-t[3])<=e)||(m==N))

break;

}

printf(“nthe current time is :%dn”,m);

return 0;

}

牛顿

#include

#include

#include

double function(double point)

{

return(point*point-2*point*exp(-point)+exp(-2*point));

}

double d_function(double point)

{

return(2*point+2*point*exp(-point)-2*exp(-point)-2*exp(-2*point));}

int main()

{

double beginner,error1,error2;

int max_times=0;

beginner=error1=error2=0;

scanf(“%lf %lf %lf %d”,&beginner,&error1,&error2,&max_times);int current_times=0;

while(current_times<=max_times)

{

if(fabs(function(beginner))

{

printf(“%lfn”,beginner);

return 0;

}

if(fabs(d_function(beginner))

{

printf(“failuren”);

return 0;

}

beginner=beginner-function(beginner)/d_function(beginner);if(fabs(function(beginner)/d_function(beginner))

printf(“%lfn”,beginner);

return 0;

}

current_times++;

}

printf(“failuren”);

return 0;

}

第三篇:上机实验八

实验八 折半查找

一、实验目的1、熟悉visual C++上机环境,进一步掌握C语言的结构特点。

2、进一步掌握图的基本概念及其含义。

3、掌握查找的结构特征,以及各种存储结构的特点及使用范围。

4、掌握查找的基本运算及其实现。

二、实验内容(参照课本上的第220页)

设计一个算法,实现折半查找算法。

三、实验要求

参照课本220页算法9.2

四、实验报告要求(参照《数据结构题集》第83页实验报告模板)

实验报告必须有以下内容:实验目的、实验内容、实验要求、源程序、测试结果(打印界面的形式表示)。

第四篇:上机实验四

实验四 串的基本操作实现-堆存储结构的实现

一、实验目的1、熟悉visual C++上机环境,进一步掌握C语言的结构特点。

2、掌握串的基本操作:初始化串、判串为空、求串长等运算及C语言实现。

二、实验内容(参照课本上的第72-75页)

编写一个程序,实现求串长length_str、串连接、串比较、求子串、串插入、串删除操作。

三、实验报告要求(参照《数据结构题集》第83页实验报告模板)

实验报告必须有以下内容:实验目的、实验内容、实验要求、源程序、测试结果(打印界面的形式表示)。

第五篇:上机实验要求

上机实验要求

一、实验前的准备工作

在上机实验前应事先做好准备工作,以提高上机实验的效率:

1.了解所用的计算机系统(包括C编译系统)的性能和使用方法。

2.复习和掌握与本实验有关的教学内容。

3.准备好上机所需程序。要仔细弄清题意,选择和设计合适的算法。在选择算法时,应当是在理解现有算法的基础上,自己动手画出流程图再设计源程序。手编写程序应当书写整齐,并经人工检查无误后才能上机,以提高上机效率。切忌不编写程序或抄袭他人程序,注意培养严谨踏实的学习作风。

4.对运行中可能出现的问题应率先作出估计;对程序中自己有疑问的地方,应作上记号,以便在上机时给予重视。

5.准备好调试和运行时所需的数据。

二、上机实验基本步骤

上机实验时应该独立上机。上机过程中出现的问题,除了系统问题外,一般应自己独立处理,不要轻易举手问教师。尤其对“出错信息”,应善于自己分析判断。这是学习调试程序的良好机会,碰到困难时切忌轻易放弃。

上机实验一般应包括以下步骤:

1.调出C编译系统,进入C工作环境,如Turbo C2.0集成环境。

2.输入自己编好的程序,注意正确的键盘输入指法。

3.检查一遍已经输入的程序是否有错(包括输入错误和编程中的错误)。

4.进行编译。如果编译和连接过程中发现错误,屏幕上会出现“出错信息”,则根据提示找到出错位置和原因,加以改正,再进行编译„„如此反复,直到顺利通过编译和连接为止。

5.运行程序,并分析运行结果是否正确、合理。组织多组实验数据,分别从不同情况下检查程序的正确性。

6.输出程序清单和运行结果。特别要进行上机调试记录(尤其是出错情况和排错记录),调试数据和运行结果记录、心得体会等。

三、撰写实验报告

做完实验后要写实验报告,对整个实验进行总结和提高,这是整个实验过程的一个重要环节,不要把它看成是一种不必要的负担,更不能敷衍了事。针对本课程的实验特点,建议在书写实验报告时应包括如下内容。

1.实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念和基本技术,从而进一步提高分析问题和解决问题的能力。因此,当着手做一个实验的时候,必须明确实验目的,以保证达到课程所指定的基本要求。在写实验报告时,要进一步确认是否达到了预期的目的。

2.实验内容

实验的目的是要通过解决一些具体问题来达到的。根据教学安排、进度、实验条件、可提供的上机时数、学生的基础等因素,逐步完成。在实验报告中,实验内容是指本次实验中实际完成的内容,在每一个实验题目中,一般都提出了一些具体要求,其中有些具体要求是为了达到实验目的而提出的。因此,在实验内容中,不仅要写清楚具体的实验题目,还应包括具体要求。

3.算法和流程图

算法设计是程序设计过程中一个重要步骤。本章的某些实验题目给出了方法说明,有的还提供了流程图,但有的没有给出流程图。如果在做实验的过程中,使用的算法或流程图和本书中给出的不一样,或者书中没有给出算法和流程图,则在实验报告中应给出较详细的算法说明与流程图,并对其中的主要符号与变量作相应的说明。

4.程序清单

程序设计的产品就是程序,它应与算法或流程图相一致。程序要具有易读性,符合模块化和结构化原则。

5.运行结果

程序运行结果一般是输出语句所输出的结果,对于不同的输入,其输出结果是不同的。因此,在输出结果之前一般还应注明输入的数据,以便对输出结果进行分析和比较。

6.调试分析和体会

这是实验报告中最重要的一项,也是最容易忽视的一项。实验过程中大量的工作是程序测试,在调试过程中会遇到各种各样的问题,每解决一个问题就能积累一点经验,提高编程的能力。因此,对实验的总结,最主要的是程序调试经验的总结。调试分析也包括对结果的分析。体会主要是指通过本次实验是否达到了实验目的,有哪些基本概念得到了深入理解等。

下载东北大学上机实验3word格式文档
下载东北大学上机实验3.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    java上机实验

    1、 实验一:多线程程序设计:炮打飞机 实验目的:学会使用多线程进行并发程序设计 实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的......

    网络营销上机实验二

    实验二 网上市场调研 1.在线调研系统的设计 利用Dreamweaver做一静态网页,为某网站设计一个“关于上网时间问题”的在线调研的栏目(如图2-1所示),做一个简单的调查问卷。 图2-1......

    数据结构上机实验--图

    数据结构上机实验六实验内容:图的基本操作 实验要求: 1) 图的遍历与基本操作要作为函数被调用. 2) 把自己使用的图结构明确的表达出来. 3) 基本上实现每个实验题目的要求.......

    信息检索上机实验

    信息检索实习作业 一.找找看哪里有关于MATLAB神经网络应用的书可以看,总结网络上有哪些相关资源。 实习步骤: 1. 方法一:选择通用搜索引擎查询书名。 2. 方法二:选择OPAC系统查询......

    erp上机实验心得

    ERP上机实验心得通过该实验,对所学的知识有了进一步的了解。在实验的过程中,出现了一些问题,不过最后都得以解决。然而通过这些错误,使我对这些知识点更加印象深刻。 ERP是一门......

    实验(上机)内容教学大纲

    实验(上机)内容教学大纲 实验一 插值与曲线拟合的最小二乘法 【基本要求】 1.编制求Lagrange插值多项式和Newton插值多项式的程序; 2.编制分段低次插值多项式的程序; 3.编制用最小......

    ERP上机实验心得体会

    ERP上机实验心得体会 工商1013 2010610083 林冰冰 首先感谢王家聚老师再这一学期中对我们的ERP知识传授,你教会我们的绝不仅仅是ERP课程上的知识,而更多的是观念上的冲击,你的......

    数据库上机实验五篇范文

    创建数据表与数据输入 Part I. 使用SQL Server Management Studio创建数据表和输入数据 1. 在SQL Server Management Studio中创建数据表 P69 1.(1)-(6) 2. 为数据表输入数据......