汇编临时小结

来源:互联网 发布:linux文件夹权限设置 编辑:程序博客网 时间:2024/06/11 17:00

个人总结用的, 看了被误导不要怪我。

在写汇编程序时, 经常看到最前面有这么一句“org 07c00h”。 这个东西它的意思是,该段代码在0000:0x7c00处执行。

 

看示例代码:

 

 

如果这段代码在0x7c00处执行, 但最前面改成“org0100h”有没有问题呢?

首先看jmp指令, 它的计算方法是跳转标号与当前标号的差加至当前IP, 所以没有问题。

call指令和jmp指令差不多,就不说了。

 

但注意到, 这个程序是用来打印“hello wupeng”这个字符串的, 字符串偏移地址保存在bp中, 通过ES:BP寻址。显然,若ScreenMsg标号的地址不是其加载至内存的实际地址,寻址字符串时是读不到正确的字符串的。

 

多说一句: 实模式下代码好像就一个段呢,默认都是0000, 保护模式下段基址是32位的,实模式下实际物理地址可以直接拿来当保护模式中的段基址。

原创粉丝点击