student 联系客服

发布时间 : 星期日 文章student更新完毕开始阅读62218adbad51f01dc281f14f

计算机组成与结构实验指导书

6. 实验六 字符输入/输出程序设计(选做)

2. 实验六:字符输入/输出程序设计。

3. 实验目的:通过上机编程,熟悉汇编语言中对字符进行输入和输出的基本方法;掌

握汇编语言中数据传送指令的灵活使用。 4. 实验要求:

(1) 本实验要求从键盘上键入10个字符,然后以与键入字符先后相反的顺序将

字符显示出来;

(2) 每人一组,独立完成。

(3) 根据实验目的,认真完成实验中给出的任务;根据实验过程和结果,完成实

验报告并及时上交相关文档;在实验报告中应认真写出自己的实验心得和体会;鼓励同学进行交流,但是禁止抄袭!

5. 实验原理及内容:

汇编语言作为一种低级语言,在很多情况下需要直接与硬件进行交互,这在利用汇编语言实现字符的输入和输出时表现的特别明显,有一些程序,输入和输出部分的代码占到了整个程序中的大部分,通过本实验项目希望大家能够对利用汇编语言实现字符的输入和输出有所提高。

本实验要求从键盘上键入10个字符,然后以与键入字符先后相反的顺序显示出来。对问题可以设计如下思路:先分配一个10个字节的存储器缓冲区,存放从键盘上键入的字符。假设缓冲区的起始地址名为BUF。我们将从键盘上接受来的字符依次存放在这片内存里,然后再从最后一个字符开始,逆序把它们显示出来。 6. 实验软硬件环境:奔腾系列机器,操作系统为Dos或者Windows系列,相关的汇

编语言编译工具(MASM、LINK和DEBUG)以及集成编译器。 7. 实验步骤和方法:

本实验重点在于熟悉字符串的输入和输出的一般编程格式,相比于高级语言,汇编语言的输入和输出相对比较复杂一些,需要调用Dos中断来实现。

下面是一个一般的程序实现方法: (1) 分析问题,设计算法;

(2) 根据算法,编制汇编语言程序; (3) 程序汇编为目标文件.obj;

(4) 目标文件.obj链接为可执行文件.exe;

(5) 使用Debug调试运行程序,设置断点,查询相关寄存器内容,调试直至得

到正确的结果;

(6) 根据实验过程和实验结果完成实验报告,并按时上交。

注意:

? 代码段的定义方法;

? Dos中断中21号中断的作用; ? 注意程序的模块化。

8. 实验预习要求:阅读有关Dos中断的相关内容。 9. 思考题:

(1) Dos中断的作用?

(2) 一般Dos中断的调用方法,可否给出一两个例子进行说明。

湖南大学软件学院 23

计算机组成与结构实验指导书

10. 评分标准:

(1) 能正确设计和实现一串字符的输入和输出(80%); (2) 实验报告编写认真详细,按时上交(20%)。

11. 实验报告:要求提交1份实验卡、1份实验报告、源程序代码(电子档)。

实验卡:

“组别”:填写自己的学号;

“实验数据记录”:填写程序的运行结果。 实验报告:

“实验内容”:填写程序实现的代码; “数据记录和计算”和“结论”:给出在实验项目中Dos中断调用的关键部分和注

意点;

“小结”:填写自己的感想。 源代码:

? 提交源程序时应提交整个文件夹,包括asm文件、obj文件、exe文件等; ? 文件夹的命名规则请按照实验要求设定,然后将整个文件夹压缩打包后提

交(包名中应含有学号)。

湖南大学软件学院 24

计算机组成与结构实验指导书

7. 实验七 字符串操作程序设计(选做)

1. 实验七:字符串操作程序设计。

2. 实验目的:通过上机编程,熟悉汇编语言中对字符串进行简单操作的相关指令,并

掌握汇编语言中关于字符串操作的程序设计技巧。 3. 实验要求:

(1) 本实验要求设计并实现一个简单的比较两个字符串是否相等的程序来熟悉

并掌握如何在汇编语言中实现简单的关于字符串操作的程序设计。 (2) 每人一组,独立完成。

(3) 根据实验目的,认真完成实验中给出的任务;根据实验过程和结果,完成实

验报告并及时上交相关文档;在实验报告中应认真写出自己的实验心得和体会;鼓励同学进行交流,但是禁止抄袭!

4. 实验原理及内容:

本实验项目是要去利用汇编语言实现对2个字符串的比较,可以借助C语言中对字符串进行比较的原理来设计和实现。

假设在数据区已存放了两段待比较字符串。算法实现可以非常简单的使用汇编语言中提供的一个字符串的比较指令:CMPS,但在本实验中要求不使用此条指令实现字符串的比较操作。简单的一个思路是:设定一个标志,然后逐个比较这两个字符串的对应位,如果相同则比较下一位,如果有某一位不同,则设置标志为不同,如果两个字符串都比较完仍然相同则表示字符串是相同的。

5. 实验软硬件环境:奔腾系列机器,操作系统为Dos或者Windows系列,相关的汇

编语言编译工具(MASM、LINK和DEBUG)以及集成编译器。 6. 实验步骤和方法:

本实验重点在于对字符串的一些操作指令的熟悉,如果前面给出的一些选作的实验项目已经做过,那么本试验项目就可以比较顺利的进行。

下面给出的是一个按照给定的参考思路的程序实现: (1) 分析问题,设计算法。;

(2) 根据算法,编制汇编语言程序; (3) 程序汇编为目标文件.obj;

(4) 目标文件.obj链接为可执行文件.exe;

(5) 使用Debug调试运行程序,设置断点,查询相关寄存器内容,调试直至得

到正确的结果;

(6) 根据实验过程和实验结果完成实验报告,并按时上交。 注意:

? 程序中在代码段如何定义一个字符串变量? ? 程序中堆栈相关指令的使用;。

7. 实验预习要求:预习堆栈的有关指令和字符串的相关指令内容。 8. 思考题:

(1) 比较利用汇编语言和利用C语言进行字符串操作的异同; (2) 堆栈在汇编语言中是如何实现的;

9. 评分标准:

(1) 能正确设计和实现一个用汇编语言比较2个字符串的程序,运行结果正确

(80%);

湖南大学软件学院 25

计算机组成与结构实验指导书

(2) 实验报告编写认真详细,按时上交(20%)。

10. 实验报告:要求提交1份实验卡、1份实验报告、源程序代码(电子档)。

实验卡:

“组别”:填写自己的学号;

“实验数据记录”:填写程序运行结果。 实验报告:

“实验内容”:填写程序代码; “数据记录和计算”和“结论”:有关程序设计和实现过程中的一些问题及解决方

法总结;

“小结”:填写自己的感想。 源代码:

? 提交源程序时应提交整个文件夹,包括asm文件、obj文件、exe文件等; ? 文件夹的命名规则请按照实验要求设定,然后将整个文件夹压缩打包后提

交(包名中应含有学号)。

湖南大学软件学院 26