发布于 2007-06-14 21:20:52
0楼
这里所说的地址重叠与交叉应用完全无关。
1、为了避免地址重叠,关键是编制寄存器分配表,即符号表。然后按照分配表使用寄存器。如有添加使用的寄存器,立即把它编入符号表。这样,当你使用符号寻址时,错误的寄存器地址就不会显示出它应有的符号,在程序窗口中很容易就能被发现。
2、寄存器地址(偏移量指针)是有规律的:VB占用1个偏移量;VW占用2个偏移量;VD占用4个偏移量。这是不可改变的。如果定义了VB0,那么下一个V寄存器必须从“1”开始定义;如果定义了VW0,则下一个V寄存器必须从“2”开始;如果定义了VD0,则下一个V寄存器必须从“4”开始。也就是说,定义了VD0,就不能再定义VD2,因为它们共同使用了VB2和VB3,这就是地址重叠。如果在编制符号表时出现地址重叠,符号表最左侧一列会出现警示标志告知你。
3、如果在程序中存在地址重叠(有时是无意中写错的,我有时也会犯此类错误),那么程序在运行过程中肯定会出现错误的数据,这可以通过状态表监视发现那些寄存器出现了不正常的数据,并追踪检查写错的地址。这是需要耐心的,没有捷径可寻。
综上所述,编制合理、完整的地址分配表(符号表)是必须养成的良好习惯。
家养老鼠名MINNIE