计算机综合实践实验报告

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

四川大学网络教育学院

实践课程报告

实践课程计算机综合实践

校外学习中心东莞奥鹏

专业电气工程及其自动化

层次专升本

年级二年级

学生姓名李超

学号 201002663252

2011年 7 月 10 日

四川大学网络教育学院

实验报告

实验名称: 调试程序--DEBUG、设计汇编语言程序、可编程定时器/计数器8253实验

学习中心东莞奥鹏姓名李超

学号201002663252

实验内容:用汇编语言编写一个简单的加法运算程序,并调试;字符串统计程序设计,双字乘法程序设计;改变定时器2的计数值来改变声音频率,通过编程来获得声调(频率)和节奏(延时长短),使计算机演奏出乐曲来。

实验一调试程序--DEBUG

实验重点:掌握汇编语言,可以调试简单的程序

实验目的:让学生熟悉程序的输入和调试环境

实验学时:2学时

实验难点:如何进行程序的调试:DEBUG

实验内容:用汇编语言编写一个简单的加法运算程序,并调试

1.进入DEBUG状态,开机进入DOS状态。

C>DEBUG↙

屏幕显示:

-

“-”为已进入DEBUG状态,在该提示符下可键入DEBUG命令。下划线部分为用户键入的字符或命令

2.键入程序并汇编

用DEBUG的A命令送入程序:

-A 100↙

MOV AL,33

MOV DL,35

ADD DL,AL

SUB DL,30

MOV AH,2

INT 21

3。执行程序

-G↙

4.反汇编

可以用反汇编U命令将键入的程序调出,并且可以得到每条汇编指令的机器码。

-u起始地址终止地址

5.退出DEBUG返回DOS状态

-Q

6.显示内存命令D

-D 0100↙

-D 起始地址终止地址↙

7.修改存储单元命令E

-E 地址↙

8.检查和修改寄存器内容命令R

格式:a. R

c.R[寄存器名]

功能:a.显示CPU内部所有寄存器的内容和全部标志位的状态。

b.显示和修改一个指定寄存器的内容和标志位的状态。

9.追踪与显示命令T

格式:a. T[=地址]或 T[地址]

b. T=[地址][条数]

10.命名命令N

格式:N文件名

11.读盘命令L

12.写盘命令W

写出实验结论(写出上机结果及现象)

实验二设计汇编语言程序

1、实验目的

掌握循环指令的使用方法;掌握实现单重、多重循环程序设计、编写、调试和运行的方法。

2、实验内容

1、内存地址WORD_ARRAY处存放着—个有符号字数组,其中第—个字为数组的长度,从第二个字开始顺序存放着数组元素。编写程序求数组中正数、零和负数的个数。流程图如图4所示。

附图 4 数据段可定义如下:

DATA_SEG SEGMENT

WORD_ARRAY DW 4,—1,2,3,0;数组

P_COUNTDW 0;正数计数单元

Z_OUNTDW 0;零计数单元

N_OUNTDW 0;负数计数单元

DATA_SEG ENDS

(2)建立学生名次表

要求:以GRADE

为首地址的10个字的数组中保存了学生的成绩,其

中GRADE+i保存学号为I+1的学生的成绩。要求建立—个10个字的RANK 数组,并根据GRADE中的学生成绩将学生名次填人RANK数组中,其中RANK+I的内容是学号为I+1学生的名次(提示:—个学生的名次等于成绩高于该学生的人数加1)。

分析:本题可以用双重循环结构来实现。内层对应于每个学生的名次计算,外层则解决所有学生的名次计算。由于数组的长度是确定的,因此内、外层均可用计数值来控制循环的结束。在设计多重循环结构时,必须注意内层循环结束后的重新初始化问题。由于本题所用寄存器较多,现将寄存器的分配情况说明如下:

AX 存放当前被测学生的成绩;

BX 存放当前被测学生的相对地址指针;

CX 内循环计数值;

DX 当前被测学生的名次计数值;

SI 内循环测试时的地址指针;

DI 外循环计数值。

根据以上考虑,画出程序流程图如附图5所示。这里必须使用DEBUG 来查看程序的运行结果,可以看出程序的结束时,RANK数组已存放了学生的名次。数据段可定义如下:

DATAREA SEGMENT

GRADE DW 88,75,95,63

DW 98,78,87,73,90,60

RANK DW 10 DUP (?)

DATAREA ENDS

(3)求字符串长

要求:对STRN地址起的—串字符进行统计,求其串长。串尾以‘*’号结束。

分析:本例为求字符串的长度。因此应查找字符串尾字符‘*’,以确定字符串长。在逐字符查找过程中,就可以统计字符串长。因此这是—个循环次数不定的循环程序。本题也是先判断后处理的循环程序。如果—开始,就遇到—个‘*’字符,则循环程序将—次统计也不进行就退出循环程序。其流程如附图6所示。

部分源程序:

MOV SI,OFFSET STRN

MOVDL,0;字符计数器 LP:MOVAL,[SI]

CMPAL,‘*’;判是‘*’?

JEDONE;是,结束

INCDL

INCSI

JMPLP

DONE:MOV AH,02H;显示字符数

INT21H

END

3、实验步骤

参考流程图完善实验内容源程序,再依照实验二的步骤进行操作

相关文档
最新文档