| Index | Manual | Download | Source | Macros | Embedded word Case ins.
Sitemap | Links | Forum | Tests | Projects

# Test t1642: Attributes of symbols in real-more memory model.

See also
  t1643
Tested procedures
  ExpEval ExpEvalData PgmRelocResolve

Source & expected listing t1642.htm.lst
  `| | EUROASM LIST=ON,DUMP=ON,DUMPWIDTH=16 | |;; | |t1642O PROGRAM FORMAT=OMF, \ The linked OMF module. | | MODEL=SMALL,WIDTH=16,LISTMAP=ON,LISTMAP=ON,LISTGLOBALS=ON |[DATA] |[DATA] |0000:9999 | DW 9999h ; Identification of linked default segment [DATA]. |0002:3333 |DataExt: DW 3333h |0004:204F4D46~| DB " OMF segment" |[]:4444 |NumExt:: EQU 4444h | | GLOBAL DataExt,NumExt | | ENDPROGRAM t1642O | **** ListMap "t1642O.obj",model=SMALL,groups=1,segments=1,entry=,stack= | [DGROUP],FA=0000006Bh,RVA=00000000h,size=00000010h=16,group [DATA] | [DATA],FA=0000006Bh,RVA=00000000h,size=00000010h=16,width=16,align=0010h,purpose=DATA | **** ListGlobals "t1642O.obj",Global=0,Public=2,Extern=0,eXport=0,Import=0 | DataExt,[DGROUP]:00000002h,scope='P' | NumExt,[]:00004444h,scope='P' | |;; | |t1642 PROGRAM FORMAT=BIN, \ The main program (statically linked binary image). | | MODEL=SMALL,WIDTH=16,LISTMAP=ON,LISTMAP=ON,LISTGLOBALS=ON,IMAGEBASE=2000h | |[DGROUP] GROUP [DATA] ; Default addressing frame in SMALL model is [DGROUP] for data, rodata and bss segments. |[DATA] |[DATA] SEGMENT ALIGN=16 ; Default data segment. |0000:1111 | DW 1111h ; Identification of the base default segment [DATA]. |[]:5555 |NumSym: EQU 5555h ; Definition of a numeric symbol (doesn't belong to any segment). |[DSECT] |[DSECT] ; Definition of a section [DSECT] in the default segment [DATA], linked to [DATA]:0010h due to alignment 16. |0000:2222 | DW 2222h ; Identification of section [DSECT]. |0002:7777 |DataSym: DW 7777h ; Definition of a memory variable symbol in section [DSECT]. |[DSECT]:0004 |AddrSym: EQU $ ; Definition of a plain address symbol in the section [DSECT]. | | EXTERN DataExt,NumExt ; Declaration of external symbols linked from OMF module. |0004:00000000~| ALIGN 16 ; Start at new line in the hexadecimal dump. | |;; |0010:5555 | DW NumSym: ; Value of scalar symbol is 5555h. |0012:0000 | DW SIZE# NumSym ; Size of scalar symbol is 0. |0014:4E00 | DW TYPE# NumSym ; Type of numeric symbol is 'N'. |0016:5300 | DW SCOPE# NumSym ; Scope of private symbol is 'S'. |0018:5555 | DW OFFSET# NumSym ; Offset of scalar symbol is its value 5555h. |001A:0000 | DW SECTION# NumSym ; Section of scalar symbol is scalar 0. |001C:0000 | DW SEGMENT# NumSym ; Segment of scalar symbol is scalar 0. |001E:0000 | DW GROUP# NumSym ; Group of scalar symbol is scalar 0. |0020:0000 | DW PARA# NumSym ; Paragraph address of scalar symbol is scalar 0. |0022:4E756D53~| DB "NumSym" |0028:00000000~| ALIGN 16 ; Start at new line in the hexadecimal dump. | |;; |0030:[0000] | DW NumExt:: ; Symbol from linked OMF module is its value 4444h. |0032:0000 | DW SIZE# NumExt ; Size of external symbol is 0. |0034:4100 | DW TYPE# NumExt ; Type of external symbol is 'A'. |0036:4500 | DW SCOPE# NumExt ; Scope of external symbol is 'E'. |0038:[0000] | DW OFFSET# NumExt ; Offset of external scalar symbol is its value 4444h. |003A:[0000] | DW SECTION# NumExt ; Section of external scalar symbol is 0. |003C:[0000] | DW SEGMENT# NumExt ; Segment of external scalar symbol is 0. |003E:[0000] | DW GROUP# NumExt ; Group of external scalar symbol is 0. |0040:{0000} | DW PARA# NumExt ; Paragraph address of external scalar is 0. |0042:4E756D45~| DB "NumExt" |0048:00000000~| ALIGN 16 ; Start at new line in the hexadecimal dump. | |;; |0050:[0200] | DW DataSym: ; Address of symbol [DSECT]:2 relocated to [DGROUP]:0012h, assumed DS:0012h. |0052:0200 | DW SIZE# DataSym ; Size of memory WORD variable is 2. |0054:5700 | DW TYPE# DataSym ; Type of memory WORD symbol is 'W'. |0056:5300 | DW SCOPE# DataSym ; Scope of private symbol is 'S'. |0058:0200 | DW OFFSET# DataSym ; Offset of DataSym in section [DSECT] is 2. |005A:[0000] | DW SECTION# DataSym; Address of section [DSECT] is [DGROUP]:DSECT, assumed DS:0010h. |005C:[0000] | DW SEGMENT# DataSym; Address of segment [DATA] is [DGROUP]:DATA, assumed DS:0. |005E:[0000] | DW GROUP# DataSym ; Address of group [DGROUP]:0, assumed DS:0. |0060:{0000} | DW PARA# DataSym ; Paragraph address of [DGROUP] is 0200h when loaded at ImageBase=2000h. |0062:44617461~| DB "DataSym" |0069:00000000~| ALIGN 16 ; Start at new line in the hexadecimal dump. | |;; |0070:[0000] | DW DataExt: ; Symbol from linked OMF module linked as [DGROUP]:00C2h, assumed DS:00C2h. |0072:0000 | DW SIZE# DataExt ; Size of external symbol is 0. |0074:4100 | DW TYPE# DataExt ; Type of external symbol is 'A'. |0076:4500 | DW SCOPE# DataExt ; Scope of external symbol is 'E'. |0078:[0000] | DW OFFSET# DataExt ; Offset of external symbol combined to section [DATA]:DataExt as [DGROUP]:00C2h is 0x00C2. |007A:[0000] | DW SECTION# DataExt; Address of combined section [DATA] is [DGROUP]:DATA, assumed DS:0. |007C:[0000] | DW SEGMENT# DataExt; Address of combined segment [DATA] is [DGROUP]:DATA, assumed DS:0. |007E:[0000] | DW GROUP# DataExt ; Address of group [DGROUP]:0, assumed DS:0. |0080:{0000} | DW PARA# DataExt ; Paragraph address of [DGROUP] is 0200h when loaded at ImageBase=2000h. |0082:44617461~| DB "DataExt" |0089:00000000~| ALIGN 16 ; Start at new line in the hexadecimal dump. | |;; |0090:[0400] | DW AddrSym: ; Address of symbol [DSECT]:4 relocated to [DGROUP]:0014h, assumed DS:0014h. |0092:0000 | DW SIZE# AddrSym ; Size of address symbol is 0. |0094:4100 | DW TYPE# AddrSym ; Type of address symbol is 'A'. |0096:5300 | DW SCOPE# AddrSym ; Scope of private symbol is 'S'. |0098:0400 | DW OFFSET# AddrSym ; Offset of AddrSym in section [DSECT] is 4. |009A:[0000] | DW SECTION# AddrSym; Address of section [DSECT] is [DGRUP]:DSECT, assumed DS:0010h. |009C:[0000] | DW SEGMENT# AddrSym; Address of segment [DATA] is [DGROUP]:DATA, assumed DS:0. |009E:[0000] | DW GROUP# AddrSym ; Address of group [DGROUP]:0, assumed DS:0. |00A0:{0000} | DW PARA# AddrSym ; Paragraph address of [DGROUP] is 0200h when loaded at ImageBase=2000h. |00A2:41646472~| DB "AddrSym" | |;; | | LINK t1642O.obj | |ENDPROGRAM t1642 |# I0560 Linking OMF module "./t1642O.obj". | **** ListMap "t1642.bin",model=SMALL,groups=1,segments=1,entry=,stack= | [DGROUP],FA=00000000h,VA=00002000h,size=000000D0h=208,group [DATA] | [DATA],FA=00000000h,VA=00002000h,size=000000D0h=208,width=16,align=0010h,purpose=DATA | **** ListGlobals "t1642.bin",Global=0,Public=2,Extern=0,eXport=0,Import=0 | DataExt,[DGROUP]:000000C2h,VA=000020C2h,scope='P' | NumExt,[]:00004444h,VA=00004444h,scope='P'`

