【实验目的】
掌握常用伪指令的使用方法。熟悉定义数据、定义程序模式、分配存储区等功能。实践课程中的实例。
【实验内容】
1. 验证P110 MOV AX, VAL*4/2; MOV AX, [VAL*4/2]; 这两个指令的运行结果是否一样。
编写如下程序并用debug进行单步运行,查看AX内的值:
经验证,两个语句结果一样。说明是否加中括号对数字表达式的汇编没有影响,都直接被汇编成计算得到的数值。
2. 验证例题6.11,初始分配的cs段地址和反汇编以后的cs段地址是否一致,体会main proc far 中far的属性设定含义。
使用Debug反汇编查看cs段地址:
使用-r查看初始分配的cs段地址:
可以看到两个cs段地址是一样的。
3. 编程序实现两个双精度数 X=20034980H 和 Y=1008E699H 加法运算,结果保留在 Z 中。
使用Debug查看反汇编的代码:
可以看到Z存放在数据段的[0008:000A]。运行程序后使用D命令查看该数据段存放的内容:
可以看到[0008:000A]存放的数据为19 30 0C 30.根据小端法的存储结构,对应的Z的数据为300C3019。经计算器验证为正确答案。