文档库 最新最全的文档下载
当前位置:文档库 › 实验三 数据串传送和查表程序

实验三 数据串传送和查表程序

实验三 数据串传送和查表程序
实验三 数据串传送和查表程序

实验三数据串传送和查表程序

实验目的:

通过实验掌握下列知识:

1、堆栈。堆栈指示器SP和堆栈操作指令PUSH。POP。

2、段寄存器和物理地址计算。

3、查表法和查表指令XLAT。

4、数据串传送程序和数据串传送指令MOVS。STOS及重复前辍REP。

5、循环指令ROL。逻辑与指令AND和清方向位指令CLD。

6、伪操作指令DB。

实验内容及步骤:

一、利用查表方法把DX的内容(16进制数)转换成ASCII码:

1、用A命令键入下列程序:

MOV BX,1000

MOV DI,2000

MOV CX,4

LOP: PUSH CX

MOV CL,4

ROL DX,CL

POP CX

MOV AL,DL

AND AL,OF

XLAT

CLD

STOSB

LOOP LOP

INT 20

2、用A命令在1000H处键入下列ASCII码并用D命令检查之:

DB `0 1 2 3 4 5 6 7 8 9 A B C D E F'

用D命令检查时注意左边的ASCII码值和右边的字符。

3、用R命令给DX送一个四位的16进制数(例7F8E)。

4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)

5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。可注意屏幕右边的ASCII字符与DX是否一致。

二、数据串搬家程序:

1、用A命令键入下列程序:

MOV SI,1000

MOV DI,1500

MOV CX,0F

LOP: MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

LOOP LOP

INT 20

2、用A命令DB伪指令在1000H键入下列字符串:

‘IBM_PC COMPUTER'

3、用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。

4、若此程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的

字符串搬到1002H开始的地方去?修改程序以做到这一点。

答:不能,如上图,丢掉了IB两位,可以将A1000改为A1002就行。

三、段寄存器概念及字符串传送指令练习:

1、用A命令键入下列程序:

MOV SI,0

MOV DI,0

MOV AX,1000

MOV DS,AX

MOV AX,1500

MOV ES,AX

MOV CX,0F

CLD

REP MOVSB

INT 20

2、用A命令DB伪指令在1000:0000处键入字符串'IBM_PC COMPUTER',并用D命检查之。

3、用D命令检查0F00:1000处内容,看是否一样。为什么?

4、用G命令运行此程序,检查目的地址1500:0000处内容。并记下DS与ES值。

5、修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?)仍和原来一样。

实验报告要求:

1、各项实验记录和思考题。

2、要求你修改的程序的清单(修改后)和调试记录。

实验心得体会:

通过本实验学习到了一些新的指令,如:

1.查表指令XLAT(Translate Instruction),查表指令有两个隐含操作数BX和AL。

指令格式如下:XLAT/XLATB。其功能是把BX的值作为内存字节数组首地址、下表

为AL的数组元素的值传送给AL。其功能描述的表达式是:AL←BX[AL];

2.重复前缀指令REP(Repeat String Instruction)的执行步骤如下:

(1)判断:CX=0;

(2)如果CX=0,则结束重复操作,执行程序中的下一条指令;

(3)否则,CX=CX-1(不影响有关标志位),并执行其后的字符串操作指令,在该指令执行完后,再转到步骤(1)。

从上面的重复前缀指令格式来看,虽然我们可以使用重复取字符串数据指令(第一组指令),但可能会因为指令的执行结果而在程序中几乎不被使用。

这些指令慢慢的出现,使我们不断的深入了解汇编语言,汇编语言的美妙也在不断的展现在我们的眼前。

数据库实验3报告

实验三数据更新、视图、权限管理 实验3.1 数据更新 1 实验内容 (1) 使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。 (2) 使用SELECT INTO语句,产生一个新表并插入数据。 (3) 使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:修改某个元组的值;修改多个元组的值;带子查询的修改语句。 (4) 使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询的删除语句。 2 实验步骤 在数据库School上按下列要求进行数据更新 可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库 Use School go (1)使用SQL语句向STUDENTS表中插入元组(编号:12345678 名字:LiMing EMAIL: LM@https://www.wendangku.net/doc/fb14829770.html,年级:2002)。 Insert into STUDENTS values('12345678','LiMing','LM@https://www.wendangku.net/doc/fb14829770.html,','2002') (2)对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。使用SELECT INTO和INSERT INTO两种方法实现。 Insert into: create table Courses_maxScore(cid char(20),Count_courses int,maxScore int) insert into Courses_maxScore (cid,Count_courses,maxScore) select cid,count(*)as Count_courses,max(score)as maxScore from CHOICES group by cid select*from Courses_maxScore

基于分支、循环结构的表格查询程序的设计

(一)实验名称 基于分支、循环结构的表格查询程序的设计 (二)实验内容和要求 在仓库管理中,具有包含货品的编号、名称、数量、价格等情况的表格,根据用户提供的编号可以找到相关货品。假设表格中共有6种货品,表格的格式为: stoktab db ‘11’,’Excavators’ db ‘12’,’Lifters’ db ‘13’,’Presses’ db ‘14’,’Valves’ db ‘15’,’Processors’ db ‘16’,’Pumps’ LEN EQU $-stoktab 试编写一程序,根据用户输入的编号在屏幕上显示相应货品的名称。 要求:(1)能够循环输入物品的编号进行查询,界面简洁友好; (2)合理使用分支、循环程序结构,语句简练,具有一定说明文档。(三)实验目的 1)感受和学习分支、循环程序结构 2)感受和学习宏定义及宏语句的使用 3)进一步感受和学习汇编语言程序的设计方法、语句和技巧 4)进一步感受和学习汇编语言程序的调试方法 (四)实验日期、时间和地点 时间:2010年11月12日8:00——9:30 地点:微机高级实验室

(五)实验环境(说明实验用的软硬件环境及调试软件) 使用MASM调试 (六)实验步骤(只写主要操作步骤,要简明扼要,还应该画出程序流程图或实验电路的具体连接图) (七)实验结果(经调试通过的源程序的所有代码,应包含必要的说明文字) DATAS SEGMENT stoktab DB'11','Excavators' DB'12','Lifters' DB'13','Presses' DB'14','Valves' DB'15','Processors' DB'16','Pumps'

C程序设计实验三实验报告

实验报告 工学院土木工程专业09级2011至2012学年度第1学期学号:xxxxxx姓名:xxxxxx 2011 年10月08日第3~4节综合楼325教室 实验目的:

a的字节数为sizeof (a)或sizeof (int ),用printf 函数语句输出各类型变 量的长度(字节数)。 ①输入程序如下 in clude int mai n() {int a,b,i,j,k,r,s,t,u,v,w,x,y,z; float d,e; char c1,c2; double f,g; long m, n; un sig ned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.78; m=50000;n=-60000; p=32768;q=40000; i=sizeof(a);j=sizeof(b); k=sizeof(d);r=sizeof(e); s=sizeof(c1);t=sizeof(c2); u=sizeof(f);v=sizeof(g); w=sizeof(m);x=sizeof( n); y=sizeof(p);z=sizeof(q); prin tf("a=%d,b=%d\nd=%d,e=%d\nc 1= %d,c2=%d\n",i,j,k,r,s,t); prin tf("f=%d,g=%d\nm=%d, n=%d\nmp=%d,q=%d\n",u,v,w,x,y,z); } 结 果如 下: (2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,去小数点后两位数字。 ①编写程序如下: #i nclude int mai n() {float h,r,l,s,sq,vq,vz; float pi=3.141526; prin tf("Please in put r,h:"); sca nf("%f,%f",&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; prin tf("The circumfere nce:l=%6.2f\n",l); prin tf("The area of thee circle:s=%6.2f\n ",s); prin tf("The superficial area of the ball:sq=%6.2f\n ",sq); prin tf("The volume of the ball:v=%6.2f\n",vq); prin tf("The volume of the cyli nder:vz=%6.2f\n ",vz); return 0; L

实验三:数据查询实验

实验三:数据查询实验 一、实验目的 了解在企业管理器或查询分析器中执行数据查询的方法;掌握SQL Server Query Analyzer中简单查询、连接查询、嵌套查询操作方法。 二、实验内容 1、使用企业管理器进行查询(验证性,了解部分) (1)查询数据表的全部数据 在企业管理器中,选择需要查询数据的表,用鼠标右键单击该表,从弹出的快捷菜单中选择“打开表”命令,这时将显示该表的全部数据。 (2)使用SELECT语句查询数据表的数据 在企业管理器中,选择需要查询数据的表,用鼠标右键单击该表,从弹出的快捷菜单中选择“打开表”命令,在打开返回表内容的子窗口中,单击工具栏按钮“显示/隐藏SQL窗格”,把子窗口分为上下两部分,上面部分能输入不同的SQL命令。执行时单击工具栏按钮“运行”即可。 (3)学习和使用QBE查询 在企业管理器中,选择需要查询数据的表,用鼠标右键单击该表,从弹出的快捷菜单中选择“打开表”命令,在打开返回表内容的子窗口中,单击工具栏按钮“显示/隐藏条件窗格”,把子窗口分为上下两部分,上面部分能选择QBE查询条件,执行时单击工具栏按钮“运行”即可。若单击工具栏按钮“显示/隐藏SQL窗格”,则在SQL窗格中会显示自动生成的对应SQL语句。 2、使用查询分析器进行查询(验证性) (1)查询Student表中所有学生的学号、姓名和性别。 SELECT Sno, Sname, Ssex FROM Student (2)可以用“*”来选取数据表的全部列 例如:查询Student表中所有学生的基本情况。 SELECT * FROM Student (3)在查询结果中增加计算列,还可修改数据列的显示名称。 例如:查询Student表中所有学生的学号、姓名、性别和出生年份。 SELECT Sno 学号, Sname 姓名, Ssex 性别, Year(GetDate()) - Sage 出生年份 FROM Student (4)使用WHERE子句,可以选择满足条件的部分记录 例如:查询成绩在85~90分之间的学生情况。

实验一 数据传送

数据传送实验 验证性实验 2012年10月31日第三四节课 一、实验目的 1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2、掌握单片机的存储器体系结构。 3、熟悉Keil软件的功能和使用方法。 4、掌握单片机应用程序的调试方法。 二、设计要求 1、编写程序将00H~0FH 16个数据送到单片机内部RAM 30H~3FH单元中。 2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。 3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。 4、编程将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。 5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。 三、实验程序流程框图

四、程序清单 ORG 0000H MOV R0, #30H ;初始化数据指针 MOV A, #00H MOV R2, #10H ;设置循环次数LOOP1: MOV @R0, A ;循环体部分 INC R0 ;修改数据指针 INC A DJNZ R2, LOOP1 ;循环控制部分 MOV R0, #30H ;初始化数据指针 MOV R1, #40H MOV R2, #10H LOOP2: MOV A, @R0 ;循环体部分 MOV @R1, A INC R0 ;修改数据指针 INC R1 DJNZ R2, LOOP2 ;循环控制部分

MOV R1, #40H ;设置数据指针R0单元内容 MOV DPTR, #4800H ;外部RAM4800H单元地址作为16位立即数送数 据指针DPTR MOV R2, #10H ;设置循环次数 LOOP3: MOV A, @R1 ;循环体部分 MOVX @DPTR, A INC R1 ;修改数据指针 INC DPTR DJNZ R2, LOOP3 ;循环控制部分 MOV R0, #00H ;初始化数据指针 MOV R1, #48H MOV R2, #58H LOOP4: MOV DPL, R0 ;设置数据指针的低八位内容 MOV DPH, R1 ;设置数据指针的高八位内容 MOVX A, @DPTR ;将外部RAM内容送累加器A MOV DPH, R2 ;重新设置数据指针高八位内容 MOVX @DPTR, A ;将累加器A的内容送回外部RAM INC R0 ;修改数据指针 CJNE R0, #10H, LOOP4 ;循环控制部分 MOV R0, #50H ;初始化数据指针 MOV DPTR, #5800H MOV R2, #10H CLR A ;累加器A清零 LOOP5: MOVX A, @DPTR ;循环体部分 MOV @R0, A INC R0 ;修改数据指针 INC DPTR DJNZ R2, LOOP5 ;循环控制部分 END 五、程序数据

实验三 数据保护

实验三数据保护 一、实验目的和要求 1.掌握简单数据库备份与还原; 2.掌握SQL的用户、角色和权限控制; 3.掌握SQL的完整性约束 二、实验内容 1、数据库还原 操作步骤: ①在“对象资源管理器”中右键单击“数据库”节点并在弹出菜单中选择“还原数据库” ②在“还原数据库”窗口中设置数据库的名称。 ③下一步,指定还原的源。此处,选择“源设备”。

2、创建登录用户 a)使用对象资源管理器创建通过SQL Server身份验证模式的登录,其中登录名为 Login01,密码为passwd01,默认数据库为CAP,其他保持默认值。 提示:进入对象资源管理器,展开“服务器”→“安全性”→“登录名”,右击“登录名” 项,在弹出的菜单中选择“新建登录名”选项。

b)使用系统存储过程sp_addlogin创建登录,其登录名称为Login03密码为passwd03, 默认数据库为CAP。在SQL编辑器窗口中输入和执行语句,并在对象资源管理器 中显示结果。 EXEC sp_addlogin'login03','passwd03','CAP' c)使用对象资源管理器删除登录用户Login01和Login02。 提示:进入对象资源管理器,展开“服务器”→“安全性”→“登录名”,右击欲删除的 登录帐号,在出现的快捷菜单中单击“删除” d)使用系统存储过程sp_droplogin从SQL Server中删除登录用户Login03。在SQL 编辑器窗口中输入和执行语句,并在对象资源管理器中显示结果。 EXEC sp_droplogin'login03' 3、创建和管理数据库用户 e)创建登录名为u01、密码为passwd01、默认数据库为CAP并能连接到CAP数据 库的用户。 EXEC sp_addlogin'u01','passwd01','CAP' USE CAP EXEC sp_grantdbaccess'u01','u01' f)创建一个新用户U02。

《C++语言程序设计》课程设计报告-学生信息查询系统

《C++语言程序设计》 课题设计报告 课题名称:学生信息查询系统 专业:电子信息工程 班级:2班 姓名: 学号: 指导老师: 日期:2011-05-06 仰恩大学计算机系

一、课程序设计目的(根据情况写) (1)了解面向对象程序设计与结构化程序设计的内在差别; (2)了解类和对象的概念,学会对数据进行封装处理,灵活应用类的继承关系,学会用构造函数来进行对象的初始化工作,通过重载 构造函数来对对象进行更为深入的数据初始化,用析构函数来清 理和释放对象所占用的系统资源; (3)通过对象指针来访问对象,从而完成对对象数据的调用与返还; (4)利用动态内存分配在程序的运行中根据实际需要申请内存空间,使用结束后释放所占用的内存空间; (5)通过继承与派生来简化程序代码简化程序设计,有效利用已有的类模块资源。 (6)以学生信息管理为应用背景,用面向对象程序设计建立学生信息管理程序,实现创建班级、添加学生信息、修改学生信息、删除学 生信息、打印学生信息、退出六个程序功能。 开发环境 (1)系统环境:Windows XP,Windows 7 (2)编程环境:Visual C++.NET,Visual C++ 6.x,Visual Studio 2005,Visual Studio 2010……….等。 二、实现过程 (1)C++编程基础知识介绍

数据类型:对数据类型定义是非常重要的,它可以为数据在内存中分配适合的存储区域、确定数据范围,并且可以规定数据所能进行的有效操作; 1:对数据类型的分类有: 2:常量和变量:变量(variable ):取值在程序的执行过程中可改变值的量;常量(constant ):取值在程序的执行过程中始终保持不变的量。又分为文字常量(literal constant )常变量(也称为符号常量) C++程 源程序文件1 源程序文件2 源程序文件3 编译预处理命令 全局变量声明 函数1 函数n … 函数首部 函数体 局部变量声明 执行语句

实验三 数据串传送和查表程序

学号:xxx 班级:xxx 姓名:xxx 实验三数据串传送和查表程序 实验目的: 通过实验掌握下列知识: 1、堆栈。堆栈指示器SP和堆栈操作指令PUSH。POP。 2、段寄存器和物理地址计算。 3、查表法和查表指令XLAT。 4、数据串传送程序和数据串传送指令MOVS。STOS及重复前辍REP。 5、循环指令ROL。逻辑与指令AND和清方向位指令CLD。 6、伪操作指令DB。 实验内容及步骤: 一、利用查表方法把DX的内容(16进制数)转换成ASCII码: 1、用A命令键入下列程序: MOV BX,1000 MOV DI,2000 MOV CX,4 LOP: PUSH CX MOV CL,4 ROL DX,CL POP CX MOV AL,DL AND AL,OF XLAT CLD STOSB LOOP LOP INT 20 2、用A命令在1000H处键入下列ASCII码并用D命令检查之: DB `0 1 2 3 4 5 6 7 8 9 A B C D E F' 用D命令检查时注意左边的ASCII码值和右边的字符。 3、用R命令给DX送一个四位的16进制数(例7F8E)。 4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查) 5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。可注意屏幕右边的ASCII字符与DX是否一致。 二、数据串搬家程序: 1、用A命令键入下列程序: MOV SI,1000 MOV DI,1500 MOV CX,0F

