同样可调试拼字程序。 5.思考
怎样将多个单元中的内容拆开。
实验五 无符号十进制数加法实验
1.实验目的
掌握MCS-51 汇编语言设计和调试方法。 2.实验内容
编写并调试一个双字节无符号十进制数加法程序, 其功能为将两个字节压缩BCD 码(即4 位十进制数)的加数和被加数写入由(R0)指出的内部RAM 中, 并将这两个数相加,结果存放于(R1)指向的内部RAM 中。
例如:被加数写入41H、40H 单元,加数写入51H、50H 单元, 运行程序结果写入52H、51H、50H 中,则加法程序功能为: (41H)(40H)+(51H)(50H)→ 52H、51H、50H 3.实验程序参考框图
4.调试方法
⑴ 断点设在BP1,全速带断点运行程序,碰到BP1 后,检查41H、40H、51H 、50H与送入值是否对应。
⑵ 断点设在BP2,带断点(全速断点或慢速断点)运行程序,碰到BP2 后,检查十进制数加法结果52H、51H、50H 的内容是否正确。
若有错误改用单步或断点分段调试程序,排除软件错误, 最后送入几组不同参数来测试程序,直至正确为止。 5.思 考
若将8031 内部RAM 改用片外RAM, 应如何修改无符号十进制加法实验程序。
实验六 数据排序实验
1.实验目的
熟悉8031 指令系统;掌握程序设计方法。 2.实验内容
编写并调试一个排序子程序,其功能为用冒泡法将内部RAM 中n个单字节无符号二进制整数从小到大的次序重新排列, 并将这一列数据从小到大依次序存贮在6000H为起始地址的单元中。 3.实验程序参考框(略) 4.调试方法
⑴打开仿真软件中的内部RAM 窗口,在50H-59H 单元中输入10个任意排列原始数据。
⑵单步运行程序,两数比较后第一个数大于第二个数则所在RAM 位置交换。否
则不变。
③单步运行程序(或断点运行),检查50-59H 内容是否已经按从小到大次序排列。
④单步运行程序(或断点运行),查看6000H 内容是否有10个数据按从小到大次序排列。
⑤程序运行如果不正确,则应分段检查程序, 用单步或断点方式调试程序,排除错误。最后修改软件初始值、交换几组数据测试程序的正确性。
实验七 单字节BCD 码除法实验
1.实验目的
掌握MCS-51 汇编语言程序设计方法。 2.实验内容
编写并调试一个单字节BCD 码除法程序,其功能为单字节BCD 码被除数和除数分别送40H、50H,将这两个数相除,结果商存放在R2,余数存放在R3 中 3.实验程序参考框图(略) 4.调试方法
⑴打开内部RAM 窗口,在40H、50H 送入任意两个数值。 ⑵运行程序,检查计算结果R2(商)、R3(余数)内容是否正确。 ⑶ 程序连续运行,再一次送入被除数、除数后验证运行结果。
若有错误应改用单步,断点分段调试程序,排除软件错误, 最后送入几组不同参数,来测试程序,直至正确为止。
实验八 查找相同数个数
1.实验目的
熟悉汇编语言编程。 2.实验内容
在7000H~700FH 中查出有几个字节是零,统计“00”的个数送R1中。 3.实验程序框图(略) 4.调试方法
用单步运行,分别看R1,DPTR 单元中内容是否与程序一致。 5.思考
要查找30-3F 单元中的相同数个数的程序怎样编号。