版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四川大学网络教育学院 计算机综合实践 校外学习中心:苏州研究院 学生姓名:徐磊 专业:电气工程及其自动化 层次:专升本 年级:2014级(秋季) 学号:DH1142R6009 实践时间:2016年7月10日 实验一 DEBUG调试工具熟悉、使用 一、实验题目:熟悉、使用DEBU调试工具 二、实验日期:2016/08/5 三、实验目的 1. 了解并逐步熟悉汇编语言的编辑方法及特点 2. 复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。 3. 掌握汇编语言的编辑、汇编及连接的过程。 4. 了解并逐步掌握运用DEBUG!行调试汇编语言程序。 5借助DEBUG?试工具来发现汇编语言
2、程序的错误所在并加以改正。 四、实验内容: 1 进入 DEBUC方法 方法1:在Windows开始菜单中单击运行命令,直接在运行对话框中输入DEBUG 方法 方法2:在运行对话框中输入CMD启动DOS命令窗口后输入DEBUG 方法3:在程序、附件、命令提示符,启动DOS命令窗口后输入DEBUG 2, DEBU晞令格式DEBUG勺每个命令都是一个字母,后跟一个或多个参数。下面 对DEBUGS令作几点说明。字母不分大小写。 只使用16进制数,且不能带后缀H。 以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之间是必须的。 可以用Ctrl-C或Ctrl-Break终止命令的执行。 若输入的命
3、令有语法错误,则提示“ 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中的任何一个单元的内存如果想知道内存 10000H处的内容,可以用d段地址,偏移地址的格式来查看,如输入-d 1000:0 使用d 1000:9查看1000:9处的内容。使用d 1000:0 9 查看1000:0-1000:9的 内容一进入Debug,可直接使用D命令直接查看,将列出Debug预设的地址处的内 容 int main(
5、) char a;i nt b=O,c=O,d=O,e=O,f=O; coutvv请输入一行任意字符:; a=c in. get(); while(a!=n) if(a=128) b+; else if(a=a a=c in. get(); coutvv总共有vvb/2+c+d+e+fvv个字符:endl; coutvv中文vvtvv 英文vvtvv 空格vvtvv 数字vvtvv 其他 e ndl; coutvvb/2vvtvvcvvtvvdvvtvevvtvvfvve ndl; return O; 分别统计出英文字母,空格,数字和其他字符的个数。 2、双字乘法程序设计 data segme
6、 nt x dw 1,2;被乘数 y dw 3,4;乘数 z dw 4 dup (?);积 data ends code segme nt assume ds:data,cs:code start: mov ax,data mov ds,ax mov ax,x mul y mov z,ax mov z+2,dx mov ax,x+2 mul y mov z+4,ax mov z+6,dx mov ax,x mul y+2 add z+4,ax adc z+6,dx mov ax,x+2 mul y+2 adc z+8,ax adc z+10,dx adc z+12,0 mov ax,4c00h
7、 nt 21h code ends end start 验三 8253定时器/计数器接口与数字电子琴 一、实验题目8253定时器/计数器接口与数字电子琴 二、实验日期:2016/08/07 三、实验目的:改变定时器2的计数值来改变声音频率,通过编程来获得声调(频 率)和节奏(延时长短)使计算机演奏出乐曲来。 四、实验内容:设计程序让微机演奏一段简单乐曲 利用DOS勺键盘管理功能。将微机变为一个具有简单功能的电子琴(选作)。 五、程序设计 硬件设计 利用实验板上的8253计数/定时器和8255并行接口,定时器8253利用工作方 式3产生一定频率信号,通过可编程的并行外围接口芯片8255控制频率信
8、号的 通断。8255的A 口设置为输出,8255的A 口的低两位用来控制扬声器驱动,当 输出端口的PA0位为“1”或为“0”时。将使控制驱动器的与门电路接通或关闭, 使8253所发出的音频信号能到达驱动器或被阻断。这样通过控制PA0的变化, 可使扬声器接通和断开,控制扬声器是否能发出声音。此外,通过控制PA0的通 断时间,就能发出不同的音长。8255的PA1位为“ 1”时,控制8253定时器产 生驱动扬声器发声的音频信号,该位为“ 0”则不发信号。8253有三个定时器。 分为0号、1号和2号定时器,驱动扬声器的是0号定时器,该定时器工作方式 3,是一个频率发生器,它负责向扬声器发送指定频率的脉
9、冲信号。当8255的 PA0和PA1都为1时,8253发出指定频率的声音信号的前提下,声音信号通过与 门到达驱动器驱动扬声器发声。 峡件原理图如图1所示: 图2扬声器驱动电路 软件设计 系统要求实现2个功能,电子琴和音乐盒的功能。两者发声的方法一样,只是一 个数据是从键盘读取的,另一个是已经保存好的数据。首先我们可以用一个子程 序实现单个音调的产生,对8253输入不同的计数初值生成不同频率的波形,然后 延时一段时间。电子琴程序主要是读取键盘按键,根据键值产生不同的音调即可。 而乐曲的播放先将乐曲的音符编码表和节拍编码表建立好的,然后在播放时读取 数据。 1.单音调子程序SOUND单音调子程序的
10、调用前需要进行以下几个方面工 作, 1)确定相应的音调所对应的频率,查表可以得到,再由频率得到对应的8253计数 初值。 2)确定音长,即一个音符所持续的时间。在单音调子程序中实现发出一个音符的 声音,持续所需的时间,流程图如图3所示: 图3单音调子程序流程图 2,音乐盒程序 音乐盒的乐曲播放程序中需要有两组数据支持,一组是频率数据,一组是节拍时 间数据。音符的频率可以通过简谱从频率表中查得。 节拍时间就是音符的持续时 间,取决于乐曲的速度和每个音符的节拍数据。如4/4,四四拍,中,每小节包括4 拍,全音符持续4拍,二分音符持续2拍,四分音符持续一拍,八分音符持续半拍 等。有了音调与频率和时间
11、的关系后,就可以按照乐曲的曲谱将每个音符的频率 和持续的时间定义成两组数据表,然后编程依次取出表中的频率值和节拍值 ,调 用单音调子程序就可依次产生各个音调,播放出乐曲。 在程序中存储几个乐曲数据,根据音乐盒子菜单选择相应的乐曲演奏 ,读取对应 的数据输出。 乐曲两只老虎的简谱如下: 1=0 4/4 12 31 3 4 5 - 251- 两只老虎 1 2 3113 4 5 - 56 54 31| 5654 31 2 5 1 - 对应的频率数据表Freq、节拍数据表Time如下: 欢迎下载 TWOTIGERS_FRE 乐曲的频率表DW DW DW TWOTIGERS_TIME 乐曲的时间表DW
12、DW 2 DUP(524,588,660,524,0); 2 DUP(660,698,784,0) 2 DUP(784,880,784,698,660,524,0) 2 DUP(588,392,524,0),1 DW 10 DUP(100),200,100,100,200 2 DUP(50,50,50,50,100,100) DW 2 DUP(100,100,200) outb_p(0 x34,0 x43); utb_p(LATCH outb_p(LATCH8,0 x40); outb(i nb_p (0 x21) / 允许接收定时器中断 void do_timer(void) 这是定时器主程
13、序,用于每隔一段时间后进行某些操作 8253.asm: / 以下是nasm格式的汇编代码,这个中断处理函数必须用汇编 timernterrupt: push gs push fs push es push ds push ebp push edi push esi push edx push ecx push ebx push eax 如果你不在操作系统下使用,以下三行必须删除,否则必须把0 x10更改为内核段 选择符 mov eax,0 x10 mov ds,ax mov es,ax mov al,0 x20 out 0 xa0,al ;发送 EOI out 0 x20,al call do
14、_timer pop ebx pop ecx pop edx pop esi pop edi pop ebp pop ds pop es pop fs pop gs xor eax,eax iretd 践体会 次微机实验课程设计,使我对微机软硬件结合有了进一步的了解。原来并不太清 楚是什么意思,一直都很模糊,听课本也是很迷茫,而之前的那些单元实验,也没 有都做好。之前做的实验,由于大部分是验证性的,所以就很被动地去做,甚至并 没有想为什么要那样连电路,内部的代码更没有认真看。这次课程设计,因为要自 己去设计整个过程,所以就不得不去了解学习自己原来并没有真正弄懂的东西。 比如一些程序的代码的意思,汇编语言的逻辑,比如一些芯片的用途。使我对前面 所做的实验有了原理性的了解,回头看一些实验,也知其然其所以然了。同时对课 本上讲的一些内容,不再像以前那样觉得抽象,通过这次设计,有了具体的理解。 同时,我也知道了设计一个项目,应该如何下手。应该先对项目要求有个全面的 了解,知道要做什么,然后根据要求所要涉及到的知识我们要主动去摄取,结合 自己已学过的,再对整体框架有个感知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年闽侯县昙石山中学第一期临聘教师招聘备考题库及参考答案详解1套
- 2025年中职历史学(中国古代史纲要)试题及答案
- 2025年中职智慧健康养老服务(养老常识基础)试题及答案
- 2026年仓储管理(货物防护)试题及答案
- 2025年大学第二学年(精密仪器制造)技术应用阶段测试题及答案
- 2025年高职(电子信息工程技术)单片机原理及应用专项测试试题及答案
- 2025年大学生态工程(生态工程)试题及答案
- 2025年中职(会计电算化)电子报税综合技能测试试题及答案
- 2025年中职(会计信息化)财务软件操作试题及答案
- 2025年大学农业机械化及其自动化(农机智能化技术)试题及答案
- 2026届潍坊市重点中学高一化学第一学期期末教学质量检测试题含解析
- 超皮秒祛斑课件
- 2025年高尔基《童年》阅读测试+答案
- 跟单转正述职报告
- 移民管理警察职业精神
- 棋牌室消防安全应急预案
- 罐体环形喷淋施工方案
- 2025年江苏(统招专升本)高等数学考试试题及答案
- 保安公司安全培训教材课件
- 通信涉电作业安全培训课件
- 口腔医护管理办法
评论
0/150
提交评论