大连工大计算机原理:无符号乘法程序设计与实验报告

需积分: 9 1 下载量 159 浏览量 更新于2024-07-31 1 收藏 104KB DOCX 举报
本篇文档是大连工业大学计算机原理与接口技术课程设计报告的一部分,主要探讨了三十二位无符号乘法的程序设计。该部分设计任务要求学生使用十六位乘法指令(如MUL指令)实现三十二位无符号数的乘法,最终得到一个64位的结果。具体步骤包括: 1. **程序设计任务**:设计一个程序,让用户输入两个八位无符号数(以十进制或十六进制表示),通过十六位乘法指令计算乘积,并将结果以十六进制形式显示在屏幕上。 2. **设计要求**: - 输入:用户通过键盘输入两个8位数(每个数占用32字节的缓冲区)。 - 数据处理:将输入的ASCII字符转换为数值,然后对每位进行十六位乘法。 - 结果处理:将四个十六位乘法的结果相加,再将其转换回十六进制表示。 - 输出:结果显示在屏幕上,如示例中的测试数据所示。 3. **程序设计过程**: - 定义数据段:创建一个包含10个字节的缓冲区(`buffdb10`)存储输入、乘积和临时数据。 - 用户输入:提示用户输入第一个和第二个8位数,例如`Inputthe first number:`和`Input the second number:`。 - 数据处理:输入字符转化为数值,如将'12345678'转换为数值12345678。 - 十六位乘法:将32位拆分成两个16位数进行乘法运算。 - 结果合并:将四个16位乘积相加得到最终结果。 - 结果输出:将十六进制结果输出到屏幕上。 4. **示例与测试**: - 测试了几个不同的输入组合,如('12345678', '56780987')的乘积为06261E4248E3D148,('abcdabcd', 'abcdabcd')的乘积为0779D8229等。 5. **程序源代码**:包含了数据段定义、缓冲区初始化、输入提示字符串(`p1`和`p2`)、以及用户输入后的处理流程,但具体内容未在提供的文本中展示。 通过这个课程设计,学生可以实践计算机原理中的算术逻辑单元(ALU)操作,理解如何处理大数运算,同时锻炼键盘输入处理、数据转换和结果输出的编程技巧。这份报告不仅有助于巩固理论知识,还能提升学生的实际操作能力。