Expected messages t1642.out
  `I0180 Assembling source file "t1642.htm". I0270 Assembling source "t1642". I0310 Assembling source pass 1. I0330 Assembling source pass 2 - final. I0470 Assembling program "t1642O". "t1642.htm"{61} I0510 Assembling program pass 1. "t1642.htm"{61} I0510 Assembling program pass 2. "t1642.htm"{61} I0530 Assembling program pass 3 - final. "t1642.htm"{61} I0660 16bit SMALL OMF file "t1642O.obj" created, size=135. "t1642.htm"{69} I0650 Program "t1642O" assembled in 3 passes with errorlevel 0. "t1642.htm"{69} I0470 Assembling program "t1642". "t1642.htm"{77} I0510 Assembling program pass 1. "t1642.htm"{77} I0510 Assembling program pass 2. "t1642.htm"{77} I0530 Assembling program pass 3 - final. "t1642.htm"{77} I0560 Linking OMF module "./t1642O.obj". "t1642.htm"{150} I0660 16bit SMALL BIN file "t1642.bin" created, size=208. "t1642.htm"{150} I0650 Program "t1642" assembled in 3 passes with errorlevel 0. "t1642.htm"{150} I0750 Source "t1642" (200 lines) assembled in 2 passes with errorlevel 0. I0860 Listing file "t1642.htm.lst" created, size=7272. I0990 EuroAssembler terminated with errorlevel 0.`

