汇编语言程序设计:奇偶判断与分支操作

需积分: 0 2 下载量 33 浏览量 更新于2024-11-29 收藏 83KB DOC 举报
"这篇文档是关于汇编语言程序设计的一次实验报告,涵盖了实验目的、内容、流程图、程序代码、DEBUG运行情况以及实验的心得体会。实验主要目标是掌握分支程序的设计,通过判断两个无符号数的奇偶性来决定它们如何存储到特定的内存单元。在程序设计过程中,作者遇到了奇偶判断命令的理解误区,经过研究和讨论才解决问题,最终优化了程序。实验让作者认识到实践经验的重要性,也暴露了在查看存储单元内容命令上的不足。" 在这个汇编语言程序设计实验中,学生需要编写一个程序来处理两个存储在内存中的无符号数(NUM1 和 NUM2)。程序需要根据这两个数的奇偶性进行不同的操作: 1. 如果两个数都是偶数,那么每个数加1后分别存入 DA1 和 DA2 字节单元。 2. 如果一个数是偶数,另一个是奇数,那么奇数存入 DA1,偶数存入 DA2。 3. 如果两个数都是奇数,那么原数分别存入 DA1 和 DA2。 在提供的程序代码中,可以看到使用了 `TEST` 指令来检查 CX 和 DX 寄存器(分别存储 NUM1 和 NUM2)的最低位是否为 1,从而判断数字的奇偶性。`JNP` 指令用于无跳转条件,即如果无奇数位则不跳转,从而执行相应的操作。`INC` 指令用于加1操作,`MOV` 指令用于数据的移动。最后,程序调用 `INT 21H` 退出程序。 实验过程中,作者在理解奇偶判断命令上出现了错误,误以为 `TEST` 指令可以判断数字的奇偶性,实际上它只能检查二进制位。经过与同学的讨论,他们花费了一定时间才修正了这个理解错误,并优化了程序。 实验心得体会部分强调了实际操作对于学习汇编语言的重要性,以及在解决错误中积累经验的价值。尽管作者能够完成编程任务,但还未能熟练地使用查看存储单元内容的命令,这是未来需要改进的地方。通过这次实验,作者不仅加深了对分支程序设计的理解,还体验到了解决问题的乐趣和挑战。