Differences between RDOFF versions 1 & 2
========================================
This document is designed primarily for people maintaining code which
uses RDOFF version 1, and would like to upgrade that code to work
with version 2.
The main changes are summarised here:
Overall format
==============
The overall format has changed somewhat since version 1, in order
to make RDOFF more flexible. After the file type identifier (which
has been changed to 'RDOFF2', obviously), there is now a 4 byte
integer describing the length of the object module. This allows
multiple objects to be concatenated, while the loader can easily
build an index of the locations of each object. This isn't as
pointless as it sounds; I'm using RDOFF in a microkernel operating
system, and this is the ideal way of loading multiple driver modules
at boot time.
There are also no longer a fixed number of segments; instead there
is a list of segments, immediately following the header.
Each segment is preceded by a 10 byte header giving information about
that segment. This header has the following format:
Length Description
2 Type
2 Number
2 Reserved
4 Length
'Type' is a number describing what sort of segment it is (eg text, data,
comment, debug info). See 'rdoff2.txt' for a list of the segment types.
'Number' is the number used to refer to the segment in the header records.
Not all segments will be loaded; it is only intended that one code
and one data segment will be loaded into memory. It is possible, however,
for a loaded segment to contain a reference to an unloaded segment.
This is an error, and should be flagged at load time. Or maybe you should
load the segment... its up to you, really.
The segment's data immediately follows the end of the segment header.
HEADER RECORDS
==============
All of the header records have changed in this version, but not
substantially. Each record type has had a content-length code added,
a single byte immediately following the type byte. This contains the
length of the rest of the record (excluding the type and length bytes,
but including the terminating nulls on any strings in the record).
There are two new record types, Segment Relocation (6), and FAR import (7).
The record formats are identical to Relocation (1) and import (2). They are
only of real use on systems using segmented architectures. Systems using
a flat model should treat FAR import (7) exactly the same as an import (2),
and should either flag segment relocation as an error, or attempt to figure
out whether it is a reference to a code or data symbol, and set the value
referenced to the according selector value. I am opting for the former
approach, and would recommend that others working on 32 bit flat systems
do the same.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Internals of the Netwide Assembler ================================== The Netwide Assembler is intended to be a modular, re-usable x86 assembler, which can be embedded in other programs, for example as the back end to a compiler.
资源推荐
资源详情
资源评论
收起资源包目录
NASM-0.98 汇编语言编译器 源代码 (246个子文件)
nasm.1 11KB
ndisasm.1 3KB
proc32.ash 12KB
changed.asm 11KB
ifmacro.asm 6KB
elfso.asm 3KB
aoutso.asm 3KB
expimp.asm 2KB
elftest.asm 2KB
aouttest.asm 2KB
cofftest.asm 2KB
objtest.asm 2KB
bintest.asm 1KB
rdftest1.asm 1KB
multisection.asm 1KB
rdtmain.asm 1KB
rdftest2.asm 692B
lnxhello.asm 684B
rdtlib.asm 619B
binexe.asm 618B
elif.asm 611B
objexe.asm 559B
rdfseg.asm 439B
br560873.asm 424B
testlib.asm 361B
inctest.asm 298B
absolute.asm 295B
rdfseg2.asm 273B
testdos.asm 253B
nasmformat.asm 198B
inc2.asm 166B
loopoffs.asm 161B
inc1.asm 149B
a32offs.asm 100B
nullfile.asm 83B
br560575.asm 74B
AUTHORS 3KB
Makefile.b32 8KB
makedocs.bat 5KB
pmw.bat 317B
Makefile.bc3 7KB
Makefile.bor 4KB
insnsa.c 171KB
insnsd.c 167KB
preproc.c 137KB
outobj.c 78KB
assemble.c 62KB
nasm.c 61KB
outbin.c 52KB
outelf.c 48KB
outieee.c 44KB
ldrdf.c 43KB
parser.c 30KB
nasmlib.c 30KB
outaout.c 30KB
disasm.c 30KB
outcoff.c 26KB
eval.c 23KB
outrdf2.c 22KB
outas86.c 17KB
labels.c 16KB
outrdf.c 16KB
rdoff.c 15KB
rdlar.c 13KB
ndisasm.c 12KB
float.c 12KB
rdflib.c 11KB
rdfdump.c 10KB
insnsn.c 7KB
listing.c 7KB
rdlib.c 7KB
outdbg.c 6KB
rdf2ihx.c 6KB
rdfload.c 5KB
hash.c 4KB
sync.c 3KB
segtab.c 3KB
rdf2bin.c 3KB
symtab.c 3KB
macros.c 2KB
outform.c 2KB
rdx.c 2KB
lin-elf.c 1KB
lin-aout.c 1KB
regflags.c 1KB
regs.c 1KB
aouttest.c 946B
cofftest.c 939B
elftest.c 937B
objlink.c 916B
regdis.c 871B
collectn.c 815B
names.c 781B
bind.c 761B
regvals.c 745B
ChangeLog 2KB
CHANGES 47KB
configure 157KB
COPYING 24KB
insns.dat 120KB
共 246 条
- 1
- 2
- 3
资源评论
- TouchProjects2014-04-06正在学汇编,这资料对我的帮助很大。
- aasdfdf2019-01-05汇编编译器源代码,正需要着
perry_peng
- 粉丝: 76
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实验项目一:线性表(模板 ).docx
- 基于LM317A设计交流220V输入可调5V-12V直流输出稳压电源电路multisim10仿真源文件.zip
- Screenshot_2024-04-25-17-04-18-55_2332cb9b27b851b548ba47a91682926c.jpg
- -基于AVR单片机的LNG加液机控制器设计.pdf
- ThePowerOfNow-EckhartTolle.mobi
- BLOCK_TYPE_HEARTBEAT_D70A3465D4EE4E9_046141_dump_1st.dmp
- 项目方法测试调用接口工具
- studyupdate
- 基于西瓜数据集的决策树实现.zip
- 60套HTML网站源码-响应式-涵盖(简历&作品展示&商业&科技&培训&商城&课设等)-适配移动设备-解压即用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功