四川大学 计算机综合实践报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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