Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
Changes
Package: nasm-0.98.zip [view]
Upload User: yuppie_zhu
Upload Date: 2007-01-08
Package Size: 535k
Code Size: 3k
Category:
Compiler program
Development Platform:
C/C++
- 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.