Expected output file t1642. bin

      0000: 11 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ··°°°°°°°°°°°°°°
      0010: 22 22 77 77 00 00 00 00 00 00 00 00 00 00 00 00  ""ww°°°°°°°°°°°°
      0020: 55 55 00 00 4E 00 53 00 55 55 00 00 00 00 00 00  UU°°N°S°UU°°°°°°
      0030: 00 00 4E 75 6D 53 79 6D 00 00 00 00 00 00 00 00  °°NumSym°°°°°°°°
      0040: 44 44 00 00 41 00 45 00 44 44 00 00 00 00 00 00  DD°°A°E°DD°°°°°°
      0050: 00 00 4E 75 6D 45 78 74 00 00 00 00 00 00 00 00  °°NumExt°°°°°°°°
      0060: 12 00 02 00 57 00 53 00 02 00 10 00 00 00 00 00  ·°·°W°S°·°·°°°°°
      0070: 00 02 44 61 74 61 53 79 6D 00 00 00 00 00 00 00  °·DataSym°°°°°°°
      0080: C2 00 00 00 41 00 45 00 C2 00 00 00 00 00 00 00  ¤°°°A°E°¤°°°°°°°
      0090: 00 02 44 61 74 61 45 78 74 00 00 00 00 00 00 00  °·DataExt°°°°°°°
      00A0: 14 00 00 00 41 00 53 00 04 00 10 00 00 00 00 00  ·°°°A°S°·°·°°°°°
      00B0: 00 02 41 64 64 72 53 79 6D 00 00 00 00 00 00 00  °·AddrSym°°°°°°°
      00C0: 99 99 33 33 20 4F 4D 46 20 73 65 67 6D 65 6E 74  ¤¤33¯OMF¯segment

▲Back to the top▲