EuroAssembler Index Manual Download Source Macros


Sitemap Links Forum Tests Projects

Test t7933: Compile to MZ linking from 2 OMF in LARGE model, ungrouped unaligned setments.


Description
Executable linked from 3 modules in LARGE memory model. Default distance is FAR. Executing t7933.exe should write "AAAA BBBB CCCC".
Source & expected listing t7933.htm.lst
| | EUROASM LIST=ON,DUMP=ON,DUMPWIDTH=22 |4C41524745 |%MODEL %SET LARGE | |t7933A PROGRAM FORMAT=OMF,MODEL=%MODEL,LISTMAP=ON,LISTGLOBALS=ON |[DATA] |[DATA] SEGMENT WIDTH=16,PURPOSE=DATA,COMBINE=PUBLIC,ALIGN=WORD |0000:AAAA | DW 0xAAAA |0002:414141412024 |TxtA:: DB "AAAA $" |0008:434343432024 |TxtC:: DB "CCCC $" |[CODE] |[CODE] SEGMENT WIDTH=16,PURPOSE=CODE,COMBINE=PUBLIC,ALIGN=BYTE |0000:90 | NOP |0001: |Write::PROC ; Write $-terminated string DS:DX to sysout. |0001:B409 | MOV AH,9 |0003:CD21 | INT 0x21 |0005:CB | RET |0006: | ENDP Write:: |0006: |Terminate::PROC ; Terminate program with errorlevel 0. |0006:B8004C | MOV AX,0x4C00 |0009:CD21 | INT 0x21 |000B:CB | RET |000C: | ENDP Terminate:: | |ENDPROGRAM t7933A | **** ListMap "t7933A.obj",groups=0,segments=2,entry=,stack= | [DATA],RVA=00000000h,size=0000000Eh=14,width=16,align=2,purpose=DATA | [CODE],RVA=00000000h,size=0000000Ch=12,width=16,align=1,purpose=CODE | **** ListGlobals "t7933A.obj",Global=0,Public=4,Extern=0,eXport=0,Import=0 | Terminate,[CODE]:00000006h,scope='P' | TxtA,[DATA]:00000002h,scope='P' | TxtC,[DATA]:00000008h,scope='P' | Write,[CODE]:00000001h,scope='P' | |t7933B PROGRAM FORMAT=OMF,MODEL=%MODEL,LISTMAP=ON,LISTGLOBALS=ON |[DATA] |[DATA] SEGMENT WIDTH=16,PURPOSE=DATA,COMBINE=PUBLIC,ALIGN=WORD |0000:BBBBBBBB | DW 0xBBBB,0xBBBB |0004:424242422024 |TxtB:: DB "BBBB $" |000A:[0000] |PtrC:: DW TxtC:: |[CODE] |[CODE] SEGMENT WIDTH=16,PURPOSE=CODE,COMBINE=PUBLIC,ALIGN=DWORD |0000:6690 | NOP2 |0002: |WriteAll::PROC |0002:B8{0000} | MOV AX,PARA# Hdr:: |0005:8ED8 | MOV DS,AX |0007:BA[0000] | MOV DX,TxtA:: |000A:9A[0000]{0000} | CALL Write:: |000F:BA[0400] | MOV DX,TxtB:: |0012:9A[0000]{0000} | CALL Write:: |0017:8B16[0A00] | MOV DX,[PtrC::] |001B:9A[0000]{0000} | CALL Write:: |0020:CB | RET |0021: | ENDP WriteAll:: |[STACK] |[STACK] SEGMENT WIDTH=16,PURPOSE=STACK,COMBINE=STACK |0000:..............~| D 16*WORD | |ENDPROGRAM t7933B | **** ListMap "t7933B.obj",groups=0,segments=3,entry=,stack=[STACK]:00000020h | [DATA],RVA=00000000h,size=0000000Ch=12,width=16,align=2,purpose=DATA | [CODE],RVA=00000000h,size=00000021h=33,width=16,align=4,purpose=CODE | [STACK],RVA=00000000h,size=00000020h=32,width=16,align=16,purpose=STACK | **** ListGlobals "t7933B.obj",Global=0,Public=3,Extern=4,eXport=0,Import=0 | Hdr,[Hdr]:00000000h,scope='E' | PtrC,[DATA]:0000000Ah,scope='P' | TxtA,[TxtA]:00000000h,scope='E' | TxtB,[DATA]:00000004h,scope='P' | TxtC,[TxtC]:00000000h,scope='E' | Write,[Write]:00000000h,scope='E' | WriteAll,[CODE]:00000002h,scope='P' | |t7933 PROGRAM FORMAT=MZ,MODEL=%MODEL,LISTMAP=ON,LISTGLOBALS=ON,ENTRY=Start: |[DATA] |[DATA] SEGMENT WIDTH=16,PURPOSE=DATA |0000:1111 | DW 0x1111 |0002:4575726F417373~|Hdr:: DB "EuroAssembler test t7933.exe",13,10,'$' |[STACK] |[STACK] SEGMENT WIDTH=16,PURPOSE=STACK,COMBINE=STACK |0000:..............~| D 8*WORD |[CODE] |[CODE] SEGMENT WIDTH=16,PURPOSE=CODE,COMBINE=PUBLIC,ALIGN=OWORD |0000:90 | NOP |0001: |Start: |0001:9A[0000]{0000} | CALL WriteAll:: |0006:9A[0000]{0000} | CALL Terminate:: |000B:C3 | RET | | LINK "t7933A.obj" | | LINK "t7933B.obj" | |ENDPROGRAM t7933 |# I0560 Linking OMF module ".\t7933A.obj". |# I0560 Linking OMF module ".\t7933B.obj". | **** ListMap "t7933.exe",groups=3,segments=3,entry=[CODE]:00000001h,stack=[STACK]:00000030h | [DATA],RVA=00000000h,size=0000003Ch=60,group [DATA] | [DATA],RVA=00000000h,size=0000003Ch=60,width=16,align=16,purpose=DATA | [CODE],RVA=00000040h,size=00000039h=57,group [CODE] | [CODE],RVA=00000040h,size=00000039h=57,width=16,align=16,purpose=CODE | [STACK],RVA=00000080h,size=00000030h=48,group [STACK] | [STACK],RVA=00000080h,size=00000030h=48,width=16,align=16,purpose=STACK | **** ListGlobals "t7933.exe",Global=6,Public=3,Extern=0,eXport=0,Import=0 | Hdr,[DATA]:00000002h,RVA=00000002h,scope='G' | PtrC,[DATA]:0000003Ah,RVA=0000003Ah,scope='P' | Start,[CODE]:00000001h,RVA=00000041h,scope='P' | Terminate,[CODE]:00000012h,RVA=00000052h,scope='G' | TxtA,[DATA]:00000024h,RVA=00000024h,scope='G' | TxtB,[DATA]:00000034h,RVA=00000034h,scope='P' | TxtC,[DATA]:0000002Ah,RVA=0000002Ah,scope='G' | Write,[CODE]:0000000Dh,RVA=0000004Dh,scope='G' | WriteAll,[CODE]:0000001Ah,RVA=0000005Ah,scope='G'
Expected messages t7933.out
I0180 Assembling source file "t7933.htm". I0270 Assembling source "t7933". I0310 Assembling source pass 1. I0330 Assembling source pass 2 - final. I0470 Assembling program "t7933A". "t7933.htm"{49} I0510 Assembling program pass 1. "t7933.htm"{49} I0510 Assembling program pass 2. "t7933.htm"{49} I0530 Assembling program pass 3 - final. "t7933.htm"{49} I0660 16bit LARGE OMF file "t7933A.obj" created, size=180. "t7933.htm"{66} I0650 Program "t7933A" assembled in 3 passes with errorlevel 0. "t7933.htm"{66} I0470 Assembling program "t7933B". "t7933.htm"{75} I0510 Assembling program pass 1. "t7933.htm"{75} I0510 Assembling program pass 2. "t7933.htm"{75} I0530 Assembling program pass 3 - final. "t7933.htm"{75} I0660 16bit LARGE OMF file "t7933B.obj" created, size=279. "t7933.htm"{95} I0650 Program "t7933B" assembled in 3 passes with errorlevel 0. "t7933.htm"{95} I0470 Assembling program "t7933". "t7933.htm"{108} I0510 Assembling program pass 1. "t7933.htm"{108} I0510 Assembling program pass 2. "t7933.htm"{108} I0530 Assembling program pass 3 - final. "t7933.htm"{108} I0560 Linking OMF module ".\t7933A.obj". "t7933.htm"{122} I0560 Linking OMF module ".\t7933B.obj". "t7933.htm"{122} I0660 16bit LARGE MZ file "t7933.exe" created, size=217. "t7933.htm"{122} I0650 Program "t7933" assembled in 3 passes with errorlevel 0. "t7933.htm"{122} I0750 Source "t7933" (192 lines) assembled in 2 passes with errorlevel 0. I0860 Listing file "t7933.htm.lst" created, size=5188. I0990 EuroAssembler terminated with errorlevel 0.
Expected output file t7933. exe
0000: 4D 5A D9 00 01 00 06 00 06 00 04 00 FF FF 08 00  MZ¤°·°·°·°·°¤¤·°
0010: 30 00 A4 CF 01 00 04 00 40 00 00 00 00 00 00 00  0°¤¤·°·°@°°°°°°°
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  °°°°°°°°°°°°°°°°
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  °°°°°°°°°°°°°°°°
0040: 04 00 04 00 09 00 04 00 1B 00 04 00 25 00 04 00  ·°·°·°·°·°·°%°·°
0050: 2D 00 04 00 36 00 04 00 00 00 00 00 00 00 00 00  -°·°6°·°°°°°°°°°
0060: 11 11 45 75 72 6F 41 73 73 65 6D 62 6C 65 72 20  ··EuroAssembler¯
0070: 74 65 73 74 20 74 37 39 33 33 2E 65 78 65 0D 0A  test¯t7933.exe·¬
0080: 24 00 AA AA 41 41 41 41 20 24 43 43 43 43 20 24  $°¤¤AAAA¯$CCCC¯$
0090: BB BB BB BB 42 42 42 42 20 24 2A 00 00 00 00 00  ¤¤¤¤BBBB¯$*°°°°°
00A0: 90 9A 1A 00 04 00 9A 12 00 04 00 C3 90 B4 09 CD  ¤¤·°·°¤·°·°¤¤¤·¤
00B0: 21 CB B8 00 4C CD 21 CB 66 90 B8 00 00 8E D8 BA  !¤¤°L¤!¤f¤¤°°¤¤¤
00C0: 24 00 9A 0D 00 04 00 BA 34 00 9A 0D 00 04 00 8B  $°¤·°·°¤4°¤·°·°¤
00D0: 16 3A 00 9A 0D 00 04 00 CB                       ·:°¤·°·°¤

▲Back to the top▲