https://www.cnblogs.com/yucloud/p/10943215.html 这一篇里
ORG 0x7c00 就是让主板从内存0x7c00处开始加载我们写的helloos.img。
可以猜得出,day1版本是用了相对地址,在源码中 把helloos.img的开头用0x0000表示,所以实际在哪个内存地址被加载 应该是由汇编编译器或主板BIOS决定的,
而day2用了绝对地址,指定helloos.img要在内存0x7c00处加载。
这三句话中的第一句话:ORG应该是告诉编译器 该程序会被加载到0x7c00 而不是 告诉主板从0x7c00处开始加载
参考资料是:https://zhuanlan.zhihu.com/p/100757410?from_voters_page=true
ORG 原理
ORG是不会产生编译结果的
0xeb, 0x4e, 0x90
这段指令是 jmp short 基于当前ip的地址短跳转0x4e
及day02中的 JMP entry 等于 day01中的 0xeb, 0x4e, 0x90
下面的RESB补0x00中,因为day02指定了ORG 所以要用0x7dfe - $ 此时的
day01由于没有写ORG 直接就是0x1fe - $ 了
day02的$可能等于day01的$ + 0x7c00
所以最后补的0x00数量是一致的