|
本单元的重点是:
- 直接绝对远转移指令-->直接意味着目标地址是直接在指令中给出的,不需要再次访问内存;绝对意味着指定的地址是一个绝对地址,不是相对量或者距离;远转移特指段间转移,即,需要同时改变段地址和段内偏移量。
- 相对近转移指令-->近转移意味着转移的目标位置不远,位于当前段内;相对意味着指令中给出的不是目标位置的地址,而是距离。相对转移指令是用得最多的。为什么要使用相对转移?考虑程序浮动的情况,如果使用绝对地址,则程序加载的位置变了,目标位置的地址也会改变,从而必须修改jmp指令中的目标地址。使用相对近转移,只要相对距离不变,程序加载位置的变化对jmp指令的正确执行没有任何影响。
- 伪指令times。问得较多的问题是,times 203 db 0中的203是怎么来的。答案是,原先不知道,但通过尝试才知道。也就是先通过编译,得到前面的内容有多少个字节,再加上2个字节的0x55和0xAA,得到一个和数。用512减去这个和数,就知道在这个位置填补203个字节。
- Bochs的安装;
- 在Bochs中调试程序的技巧。你需要上机实践并记住本章所有的调试命令及其功能。有关Bochs的配置问题参见配书文件包。这里是另一个问得较多的问题:Bochs启动问题:couldn't open ROM image file ... - 配套资料和资源 - 鼠侠网 - 李忠,传播不一样的计算机知识。
本单元内容较多较杂,还有上机操作的部分,可能会有疑难问题。不过没有关系,有问题可随时在下面提出。 |