LOP: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LOP INT 20 2、用A命令DB伪指令在1000H键入下列字符串: ‘IBM_PC COMPUTER' 3、用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。 4、若此程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的 字符串搬到1002H开始的地方去?修改程序以做到这一点。 MOV SI,1000 MOV DI,1500 MOV CX,0F LOP: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LOP MOV SI,1500 MOV DI,1002 MOV CX,0F LOP: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LOP INT 20 三、段寄存器概念及字符串传送指令练习: 1、用A命令键入下列程序: MOV SI,0 MOV DI,0 MOV AX,1000 MOV DS,AX MOV AX,1500 MOV ES,AX

实验三 用户数据资料

实验三用户数据 一、目的 学习完本节,你将能掌握: 1.如何放号 2.如何进行号码分析 3.如何修改用户属性 4.如何进行用户线改号和用户号改线 二、准备工作 5.完成了系统的物理配置 6.掌握了号码分析在交换机系统中的作用 ZXJ10交换机的一个重要功能就是网络寻址,电话网中用户网络的地址就是电话号码。号码分析主要用来确定某个号码流对应网络寻址和业务处理方式。 ZXJ10交换机系统提供7种号码分析器:新业务号码分析器、CENTREX号码分析器、专网分析器、特服号码分析器、本地网号码分析器、国内长途业务号码分析器和国际长途业务号码分析器。 对于某一指定的号码分析选择子,号码按固定的顺序经过选择子规定的各种分析器。各种分析器严格按照顺序进行号码分析。 7.已做好数据备份。方法如下: 选择数据管理/数据备份/数据备份,进入数据备份与恢复页面,可进行备份与恢复。平常用得比较多的备份方式是“生成备份数据库的SQL文件”,即将数据库中的表备份成数据库文件*.SQL,存放在硬盘上的指定目录下:和“从SQL文件中恢复备份的数据库”,是“生成备份数据库的SQL文件”的逆过程,即将硬盘上某个目录下的数据库备份文件*.SQL倒回到数据库里,覆盖数据库中原有的表。 三、步骤 1.号码管理 选择数据管理/基本数据管理/号码管理/号码管理菜单,在号码管理截面中首先进入局号和百号组子页面。 1)增加局号 选择“网络类型”,一般为公众电信网;点击增加局号钮,进入增加局号窗口, 键入“局号索引”,一般从1开始编号; “局号(PQR)”,即局码,如可设为666;和 “号码长度”,一般为7或8,表示本局号码流长为7位或8位。 “描述”没有实际意义,为方便记忆。 点击确定钮,回到号码管理界面。则“局号属性”框中显示出刚刚创建的局号属性。 2)分配百号 点击分配百号钮,进入分配百号组窗口,选择刚才创建的“局号”666和“模块号”2,则左侧“可以分配的百号组:”框中列示出该局号可分配的若干百号组。以转移键将其中的一个百号组如00转移到右侧“可以释放的百号组:”框中。点击返回钮回到号码管理界面。选中“局号属性:”中的一项,则对应的百号组信息在“百号组:”框中列示出来。 注意此时该百号组的“使用情况”为空闲。 3)放号 在号码管理界面中进入用户号码子页面,点击放号钮,进入号码分配窗口。在“号码范围:”域选择“局号”如666,“百号”如00,则“可用的号码:”框中列示出该6660000

