EMU8086 GENERATED LISTING. MACHINE CODE <- SOURCE. mycode7.exe -- emu8086 assembler version: 4.08 [ 2024/6/16 -- 19:18:08 ] =================================================================================================== [LINE] LOC: MACHINE CODE SOURCE =================================================================================================== [ 1] : DATA SEGMENT [ 2] 0000: 51 3A 95 8D 90 DATA_START DB 51H,3AH,95H,8DH,90H, [ 3] 0005: A7 C1 77 24 B1 DB 0A7H,0C1H,77H,24H,0B1H [ 4] : DATA ENDS [ 5] : CODE SEGMENT [ 6] : ASSUME CS:CODE,DS:DATA [ 7] 0010: START: [ 8] 0010: B8 00 00 MOV AX,DATA [ 9] 0013: 8E D8 MOV DS,AX [ 10] 0015: 33 DB XOR BX, BX [ 11] 0017: 33 C9 XOR CX, CX [ 12] 0019: 33 D2 XOR DX, DX [ 13] 001B: BE 00 00 MOV SI, OFFSET DATA_START [ 14] 001E: BF 0A 00 MOV DI, 10 [ 15] : [ 16] 0021: COUNT: [ 17] 0021: 8A 04 MOV AL,[SI] [ 18] 0023: E8 11 00 CALL COUNT_PRO [ 19] 0026: 46 INC SI [ 20] 0027: 4F DEC DI [ 21] 0028: 75 F7 JNZ COUNT [ 22] : [ 23] 002A: 89 16 00 30 MOV [3000H],DX [ 24] 002E: 89 1E 00 31 MOV [3100H],BX [ 25] : [ 26] 0032: B8 00 4C MOV AX,4C00H [ 27] 0035: CD 21 INT 21H [ 28] : [ 29] 0037: COUNT_PRO PROC [ 30] 0037: B9 08 00 MOV CX,8 [ 31] 003A: CHECK: [ 32] 003A: D0 E8 SHR AL,1 [ 33] 003C: 73 03 JNC LOW [ 34] 003E: 42 INC DX [ 35] 003F: EB 01 JMP CONTINUE [ 36] 0041: LOW: [ 37] 0041: 43 INC BX [ 38] 0042: CONTINUE: [ 39] 0042: E2 F6 LOOP CHECK [ 40] : [ 41] 0044: C3 RET [ 42] : COUNT_PRO ENDP [ 43] : CODE ENDS [ 44] : END START [ 45] : =================================================================================================== EXE HEADER - bytes from 0000 to 01FF inclusive. 0000: 4D - exe signature (M) 0001: 5A - exe signature (Z) 0002: 45 - bytes on last page (l.byte) 0003: 00 - bytes on last page (h.byte) 0004: 02 - 512 byte pages in file (l.byte) 0005: 00 - 512 byte pages in file (h.byte) 0006: 01 - relocations (l.byte) 0007: 00 - relocations (h.byte) 0008: 20 - paragraphs in header (l.byte) 0009: 00 - paragraphs in header (h.byte) 000A: 00 - minimum memory (l.byte) 000B: 00 - minimum memory (h.byte) 000C: FF - maximum memory (l.byte) 000D: FF - maximum memory (h.byte) 000E: 00 - SS - stack segment (l.byte) 000F: 00 - SS - stack segment (h.byte) 0010: 00 - SP - stack pointer (l.byte) 0011: 00 - SP - stack pointer (h.byte) 0012: CF - check sum (l.byte) 0013: 30 - check sum (h.byte) 0014: 00 - IP - instruction pointer (l.byte) 0015: 00 - IP - instruction pointer (h.byte) 0016: 01 - CS - code segment (l.byte) 0017: 00 - CS - code segment (h.byte) 0018: 1E - relocation table adress (l.byte) 0019: 00 - relocation table adress (h.byte) 001A: 00 - overlay number (l.byte) 001B: 00 - overlay number (h.byte) 001C: 01 - signature (l.byte) 001D: 00 - signature (h.byte) 001E: 01 - relocation table - offset inside segment (l.byte) 001F: 00 - relocation table - offset inside segment (h.byte) 0020: 01 - relocation table - segment anchor (l.byte) 0021: 00 - relocation table - segment anchor (h.byte) 0022 to 01FF - reserved relocation area (00) ===================================================================================================