汇编实验二
一、实验内容
1. 教材实验 2(P71)
(1)练习「1.预备知识:Debug 的使用」
(2)在练习基础上,完成「2. 实验任务」
二、实验结论
1. 教材实验 2 中「2. 实验任务【1】」(P74)
预计结果:
ax=3130,3332,3332;
bx=3534,3736,3736
sp:第一个0100,其他不清楚
地址:第一个SS:SP=2200:0100,内容3332,其他不清楚
输入代码:
实验结果:
对照总结:
ax,bx第三个结果有错,这段程序实际上让ax,bx互换了位置,因此ax=3736,bx=3332.
至于栈的地址,在寄存器中是SS:SP,SS确定为2200,SP规则为PUSH(入栈)减2,
POP(出栈)加2,所以有如图所示结果。
2.p74实验任务【2】
以上无变化。
可以看出2000:000A~2000:000E是CS:IP的值,后面两位看不出来。
继续进行发现无意义,就此分析,
2000:0007~2000:0008代表ax的值,且执行PUSH命令时整体前移两位(应该是入栈
导致的SP-2).
三、总结与体会
本次实验实践了入栈操作,有很多细节在代码里体现出来,比如字的存放占两字节,按intel
小端法存储。PUSH时SP-2,POP时SP+2。也有尚未解决的问题比如2000:000E处的A3 01
什么意思。