单片机 查表程序设计实验

2.4 查表程序设计实验 2.4.1 实验目的 学习查表程序的设计方法,熟悉 51 的指令系统。 2.4.2 实验设备 PC 机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51 系统平台”、或 “TD-PITE 教学实验系统+TD-51 系统平台” 2.4.3实验内容 1. 通过查表的方法将 16 进制数转换为 ASCII码; 2 2. 通过查表的方法实现y=x ,其中x为 0~9 的十进制数,以BCD码表示,结果仍以BCD 码形式输出。 2.4.4 实验步骤 1. 采用查表的方法将 16 进制数转换为 ASCII 码 根据 ASCII码表可知,0~9 的 ASCII码为 30H~39H,A~F的 ASCII码为 41H~46H,算 法为(假定待转换的数存放在 R7 中): 当 R7≤9 时,相应的 ASCII码为:R7+30H; 当 R7>9 时,相应的 ASCII码为:R7+30H+07H。 实验程序清单:(Asm4-1.asm) ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV DPTR, #ASCTAB ;表格首地址送DPTR MOV A, R7 ;R7中为待转换的数 ANL A, #0FH ;取低4位 MOVC A, @A+DPTR ;查表 MOV R5, A ;低4位转换结果送R1 MOV A, R7 ANL A, #0F0H ;取待转换数的高4位 SWAP A ;高4位与低4位交换 MOVC A, @A+DPTR ;查表 MOV R6, A ;高4位转换结果送R2 SJMP MAIN ;设置断点观察结果 ;ASCII码表 ASCTAB: DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H, 46H END 实验步骤: (1)编写实验程序,编译、链接无误后联机调试; (2)将待转换的数存放在 R7 中,如令 R7 中的值为 0x86;

