嗯?突然发现俺举的例子根本错了……
这个例子更直观
TYPE BASE LENGTH RELOCATION SEGMENT NAME
-----------------------------------------------------
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE "REG BANK 0"
DATA 0008H 0015H UNIT _DATA_GROUP_
IDATA 001DH 0002H UNIT _IDATA_GROUP_
001FH 0001H *** GAP ***
BIT 0020H.0 0001H.3 UNIT ?BI?BLABLABLA
BIT 0021H.3 0000H.1 UNIT _BIT_GROUP_
0021H.4 0000H.4 *** GAP ***
DATA 0022H 005DH UNIT ?DT?BLABLABLA
007FH 0001H *** GAP ***
IDATA 0080H 000CH ABSOLUTE
IDATA 008CH 0001H UNIT ?STACK
To 18楼:
我4楼举的那个例子的确有问题。连接器是知道全256字节都可以间接寻址的,因此70H开始分配单个IDATA块是不会gap的。例如:
TYPE BASE LENGTH RELOCATION SEGMENT NAME
-----------------------------------------------------
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE "REG BANK 0"
IDATA 0008H 0009H UNIT _IDATA_GROUP_
0011H 000FH *** GAP ***
DATA 0020H 0001H BIT_ADDR ?BA?BLABLABLA
BIT 0021H.0 0005H.0 UNIT ?BI?BLABLABLA
BIT 0026H.0 0000H.2 UNIT _BIT_GROUP_
0026H.2 0000H.6 *** GAP ***
DATA 0027H 0036H UNIT ?DT?BLABLABLA
DATA 005DH 0020H UNIT _DATA_GROUP_
IDATA 007DH 003EH UNIT ?ID?BLABLABLA
IDATA 00BBH 0001H UNIT ?STACK
其中idata型全局变量块就是分配到7DH开始的。