实验四 分支和循环程序设计实验(设计性实验)
- 格式:docx
- 大小:813.42 KB
- 文档页数:11
(此文档为word格式,下载后您可任意编辑修改!)实验三循环程序设计一、预习内容1.多重循环程序和排序程序设计方法。
2.带符号数的比较转移指令:JL,JLE,JG,JGE二、目的要求1.掌握多重循环程序和排序程序设计方法。
2.掌握带符号数的比较转移指令:JL,JLE,JG,JGE三、实验内容建立学生名次表,以grade为首地址的数组中保存了学生的成绩,其中grade+i 保存学号为i+1的学生的成绩。
要求建立一个10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+1学生的名次(提示:一个学生的名次等于成绩高于该学生的人数加1).四、程序流程图五、程序DSEG SEGMENTgrade dw 90,60rank dw 10 dup(?) DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG start: mov ax, dsegmov ds, axmov di,10mov bx,0lea bp,rankl: lea si,grademov dx,1mov cx,10mov ax,[si+bx] next: cmp ax,[si]jge no_countinc dxno_count: add si,2loop nextmov [bp],dxadd bp,2add bx,2dec disub di,0jne lmov ax, 4c00hint 21hCSEG ENDSend start六、实验结果JGE情况下的排序结果转移指令为JG 时的排序结果:转移指令为JL时的排序结果:转移指令为JLE 时的排序结果:实验四分支程序设计一、预习内容1.分支程序设计方法。
2.利用转移指令jl、jmp实现多岔分支的方法。
二、目的要求1.掌握分支程序设计方法。
2.掌握利用转移指令jl、jmp实现多岔分支的方法。
三、实验内容统计学生成绩result。
TD-PITD+ 新一代32位微机教学实验系统西安唐都科教仪器公司最新推出“TD-PITD+32位微机教学实验系统”,该系统基于PCI总线扩展卡扩展出80x86系统总线,支持“80x86微机原理及接口技术”、“基于Windows系统的微机原理及接口技术”实验教学和IA-32微机系统应用开发,完全解决了以往各种PCI总线扩展实验设备存在的各种问题,诸如容易死机,不易维护,实验内容少,中断、DMA、存储器扩展等实验开不了或开不全,在Windows 环境中主要实验都不能开展等等。
所以唐都32位微机教学实验系统已成为高校“80x86微机原理及接口技术”和“”微机应用及开发”等课程实验教学的不二选择。
一、支持基于80x86的16/32位微机原理及接口技术教学体系(一)全面支持基于80x86的16/32位微机原理及接口技术的实验教学系统全面支持“基于80x86的16/32位微机原理及接口技术”的实验教学,从而可使各学校由原来的“基于DOS系统的16位微机原理及接口技术”的实验教学顺利提升到“基于80x86的16/32位微机原理及接口技术”实验教学的新层次。
“基于80x86的16/32位微机原理及接口技术”实验教学体系包括:80x86实模式微机原理及接口技术(16位微机原理及其程序设计、32位指令及其程序设计、微机接口技术及其应用)和80x86保护模式微机原理及接口技术(保护模式原理及其程序设计、虚拟存储管理及存储器扩展)。
其中“8259中断控制实验”包括8259单一中断源实验、8259优先级中断实验、8259级联中断实验,“8237DMA传送实验”包括存储器到存储器、存储器到I/O之间的DMA传送实验,“存储器扩展实验”包括8/16/32位静态存储器扩展实验和Flash ROM存储器实验。
(二)Windows环境下的汇编语言和C语言源程序调试软件专为在Windows系统环境下支持80x86微机原理及接口技术的实验教学设计了一套高度可视化的先进集成开发环境,在该环境下可支持80x86汇编或C语言源语言级的编程和调试,支持实验平台上扩展的接口芯片及设备的I/O操作、中断以及DMA方式操作的编程及调试,支持实验平台上存储器的内存扩展的编程操作及调试,完全解决了基于PC微机的Windows环境下,如何通过PCI总线扩展方式,来完整开展80x86微机接口技术的实验教学问题。
微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。
命令运行调试。
二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。
是对目标文件进行调试,验证它的正确性。
2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。
汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。
2、熟悉DEBUG程序的使用方法。
3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。
二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。
2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。
三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。
2、预习DEBUG调试程序的使用方法。
3、根据实验内容要求,编写好实验源程序。
四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。
2、汇编、连接源程序,产生.EXE可执行文件。
3、运行程序。
(1) 进入DEBUG。
打入DEBUGT MYPROG.EXE。
MYPROG为所编程序的文件名。
(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。
如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。
(3) 检查程序。
在程序中设置若干断点,以便杳出错误所在。
(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。
五、实验报告要求1、列出程序清单,并给出程序流程图。
2、总结实现数据传送的几种方法,指出它们的区别。
开始3、分析实验中所遇到的一些问题,分析错误原因。
4、说明本实验中是如何使用DEBUG进行调试的。
CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。
实验题目总体要求:本学期的所有的实验题目,希望同学们按如下步骤认真做,(1)先画出处理界面(窗体);(2)再给出处理步骤,(3)写出程序代码:可参考下面的例题:例如:设计程序,求1+2+3+...+N 的和值。
其处理过程是:(一)设计界面(在纸上画出界面,并注明各控件的名称):(二)处理步骤:单击命令按钮,按以下步骤处理(1)定义3个变量:N ,s ,x ,分别用于存放:输入的数值,和值,控制循环(2)将文本框1的值,提供给变量N ;(3)s=0(累加前,将变量s 初始化为0);(4)X=1(设置循环的开始值)(5) 当X<=N 时 重复执行S=s+xX=X+1(5)在文本框2中显示和值S(三)编写有关的代码:Private Sub Command1_Click()Dim n%,s%,x%N=val(text1.text)S=0X=1Do while x<=nS=s+xX=x+1LoopText2=sEnd Sub文本框1:TEXT1 文本框2:TEXT21:Command1标签1:Label1 标签2:实验一:用语言或流程图描述处理步骤(1次)1.判定一个数X是否是偶数的处理步骤;2.写出求5的阶乘的计算步骤;3.写出求1+2+3+...... +100的计算过程;4.写出计算1!+2!+3!+4!+......+20!的计算步骤;5.写出求一元二次方程解的处理步骤;6.给出将三个整数A,B,C按从小到大的顺序排列的处理步骤;实验二:表达式及其运算的实现(1次)1.设计一个程序,完成利用文本框输入任意两个数的乘法运算,并显示计算结果。
2.进一步完善程序,完成利用文本框输入任意两个数的加法、减法、乘法、除法运算,并显示计算结果,3.再进一步,改进,完成,利用随机函数,产生任意两个100到200之间的整数,并完成两个数的加法、减法、乘法、除法运算,并显示计算结果。
4.求方程AX+B=0的解。
创新源于实践《高级语言程序设计》课程实验教学手册高级语言程序设计课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。
2、实验结束后填写通过后的源程序和对实验的总结。
3、通过后的源程序可以手写也可以打印粘贴。
实验项目一览表学号:姓名:成绩:实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程示例在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。
学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)1.3 编程在屏幕上显示如下网格。
+---+---+| | || | |+---+---+# include <stdio.h>int main(){printf("+---+---+\n");printf("| | |\n");7printf("| | |\n");printf("+---+---+\n");return 0;1.4 调试示例改正下列程序中的错误,在屏幕上显示“Welcome to You !”。
(掌握找错、改错的方法)源程序:# include <stdio.h>int mian(void)//mian改为main{printf(Welcome to You! \n")//括号后加”getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:学号:姓名:成绩:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握基本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。
《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):2. (1) 改正后的源程序:(2) 运行结果(或截图):五、思考题:1. 一个C程序上机的步骤有哪些?答:2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。
实验一:设计简单的VB 应用程序一、实验目的1.掌握Visual Basic 启动和退出的方法。
2.熟悉Visual Basic 的集成开发环境。
3.掌握Visual Basic 程序设计的基本步骤,了解VB 程序的编写、保存和编译的方法过程。
4.初步了解几个常用基本控件控件(标签、命令按钮和文本框)的使用方法。
二、实验类型综合三、实验时间:2013-3-8四、实验任务1、启动Visual Basic ,然后创建一个“标准 EXE ”工程(保存在D 盘以自己学号命名的文件夹中,文件名和窗体名均为SJT ),并了解Visual Basic 集成开发环境下各组成部分及其作用。
2、编一程序,计算任意输入的正整数的平方根。
3、编写一个应用程序,界面如图1-1所示。
窗体中文字“VB 应用程序!”为一标签控件,单击标题为“放大”的命令按钮,则“VB 应用程序!”的字号放大一号,单击“缩小”按钮则反之;同时,窗体中还有4个含某种指向图案的按钮,若单击某个按钮,则使“VB 应用程序!”向该按钮所指向的方向移动50Twip 。
(提示:四种指向的图案可以在Visual Basic 安装目录中的“…graphics\icon\Arrows ”子目录中找到,名称分别为arw07dn.ico 、arw07lt.ico 、arw07rt.ico 和arw07up.ico )五、实验要求 写出实验报告,内容是:1、第1小题的操作步骤2、第2、3题1).程序的界面设计。
2).程序主要代码。
3).运行结果(输入与输出)。
4).实验总结。
(写上你自己的总结。
可以从以下几个方面来总结:你在编程过程中花时多少?时间是怎么分配的?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?)图1-1 实验1-2程序运行实验二:数据的输入和输出一、实验目的1.掌握常量和变量、表达式的基本概念和正确书写格式。
2.掌握基本语句(Print语句、赋值语句、Dim语句等)的使用;3、掌握常用函数的正确使用方法;4、掌握数据的动态输入InputBox和信息提示MsgBox的基本使用方法。