实验三 数据通路(总线)实验

实验三数据通路(总线)实验 一、实验目的 (1)将双端口通用寄存器堆和双端口存储器模块联机; (2)进一步熟悉计算机的数据通路; (3)掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法; (4)锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。 二、实验电路 图8示出了数据通路实验电路图,它是将双端口存储器实验模块和一个双端口通用寄存器堆模块(RF)连接在一起形成的。双端口存储器的指令端口不参与本次实验。通用寄存器堆连接运算器模块,本实验涉及其中的操作数寄存器DR2。 由于双端口存储器RAM是三态输出,因而可以将它直接连接到数据总线DBUS上。此外,DBUS上还连接着双端口通用寄存器堆。这样,写入存储器的数据可由通用寄存器提供,而从存储器RAM读出的数据也可送到通用寄存器堆保存。 双端口存储器RAM已在存储器原理实验中做过介绍,DR2运算器实验中使用过。通用寄存器堆RF(U32)由一个ISP1016实现,功能上与两个4位的 MC14580并联构成的寄存器堆类似。RF内含四个8位的通用寄存器R0、RI、R2、R3,带有一个写入端口和两个输出端口,从而可以同时写入一路数据,读出两路数据。写入端口取名为WR端口,连接一个8位的暂存寄存器(U14)ER,这是一个74HC374。输出端口取名为RS端口(B端口)、RD端口(A端口),连接运算器模块的两个操作数寄存器DR1、DR2。RS端口(B端口)的数据输出还可通过一个8位的三态门RS0(U15)直接向DBUS输出。 双端口通用寄存器堆模块的控制信号中,RS1、RS0用于选择从RS端口(B 端口)读出的通用寄存器,RD1、RD0用于选择从RD端口(A端口)读出的通用寄存器。而WR1、WR0则用于选择从WR端口写入的通用寄存器。WRD是写入控制信号,当WRD=1时,在T2上升沿的时刻,将暂存寄存器ER中的数据写入通用寄存器堆中由WR1、WR0选中的寄存器;当WRD=0时,ER中的数据不写入通用寄存器中。LDER信号控制ER从DBUS写入数据,当LDER=1时,在T4的上升沿,DBUS上的数据写入ER。RS_BUS#信号则控制RS端口到DBUS的输出三态门,是一个低电平有效信号。以上控制信号各自连接一个二进制开关K0—Kl5。

