《计算机综合实践报告.pdf》由会员分享,可在线阅读,更多相关《计算机综合实践报告.pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、四川大学网络教育学院实践课程报告实践课程 计算机综合实践报告校外学习中心成都职业技术学院专业 电气工程及其自动化层次 2010 春季年级曾仲凡学生姓名杨宏杰学号 DH110158002 2012年 3 月 12 日实验一 DEBUG调试工具熟悉、使用一、实验题目:熟悉、使用DEBUG调试工具二、实验日期:2011年 4 月 22 日三、实验目的1、了解并逐步熟悉汇编语言的编辑方式及特点2、复习 8088 汇编语言的段结构、常用的指令与伪指令、存储空间的分配等3、掌握汇编语言的编辑、汇编及连接过程4、了解并逐步掌握运用DEBUG进行调试汇编语言程序5、借助 DEBUG调试工具来发现汇编语言程序的
2、错误所在并加以改正四、实验内容1、进入 DEBUG 方法 1:在 Windows 开始菜单中单击运行命令,直接在运行对话框中输入“DEBUG”方法 2:在运行对话框中输出“CMD”启动 DOS命令窗口后输入“DEBUG”方法 3:在程序、附件、命令提示符,启动DOS命令窗口后输入“DEBUG”2、DEBUG命令格式DEBUG的每个命令都是一个字母后跟一个或多个参数,下面对 DEBUG命令作几点说明:(1)字母部分大小写(2)只使用 16 进制数,且不能带后缀H(3)以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之间是必须的(4)可以用 Ctrl-C或 Ctrl-Break终止命令执行
3、(5)若输入的命令有语法错误,则提示“Error”,并用“”指出错误位置3、常用的 Debug功能用 Debug的 R命令查看、改变CPU寄存器的内容;用 Debug的 D命令查看内存中的内容用 Debug的 E命令改写内存中的内容用 Debug的 U命令将内存中的机器指令翻译成汇编指令用 Debug的 T命令执行一条机器指令用 Debug 的 A 命令以汇编指令的格式在内存中写了一条机器指令4、用 Debug的 R命令查看、改变 CPU寄存器的内容R命令用来显示和修改寄存器的值,包括以下两种格式。(1)R显示所有寄存器和8 个标志位的值,并反汇编CS:IP所指的指令(2)R(寄存器名)显示指
4、定寄存器的值,并等待用户键入新的值,按回车键结束 R命令5、用 Debug的 D 命令查看内存中的内容D 命令可以查看内存中的内容,D 命令的格式较多,只介绍本次实验中用到的格式,8086/8088CPU能够访问 1M 内容,D命令可以显示 0000:0000H-FFFF:FFFFH 中的任何一个单元的内存如果想知道内存100000H处的内容,可以用“d 段地址:偏移地址”的格式来查看,如输入-d 1000:0 使用 d 1000:9 查看 1000:9 处的内容使用 d 1000:0 9 查看 1000:01000:9 的内容一进入 Debug,可直接使用 D命令直接查看,将列出 Debug
5、预设的地址处的内容6、用 Debug的 E命令改写内存中的内容使用“e 起始地址数据数据数据 ”的格式来进行如将内存 1000:0-1000:9 单元中的内容分别改写为0、1、2、3、4、5、6、7、8、9-e 1000:0 0 1 2 3 4 5 6 7 8 9 也可采用提问方式一个一个修改内存中的内容,如输出 e 1000:0 按 Enter 键输入修改的数据,在按空格键输入下一个要修改的数据,最后Enter 键结束操作输入字符串的格式:如-e 1000:10 1 a2”c+”3”IBM”将输入 1 a 2 c+3 IBM到相应单元向内容中写入机器码,如b80100(代表 mov ax 0
6、001),b90200(代表 mov cx 002),01c8(代表 add ax cx),那么输入-e 1000:0 b8 01 00 b9 02 00 01 c8就将该程序输入内容 1000:0 处,然后使用 u 命令-u 1000:0 可以将内存单元中的内容翻译成汇编指令。如果要执行该程序,首先用 r 命令,单步执行程序。执行T 命令时,CPU执行CS:IP执行的指令并将IP加 1 7、用 Debug的 A 命令以汇编指令的形式在内存中写了机指令示列:用 A 命令,输入下列程序并运行-a 1000:0 mov ax,1 movbx,2 mov cx,3 add ax,bx add ax,
7、cx add ax,ax 直接按 Enter 键结果输入。用 r 命令将 cs修改成 1000,ip 修改成 0,再执行 t 命令,单步执行程序。执行T 命令时,CPU执行 CS:IP执行的指令并将 IP加 1.实验二设计汇编语言程序一、实验题目:设计汇编语言程序二、实验日期:2011年 4 月 28 日三、实验目的:字符串统计程序设计双字乘法程序设计四、实验内容1、字符串统计在数据段中建立一个缓冲区BUFFER,变量 VER,编程使得程序具有如下功能:从键盘输入一个子字符串存入VER,从键盘输入包含一个或几个字符串的字符串存入BUFFER。统计BUFFER中的字符串含有多少个子字符串以及每个
8、子字符串的位置2、双字乘法程序设计一个程序实现32 位带符号双精度数乘法运算。由于只有 8 位和 16 位的乘法指令。因此32 位乘法运算是不能直接用指令实现的。但可以用 16 位乘法指令,通过 4 次想乘然后把部分积想加。对于带符号数,可以先根据绝对值求得积。然后判断积的符号,若积为负数,应将其用补码表示五、程序设计1、字符串统计程序设计#include using namespace std int main char a;int b=0,c=0,e=0,f=0 cout“请输入一行任意字符:”a=cin.get()while(a!=/n)if(a128)b+else if(a=a&aA&
9、a=0&a 9)e+else f+a=cin.get()cout“总共有”b/2+c+d+e+f“个字符:”enf1 cout“中文”“/t”“英文”“/t”“空格”“/t”“数字”“/t”“其他”end1 coutb/2”/t”c”/t”d”/t”e”/t”fend11 return 0 分别统计出英文字母,空格,数字和其他字符的个数2、双字乘法程序设计Data segment Xdw 1,2;被乘数Ydw 3,4;乘数Zdw 4 dup(?);积Data ends Code segment Assume ds;data,cs:code Start:Movax,data Movds,ax M
10、ul y Movz,ax Mov z+2,dx Mov ax,x+2 Mul y Mov z+4,ax Mov z+6,dx Movax,x Mov y+2 Add z+4,ax Add z+6,ax Mov ax,x+2 Mul y+2 Adc z+8,ax Adc z+10,dx Adc z+12,0 Mov ax,4c00h Int 21h Code ends End start 实验三8253 定时器、计数器接口与数字电子琴一、实验题目:8253定时器、计数器接口与数字电子琴二、实验日期:2011年 5 月 3 日三、实验目的:改变定时器 2 的计数值来改变声音频率,通过编程来获得声调
11、(频率)和节奏(延时长短),使计算机演奏出乐曲来。四、实验内容设计程序让微机演奏一段简单乐曲利用 DOS的键盘管理功能,将微机变为一个具有简单功能的电子琴(选作)五、程序设计硬件设计利用实验板上的 8253计数/定时器和 8255并行接口,定时器 8253利用工作方式 3 产生一定频率信号,通过可编程的并行外围接口芯片8255 控制频率信号的通断。8255 的 A 口设置为输出,8255 的 A 口的低两位用来控制扬声器驱动,当输出端口的PA0位为“1”或为“0”时,将使控制驱动器的与门电路接通或关闭,使8253 所发出的音频信号能到达驱动器或被阻断。这样通过控制 PA0的变化,可使扬声器接通
12、和断开,就能发出不同的音长。8255 的 PA1位为“1”时,控制 8253 定时器产生驱动扬声器发生的音频信号,该位为“0”则不发信号,8253 有三个定时器,分别为 0 号、1 号和 2 号定时器,驱动扬声器的是0 号定时器,该定时器工作方式3,是一个频率发生器,它负责向扬声器发送指定频率的脉冲信号。当8255 的 PA0和 PA1都为 1 时,8253 发出之地呢频率的声音信号的前提下,声音信号通过与门到达驱动器驱动扬声器发声。软件设计系统要求实现 2 个功能,电子琴和音乐和的功能。两者发声的方法一样,只是一个数据从键盘读取,另一个是已经保存好的数据。首先我们可以用一个程序实现单个音调的
13、产生,对8253 输入不同的计数初值生成不同频率的波形,然后延时一段实践。电子琴程序主要是读取键盘按键,根据键值产生不同的音调即可。而乐曲的播放先将乐曲的音符编码表和节拍编码表建立好的,然后在播放时读取数据。1、单音调子程序 SOUND 单音调子程序的调用前需要进行一下几个方面工作:(1)确定相应的音调所对应的频率,查表可以得到,再由频率得到对应的 8253 计数初值(2)确定音长,即一个音符所持续的时间。在单音调子程序中实现发出一个音符的声音,持续所需的时间,流程如下:读取8253 计数初值和音长8253 置初值开启与门和8253GATE 延时关闭与门和8253GATE 返回2、音乐盒程序音乐盒的乐曲播放程序中需要有两组数据支持:一组是频率数据,一组是节拍时间数据。音符的频率可以用过简谱从频率表中查得、节拍时间就是音符的持续时间,取决于乐曲的速度和每个音符的节拍数据。如 4/4(四四拍)中,每小节包括4 拍,全音符持续4 拍,二分音符持续 2 拍,四分音符持续1 拍,八分音符持续半拍等。有了音调与频率和实践的关系后,就可以按照乐曲的曲谱将每个音符的频率和持续的时间定义成两组数据表,然后编程依次取出表中的频率值和节拍值,调用单音调子程序就可依次产生各个音调,播放出乐曲。在程序中存储几个乐曲数据,根据音乐盒子菜单选择相应的乐曲演奏,读取对应的数据输出。
限制150内