第二次上机题
一、目的
1. 掌握基本的程序设计方法;
2. 掌握较大规模的程序调试方法; 3. 熟悉双重循环程序设计的方法; 4.熟悉常用的机器指令
5. 熟悉串输入、串输出、字符输入的系统功能调用方法; 6. 掌握子程序设计的方法;
7、掌握中断矢量表的有关概念
由于程序会比较长,请大家务必提前就做好准备工作!按题后的“说明”有序的开展设计和编程工作。
二、题目
1、数串转换
设 BUF DW 123, 0, -100, -50, +300
以十进制形式依次输出BUF中的各个数。(对于负数,要输出负号) 要求: “数值数据到串的转换”用子程序实现。该子程序只实现一个数
值数据的转换成串的功能。
要有适当的注释,入口参数,出口参数,寄存器分配,算法思想等。
2、排序及数串转换
对题1,BUF中的5个数按从大到小顺序排序,然后以十进制形式从大到
小输出。
要求:“排序”使用子程序实现; 其他要求同题1。
3、用三种方式获取中断类型码10H对应的中断处理程序的入口地址。
① 直接运行调试工具(TD.EXE),观察中断矢量表中的信息;
② 编写程序,用 DOS系统功能调用方式获取,观察相应的出口参数与①
看到的结果是否相同 (参考:P329,35H号功能调用,TD观看取出的入口地址即可)。
③ 编写程序,直接读取相应内存单元(即中断矢量表中相应项的信息),
观察读到的数据与 ① 看到的结果是否相同 (使用TD观看即可)。
4、串数转换、排序、数串转换 【选做题】
输入给定个数的数字串,对它们从大到小进行排序并输出。 运行示例,输入5个数字串,排序后输出。 Please input 5 numbers: 123↙
0↙ -100↙ -50↙ +300↙ Sort Result:
300 123 0 -50 -100
要求:
(1) “数字字符串到数值的转换”用子程序实现。要求该子程序只实现一个数字字符串的转换;
(2) “排序”使用子程序实现;
(3) “数值数据到串的转换”用子程序实现
(4) 在子程序之前,一定要有子程序的功能说明,入口参数及出口参数说明;子程序中寄存器、存储单元的分配情况
指导:
(1) 写下必要的设计文档可以帮组我们理清思路,减少写程序时的错误; (2) 同学们可以相互讨论算法思想,理清思路;
(3) 分模块写,分模块调,这样更容易确定错误的位置,增强信心; 例如,在运行完排序程序段后,设置断点,观察数据区中的排序结果是否正确。
(4) 在纸上先写出程序,然后检查一遍,更容易发现错误。
5、串分割、串数转换、排序、数串转换 【选做题】
对题3进行一点功能修改。
(1) 在一行上输入以一个或者多个空格作为分隔符的数字串;例如 Please input numbers:
123 0 -100 -50 +300 ↙
(2) 对输入的数串进行排序,并输出排序结果。输出时,用户可以指定以十进制,还是十六进制的形式输出。
例如,用户选择用十六进制,还是十进制的输出; Output Format (1: decimal; 2 :hex) : 1↙
300 123 0 -50 -100
因篇幅问题不能全部显示,请点此查看更多更全内容