实验一 单片机数据区传送程序设计

实验一单片机数据区传送程序设计 一、实验目的 1.进一步掌握汇编语言程序设计和调试方法。 2.了解单片机RAM中的数据操作 二、实验说明 要求:编写程序把R2、R3源RAM区首地址内的R6、R7字节数据传送到R4、R5目的地址的RAM区。 三、实验仪器 计算机 伟福软件(lab2000P ) 四、实验内容 在R0、R1中输入源地址(例如:3000H),R2、R3中输入目的地址(例如4000H),R6、R7中输入字节数(例如:1FFFH)。 查看RAM 区3000~30FFH和4000~40FFH内容,也可自己重新赋值。 运行程序,首先单步,然后用执行到指定位置,最后用连续运行方式。 记录下运行结果,检查3000~30FFH中内容是否和4000~40FFH内容完全一致。 五、思考题 1、改变源地址,例如00FFH; 2、改变目的地址,例如2000H; 3、改变传输的个数,小于256个和大于256个的情况。 4、把程序改为对某一数据存储区RAM赋都相同一个数值。 六、源程序及其修改原理 org 0000H Block equ 2000h mov dptr, #Block ; 起始地址 mov r0,#12h mov a,#20h ;修改2000h开始的地址所存放的内容为20h Loop: mov r1,#14h ;增加r1计数,用循环方式实现大于256的数据传输(思 考题3) Loop1: movx @dptr,a inc dptr ; 指向下一个地址 djnz r1,Loop1 djnz r0, Loop ; 双循环实现r0,r1计数相乘 (以上程序实现对某一数据存储区2000h~2168hRAM赋都相同一个数值20h,思考题4) mov r0, #20h ;改变源地址为2000h(思考题1) mov r1, #00h mov r2, #50h;改变目的地址为5000h(思考题2) mov r3, #00h

