中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 07:46
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 关于 Nasm 的问题(自己动手写操作系统)
可打印版本  1,693 / 2
第1楼 wjsun84 发表于 2009-06-01 22:54
新手上路 发帖 3 积分 8
关于 Nasm 的问题(自己动手写操作系统)
《自己动手写操作系统》这本书中有提到,nasm 编译 com 文件的时候需要在
代码前面加 org 0100h ,表示将代码读到内存 偏移地址 100h 处执行,我是自学汇编,这个不太了解,请教这是为什么?
第2楼 enjoyer 发表于 2009-06-02 09:49
中级用户 发帖 140 积分 351
DOS下的com格式文件(可执行文件)规定程序从0100处开始执行,一种约定而已。其他情况类似。
第3楼 netbenton 发表于 2009-06-02 09:54
银牌会员 发帖 752 积分 1,916 来自 广西
com程序运行时,系统把程序加载到cs:100,并从偏移100开始运行

抛开其他的不说,
如果你的程序没有绝对地止操作,则罢了,
如果有绝对地上操作的话,不加org 100 从偏移100处开始写代码的话。
肯定出错了!

况且,exe转为com时,直接就是丢弃100地址前的数据。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023