Test t9181 :
Fixing pass
Manage t9181
Description
Size of this executable program (OFFSET# SegmEnd:) oscillates between 184h and 185h in assembly passes, which evocates the fixing pass when the pass number approaches its allowed maximum MAXPASSES=9.
The fixing pass inserts supplementary alignment byte at offset 0181h.
Tested procedures
PassInspect
Source & expected listing t9181.htm.lst
| | EUROASM DUMP=ON,DUMPWIDTH=20,DUMPALL=OFF,LISTVAR=YES
| |t9181 PROGRAM FORMAT=COM,MODEL=TINY,WIDTH=16, \
| | LISTMAP=OFF,LISTGLOBALS=OFF,MAXPASSES=9
|[COM] ::::Section changed.
|0100:90 | NOP ; Let the segment size intentionally oscillate between 0185h and 0184h.
|FALSE | %IF OFFSET# SegmEnd: <= 0184h ; The JMP then oscillates
| | JMP NearDist: ; between NEAR and SHORT encodings
|TRUE | %ELSE ; which involves segment size.
|0101:EB7F | JMP ShortDist:
| | %ENDIF
|0103:000000000000~| D 7Eh * BYTE 0 ; Some stuff to stall off the targets.
|0181:90 ....AutoAlignment stuff.
|0182:C3 |ShortDist: RET
|0183:90 | NOP
|0184:C3 |NearDist: RET
|[COM]:0185 |SegmEnd: EQU $
| | ENDPROGRAM t9181
Expected messages t9181.out
I0180 Assembling source file "t9181.htm".
I0270 Assembling source "t9181".
I0310 Assembling source pass 1.
I0330 Assembling source pass 2 - final.
I0470 Assembling program "t9181". "t9181.htm"{53}
I0510 Assembling program pass 1. "t9181.htm"{53}
I0510 Assembling program pass 2. "t9181.htm"{53}
I0510 Assembling program pass 3. "t9181.htm"{53}
I0510 Assembling program pass 4. "t9181.htm"{53}
I0510 Assembling program pass 5. "t9181.htm"{53}
I0510 Assembling program pass 6. "t9181.htm"{53}
I0510 Assembling program pass 7. "t9181.htm"{53}
I0520 Assembling program pass 8 - fixing. "t9181.htm"{53}
I0530 Assembling program pass 9 - final. "t9181.htm"{53}
I0660 16bit TINY COM file "t9181.com" created, size=133. "t9181.htm"{68}
I0650 Program "t9181" assembled in 9 passes with errorlevel 0. "t9181.htm"{68}
I0750 Source "t9181" (93 lines) assembled in 2 passes with errorlevel 0.
I0860 Listing file "t9181.htm.lst" created, size=1089.
I0990 EuroAssembler terminated with errorlevel 0.
▲Back to the top▲