Visual FoxPro 程序设计实验报告

VF程序设计实验报告 图书馆管理系统 专业: 学号: 姓名: 指导教师: 2010年12月31日

目录 第一部分系统概述--------------------------------2 第二部分系统功能模块设计------------------------2第三部分系统数据库及表设计----------------------2第四部分系统菜单设计----------------------------5 第五部分系统界面设计----------------------------6 第六部分系统相关程序代码-----------------------13第七部分实验报告小结---------------------------22第八部分参考资料-------------------------------22

一、系统概述 近年来,随着图书馆规模的不断扩大,图书数量相应的增加,有关图书的各种信息量也成倍增加,面对庞大的信息量,传统的人工管理户导致图书管理的混乱,人力与物力过多的浪费,图书管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。因此,为了充分发挥了图书馆的功效,最大限度地为读者服务,必须制定一套合理、有效,规范和实用的图书馆管理系统,对图书资料进行集中统一的管理。 根据上述需要,我们建立本图书馆管理系统。 根据图书、读者和管理员三者之间的关系,本系统主要实现读者对图书的查询、个人信息的修改和管理员对读者、图书的管理。 本系统采用作为开发工具。 二、系统功能模块设计 本系统可以完成一般图书馆关于图书查询、借阅及书库管理的主要功能。其中:图书查询模块可以查询所需要的图书;读者管理模块中,读者可以查看自己的信息,对登陆密码进行修改,管理员可以对读者进行添加和删除;图书管理模块中,管理员可以为读者进行图书的借阅和归还操作,以及对图书的信息进行修改,如加入新书、删除不能使用的图书和更新图书的信息;报表打印模块中,实现对需要的信息进行打印输出。系统结构下图所示。 三、数据库及表设计 经分析,图书馆管理系统主要涉及了学生、管理员和图书三部分。因此需要建立的实体就是学生、管理员和图书三个。 根据系统模块的设计,可以的到本系统需要建立的基本表为:读者信息表、

软件开发检查表

代码大全——检查表 1.欢迎进入软件创建世界 1.1.l.3 小结 ●创建活动是总体设计和系统测试之间承上启下的工作。 ●创建活动主要包括:详细设计、编码、调试和单元测试。 ●关于创建活动的其它称谓有:实现、编程等。 ●创建活动质量对软件质量有潜在影响。 2.利用隐喻对编程进行更深刻的理解 2.1.2.4 小结 ●隐喻仅仅是启发,而不是公式,因此,它们更倾向于比较随便,无拘无束。 ●隐喻通过把软件开发与你所熟知的事情联系在一起,从而使你对其有更深刻的理解。 ●一些隐喻要好于其它隐喻。 ●把软件创建与建造建筑物类比,表明开发软件前要精心准备,并表明了大规模项目与 小规模项目之间的差别。 ●认为软件开发实践是智能工具箱中的工具进一步表明,每个程序员都有许多自己的工 具,没有任何一种工具是万能的。为每件工作选择合适的工具,是成为一个优秀程序员的首要素质之一。 3.软件创建的先决条件 3.1.需求 3.1.1.需求内容 ●系统的所有输入都定义了吗?包括它们的来源、精度、取值范围和频率? ●系统所有的输出都定义了吗?包括它们的目标、精度、取值范围、频率和格式? ●所有的报告格式都定义了吗? ●所有的硬件与软件接口都定义了吗? ●所有的通信交界面都定义了吗?包括握手、错误检查以及通信约定? ●是否从用户的观点出发,定义了所有必要操作的反应时间? ●是否定义了时间问题,如处理时间、数据传输率以及系统吞吐能力? ●是否对用户所要求完成的任务部作出了规定? ●每项任务所需用到和产生的数据都规定了吗? ●规定保密级别了吗?

