EuroAssembler Index Manual Download Source Macros


Sitemap Links Forum Tests Projects

Test t8750: COFF object module for 16bit DOS


Tested procedures
PfcomCompile  
Source & expected listing t8750.htm.lst
| | EUROASM AUTOSEGMENT=ON,CPU=086,DUMPWIDTH=24 |7438373530 |%test %SET t8750 ; COFF.D16 |00000000: | | |%test PROGRAM FORMAT=COFF,WIDTH=16,MODEL=SMALL | |;; |[CODE] ::::Section changed. |0000: |Write.D16:: PROC ; Display ASCIIZ string pointed to by DS:SI using DOS. |0000:B402 | MOV AH,02h ; DOS service Teletype output. |0002:8A14 |.1:MOV DL,[SI] ; Load a character from string to DL, increment SI. |0004:80FA00 | CMP DL,0 ; Test if zero-terminator reached. |0007:7405 | JE .9: ; Exit the procedure if AL=0. |0009:CD21 | INT 21h ; Otherwise display the character DL and advance screen cursor. |000B:46 | INC SI ; Let DS:SI point to the next character. |000C:EBF4 | JMP .1: ; Repeat with following characters. |000E:C3 |.9:RET ; AX,BX,SI are clobbered. |000F: | ENDP Write.D16:: | |;; |000F: |Beep.D16:: PROC ; Display message "Beeping.." and play a sound using BIOS. |000F:BE[0000] | MOV SI,=B"Beeping..." ; Define a literal string. Assume DS=PARA# [RODATA}. |0012:E8EBFF | CALL Write.D16:: ; Display the notification "Beeping...". |0015:BE[0000] | MOV SI,=W(0x0007) ; Define ASCIIZ string with BEL character in [RODATA]. |0018:E8E5FF | CALL Write.D16:: ; Play the beep sound. |001B:C3 | RET ; AX,BX,SI are clobbered. |001C: | ENDP Beep.D16:: | |;; |001C: |Exit.D16:: PROC ; Display message "End", terminate Terminate the program. |001C:BE[0000] | MOV SI,.M: ; String "End" will be defined in segment [BSS] at DS:SI. |001F:C704456E | MOVW [SI+0],"En" ; Dynamically initialize the notification string. |0023:C744026420 | MOVW [SI+2],"d " ; Assume DS=PARA# [BSS]. |0028:C744040A0D | MOVW [SI+4],0x0D0A ; CR+LF. |002D:C6440600 | MOVB [SI+6],0 ; Zero-terminate the notification. |0031:E8CCFF | CALL Write.D16:: ; Display notification "End". |0034:B44C | MOV AH,4Ch ; DOS function EXIT. |0036:CD21 | INT 21h ; Terminate program and return to DOS. |[BSS] ::::Section changed. |0000:.............. |.M:DB 7*BYTE ; Reserve space for ASCIIZ string "End" in [BSS] segment. |[CODE] ::::Section changed. |0038: | ENDP Exit.D16:: | |;; |[DATA] ::::Section changed. |0000:313662697420534D~|Msg::DB '%^WIDTH[]bit %^MODEL %^FORMAT program "%^OUTFILE".',13,10,0 |[@LT2] ====ListLiterals in section [@LT2]. |0000:0700 =W(0x0007) |[@LT1] ====ListLiterals in section [@LT1]. |0000:42656570696E672E~=B"Beeping..." | | ENDPROGRAM %test | **** ListMap "t8750.obj",model=SMALL,groups=2,segments=4,entry=,stack= | [CGROUP],FA=000000B4h,RVA=00000000h,size=00000038h=56,group [CODE] | [CODE],FA=000000B4h,RVA=00000000h,size=00000038h=56,width=16,align=0010h,purpose=CODE | [DGROUP],FA=00000000h,RVA=00000000h,size=00000028h=40,group [RODATA] [DATA] [BSS] | [RODATA],FA=0000010Ah,RVA=00000000h,size=0000000Dh=13,width=16,align=0010h,purpose=RODATA+LITERAL | [DATA],FA=00000117h,RVA=00000000h,size=00000028h=40,width=16,align=0010h,purpose=DATA | [BSS],FA=00000000h,RVA=00000000h,size=00000007h=7,width=16,align=0010h,purpose=BSS | **** ListGlobals "t8750.obj",Global=0,Public=4,Extern=0,eXport=0,Import=0 | Beep.D16,[CGROUP]:0000000Fh,scope='P' | Exit.D16,[CGROUP]:0000001Ch,scope='P' | Msg,[DGROUP]:00000000h,scope='P' | Write.D16,[CGROUP]:00000000h,scope='P'
Expected messages t8750.out
I0180 Assembling source file "t8750.htm". I0270 Assembling source "t8750". I0310 Assembling source pass 1. I0330 Assembling source pass 2 - final. I0470 Assembling program "t8750". "t8750.htm"{51} I0510 Assembling program pass 1. "t8750.htm"{51} I0510 Assembling program pass 2. "t8750.htm"{51} I0530 Assembling program pass 3 - final. "t8750.htm"{51} I0660 16bit SMALL COFF file "t8750.obj" created, size=773. "t8750.htm"{93} I0650 Program "t8750" assembled in 3 passes with errorlevel 0. "t8750.htm"{93} I0750 Source "t8750" (177 lines) assembled in 2 passes with errorlevel 0. I0860 Listing file "t8750.htm.lst" created, size=4172. I0990 EuroAssembler terminated with errorlevel 0.
Expected output file t8750. obj
0000: 4C 01 04 00 00 00 00 00 40 01 00 00 15 00 00 00  L··°°°°°@·°°·°°°
0010: 00 00 00 00 43 4F 44 45 00 00 00 00 00 00 00 00  °°°°CODE°°°°°°°°
0020: 00 00 00 00 38 00 00 00 B4 00 00 00 EC 00 00 00  °°°°8°°°¤°°°¤°°°
0030: 00 00 00 00 03 00 00 00 20 00 50 60 52 4F 44 41  °°°°·°°°¯°P`RODA
0040: 54 41 00 00 00 00 00 00 00 00 00 00 0D 00 00 00  TA°°°°°°°°°°·°°°
0050: 0A 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ¬·°°°°°°°°°°°°°°
0060: 40 00 50 40 44 41 54 41 00 00 00 00 00 00 00 00  @°P@DATA°°°°°°°°
0070: 00 00 00 00 28 00 00 00 17 01 00 00 00 00 00 00  °°°°(°°°··°°°°°°
0080: 00 00 00 00 00 00 00 00 40 00 50 C0 42 53 53 00  °°°°°°°°@°P¤BSS°
0090: 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00  °°°°°°°°°°°°·°°°
00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  °°°°°°°°°°°°°°°°
00B0: 80 00 50 C0 B4 02 8A 14 80 FA 00 74 05 CD 21 46  ¤°P¤¤·¤·¤¤°t·¤!F
00C0: EB F4 C3 BE 02 00 E8 EB FF BE 00 00 E8 E5 FF C3  ¤¤¤¤·°¤¤¤¤°°¤¤¤¤
00D0: BE 00 00 C7 04 45 6E C7 44 02 64 20 C7 44 04 0A  ¤°°¤·En¤D·d¯¤D·¬
00E0: 0D C6 44 06 00 E8 CC FF B4 4C CD 21 10 00 00 00  ·¤D·°¤¤¤¤L¤!·°°°
00F0: 08 00 00 00 01 00 16 00 00 00 08 00 00 00 01 00  ·°°°·°·°°°·°°°·°
0100: 1D 00 00 00 02 00 00 00 01 00 07 00 42 65 65 70  ·°°°·°°°·°·°Beep
0110: 69 6E 67 2E 2E 2E 00 31 36 62 69 74 20 53 4D 41  ing...°16bit¯SMA
0120: 4C 4C 20 43 4F 46 46 20 70 72 6F 67 72 61 6D 20  LL¯COFF¯program¯
0130: 22 74 38 37 35 30 2E 6F 62 6A 22 2E 0D 0A 00 00  "t8750.obj".·¬°°
0140: 2E 66 69 6C 65 00 00 00 00 00 00 00 FE FF 00 00  .file°°°°°°°¤¤°°
0150: 67 01 74 38 37 35 30 2E 68 74 6D 00 00 00 00 00  g·t8750.htm°°°°°
0160: 00 00 00 00 42 53 53 00 00 00 00 00 00 00 00 00  °°°°BSS°°°°°°°°°
0170: 04 00 00 00 03 01 07 00 00 00 00 00 00 00 00 00  ·°°°···°°°°°°°°°
0180: 00 00 00 00 00 00 00 00 43 4F 44 45 00 00 00 00  °°°°°°°°CODE°°°°
0190: 00 00 00 00 01 00 00 00 03 01 38 00 00 00 03 00  °°°°·°°°··8°°°·°
01A0: 00 00 00 00 00 00 00 00 00 00 00 00 44 41 54 41  °°°°°°°°°°°°DATA
01B0: 00 00 00 00 00 00 00 00 03 00 00 00 03 01 28 00  °°°°°°°°·°°°··(°
01C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  °°°°°°°°°°°°°°°°
01D0: 52 4F 44 41 54 41 00 00 00 00 00 00 02 00 00 00  RODATA°°°°°°·°°°
01E0: 03 01 0D 00 00 00 00 00 00 00 00 00 00 00 00 00  ···°°°°°°°°°°°°°
01F0: 00 00 00 00 00 00 00 00 04 00 00 00 02 00 00 00  °°°°°°°°·°°°·°°°
0200: 02 00 0C 00 03 00 00 00 00 00 13 00 00 00 00 00  ·°·°·°°°°°·°°°°°
0210: 00 00 02 00 0D 00 03 00 40 4C 54 31 00 00 00 00  °°·°·°·°@LT1°°°°
0220: 02 00 00 00 02 00 01 01 03 00 40 4C 54 32 00 00  ·°°°·°···°@LT2°°
0230: 00 00 00 00 00 00 02 00 01 01 03 00 00 00 00 00  °°°°°°·°···°°°°°
0240: 1E 00 00 00 00 00 00 00 04 00 0C 00 03 00 00 00  ·°°°°°°°·°·°·°°°
0250: 00 00 29 00 00 00 02 00 00 00 01 00 00 00 03 00  °°)°°°·°°°·°°°·°
0260: 00 00 00 00 35 00 00 00 0E 00 00 00 01 00 00 00  °°°°5°°°·°°°·°°°
0270: 03 00 42 65 65 70 2E 44 31 36 0F 00 00 00 01 00  ·°Beep.D16·°°°·°
0280: 01 02 02 00 45 78 69 74 2E 44 31 36 1C 00 00 00  ···°Exit.D16·°°°
0290: 01 00 01 02 02 00 4D 73 67 00 00 00 00 00 00 00  ·°···°Msg°°°°°°°
02A0: 00 00 03 00 0C 00 02 00 00 00 00 00 41 00 00 00  °°·°·°·°°°°°A°°°
02B0: 00 00 00 00 01 00 01 02 02 00 4B 00 00 00 3D 42  °°°°·°···°K°°°=B
02C0: 22 42 65 65 70 69 6E 67 2E 2E 2E 22 00 3D 57 28  "Beeping..."°=W(
02D0: 30 78 30 30 30 37 29 00 45 78 69 74 2E 44 31 36  0x0007)°Exit.D16
02E0: 2E 4D 00 57 72 69 74 65 2E 44 31 36 2E 31 00 57  .M°Write.D16.1°W
02F0: 72 69 74 65 2E 44 31 36 2E 39 00 57 72 69 74 65  rite.D16.9°Write
0300: 2E 44 31 36 00                                   .D16°

▲Back to the top▲