●规定可靠性了吗?包括软件出错的后果、在出错时要保护的至关重要的信息、以及错 误测试和恢复策略。 ●规定所需最大内存了吗? ●所需最大存储容量规定了吗? ●对系统的维护性是否作出了规定?包括系统对运行环境、精度、性能以其与其它软件 的接口等方面变化的适应能力规定了吗? ●是否规定了相互冲突的设计之间的折衷原则,例如,在坚固性与准确性之间如何进行 折衷? ●是否制定了系统成败的标准? 3.1.2.关于需求的完善性 ●在开发开始前暂时得不到的信息是什么?是否规定了不够完善的区域? ●需求定义是否已经完善到了可以成为软件标准的地步? ●需求中是否有哪一部分令你感到不安?有没有根本不可能实现,而仅仅为了取悦老板 和用户才加进来的内容? 3.1.3.关于需求的质量 ●需求是否是用户的语言制定的?用户也这样认为吗? ●需求中是否每一条之间都尽量避免冲突? ●需求中是否注意了避免规定设计工作? ●需求在详细程度方面是否保持了一致性;有没有应该更详细些的要求?有没有应该更 简略些的? ●需求是否明确得可以分为一些独立的可执行部分,而每一部分又都很明了? ●是否每一条都与问题和答案相关?是否每一条都可以追溯到产生它的环境中? ●是否每一条需求都可以作为测试依据?是否可以针对每一条进行独立测试以确定是否 满足需求? ●是否对可能的改动作出了规定?包括每一改动的可能性? 3.2.结构设计 ●一个好的结构设计应该阐明所有问题。这个表并不是用于指导结构设计的,而只是想 提供一种方法,通过它,你可以估计处于软件食物链顶层的程序员可以从食物中获得多少营养。它可以作为建立自己的检查表的起点。同要求定义检查表的使用一样,如果你正在从事一个非正式的项目,那么其中有些条款是不必考虑的。但如果你正在开

实验三 交互式SQL:数据查询

实验三交互式SQL(二):数据查询 【实验目的】 1.掌握SELECT语句的基本语法。 2.掌握集合函数的作用及使用方法。 3.熟悉普通连接、外连接和自身连接的概念。 4.能够熟练使用连接查询从多个表中查询数据。 5.能够熟练地使用子查询查询数据。 【实验学时】 2学时 【实验内容】 以下题目均在STUxxxx(学生管理)数据库中完成。 一、简单查询 1.查询年龄最小的前3个同学的姓名、专业和年龄 2.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name 和mark。 3.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。 4.查询XS表中专业为“计算机”的同学的情况。 5.查询XS表中1992年出生的学生姓名和专业情况。 6.查询XS表中姓“张”或“王”或“李”且单名的学生的情况。 7.查询XS表中专业为“计算机”且总学分尚未确定的学生情况。 8.从XS表中查询学生的基本信息,要求按照总学分从高到低排序,学分相同时,按学号 由低到高排序。。 二、数据汇总 1.求选修了“101”课程的学生的平均成绩。 2.求选修了“102”课程的学生的最高分和最低分。 3.求学号为“4102101”学生的总成绩。 4.求专业为“计算机”的学生的总人数。 5.求选修了“101”课程的学生的人数。 6.求选修了任意一门课程的学生的人数。 7.统计各个专业的学生数。(按专业分组) 8.统计各个专业的男女生人数。格式如下: 专业性别人数 ……………… 9.查找平均成绩在80分以上的学生的学号和平均成绩。 10.查找选修的课程中超过2门成绩在80分以上的学生的学号和成绩高于80分的门数。 格式如下:

河北工业大学 单片机实验 第四次试验 实验八 查表程序设计

实验八查表程序设计 一、实验目的 1.进一步熟悉MCS-51指令系统和汇编语言程序设计。 2.学会用MOVC指令编写查表程序。 二、实验内容 1.设计并调试一个查平方表的程序,其功能为应用查表指令MOVC A,@A+PC,求累加器A中数的平方值,结果平方值送A。要求待查的(A)≤15。 2.设计并调试一个根据电压值查与其对应的温度值的查表程序,其功能为应用查表指令MOVC A,@A+DPTR,求(A)中电压值对应的温度值,将温度值送R2R3(温度值为二字节的压缩BCD码),电压值的范围为(A)≤0FFH。实验程序参考框图如3-8所示。 三、实验步骤 1.键入程序和预定表后; 2.通过修改自变量参数启动并调试程序,直至正确为止。 3.边调试边体会用PC或DPTR作指针查表的区别。 四、实验报告要求 根据实验内容和程序参考流程,编出所需查表程序,列出实验程序清单。 五、思考题 1.当表的长度〉255个字节时应选哪一条指令查表? 答:当表的长度〉255个字节时应选“MOVC A,@A+DPTR”指令查表,并且需要对DPH、DPL进行运算处理,求出表目地址,再用“MOVC A,@A+DPTR”指令查表。 2.用PC指针查表编程时应注意什么? 答:应先用传送指令把所查数据的项数送入累加器A,并用“ADD A,#data”对A进行修正data值等于查表指令和数据表格之间的字节数,然后用“MOVC A,@A+PC”查表,同时用PC指针查表的表的范围不能大于255个字节。 六、参考程序清单 1.求平方值查表程序: ORG 0000H ADD A,#02H MOVC A,@A+PC SJMP $ DB 0,1,4,9,16,25 36,49 DB 64,81,100,121,144,169,196,225 END 本程序实现通过查表得A累加器中数的平方值并将结果送A,根据A中数值采用基址加变址方法找到所查数的地址得所对应的平方数。例:当(A)=5时,执行过程如下: D:0XE0(A) PC指针 ORG 0000H 05H C:0X0000 ADD A,#02H 07H C:0X0002 MOVC A,@A+PC 19H ;A+PC=A(10),查表的19H(25) C:0X0003 SJMP $ C:0X0005 DB 0,1,4,9,16,25 36,49 DB 64,81,100,121,144,169,196,225 END 2.测量温度查表程序: 双字节查表程序刘程序如图3-8所示: 双字节查表参考程序清单: ORG 0000H MOV DPTR,#TAB

试验项目试验一最简单的C程序设计

试验项目试验一最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。

五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表示式。 3.熟练掌握if语句和switch语句 二、实验条件 Pc和vc++编程环境 三、实验内容

1.有一函数: ?????≥-<≤-<=)10x (113x ) 10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

数据库 实验三答案

实验3 SQL语言 一、实验目的 1、掌握SQL中运算符和表达式的使用。 2、掌握实用SQL语言查询数据库。 二、实验要求 1、所有的实验过程请严格按照实验内容的步骤进行。 2、对关键步骤截屏并复制到实验报告的相应位置。 三、实验设备、环境 设备:计算机 环境:WINDOWS XP、SQL SERVER 2000中文版 四、实验原理、方法 上机操作 五、实验内容 准备工作:还原学生成绩管理数据库; 注意:写SQL语句时,注意学生成绩管理数据库中表名称和字段名称的对应。 1、使用SQL查询分析器,对学生成绩管理数据库完成如下查询操作: 1)简单查询 (1)求数学系学生的学号和姓名。 (2)求选修了课程的学生学号。

(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。 (4)求选修课程0001且成绩在80~90之间的学生学号和成绩,并将成绩乘以系数0.8输出。 (5)求数学系或计算机应用系姓王的学生的信息。 (6)求缺少了成绩的学生的学号和课程号。

2)连接查询 (1)查询每个学生的情况以及他(她)所选修的课程。 (2)求学生的学号、姓名、选修的课程名及成绩。 (3)求选修0001课程且成绩为90分以上的学生学号、姓名及成绩。

3)嵌套查询 (1)求选修了0003的学生学号和姓名。 (2)求0001课程的成绩高于王军的学生的学号和成绩。

(3)求其他系中比计算机系某一学生年龄小的学生。 4)使用分组和函数查询 (1)求学生的总人数。 (2)求选修了课程的学生人数。

(3)求课程和选修0001的人数。 (4)求选修课超过3门课的学生学号。

查表程序设计

查表程序设计 在单片机应用系统中,查表程序使用频繁。利用它能避免进行复杂的运算或转换过程,广泛应用于显示、打印字符的转换以及数据补偿、计算、转换等程序中。 查表就是根据自变量x的值,在表中查找y,使y=f(x)。x和y可以是各种类型的数据。表的结构也是多种多样的。表格可以放在程序存储器中,也可以存放在数据存储器中。一般情况下,对自变量x是有变化规律的数据,可以根据这一规律形成地址,对应的y则存放于该地址单元中;对x是没有变化规律的数据,在表中存放x及其对应的y值。前者形成的表格是有序的,后者形成的表格可以是无序的。 例1将l位十六进制数转换为ASCII码。 解: 在前面的例子中,我们介绍了将ASCII码转换为十六进数的程序,本例是其逆变换。这里采用查表的方法完成十六进制数到ASCII码的转换。 建立一个表格,首先确定表格的首地址,在相对于表首的地址单元中存放ASCII码。设十六进制存放在R0中,转换结果存放在R1中。程序为: ORG 0300H MOV A, R0 ANL A, #0FH ;屏蔽高位 MOV DPTR,#TAB MOVC A,@A+DPTR MOV R1,A ORG 0380H TAB: DB ‘01234567’ DB ‘89ABCDEF’ END 例2 在一个单片机测温装置中,已知电压和温度之间是非线性关系。在校正过程中,电压值取连续的10位二进制数,测量这些电压值对应温度最多可达1024个。用这些校正数据建立一个表格。以电压为相对地址,这样就可以根据测得的不同电压值求出被测温度。 解: 设电压测量值X放在R2、R 3中(10位二进制数占两个字节),求出的温度仍放R2、R3中(也是双字节数)。与X值的对应的温度放在地址为2X加表格的首地址的单元中。程序为: MOV DPTR, #TAB MOV A, R3 CLR C RLC A ;X*2 MOV R3, A XCH A, R2 RLC A

相关文档
相关文档 最新文档