EMU8086 GENERATED LISTING. MACHINE CODE <- SOURCE. noname.exe -- emu8086 assembler version: 4.08 [ 2024/6/16 -- 19:05:48 ] =================================================================================================== [LINE] LOC: MACHINE CODE SOURCE =================================================================================================== [ 1] : DATA SEGMENT [ 2] 0000: 56 4D 5D 52 64 DATA_START DB 56H, 4DH, 5DH, 52H, 64H, [ 3] 0005: 47 51 5B 4F 61 DB 47H, 51H, 5BH, 4FH, 61H [ 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: BE 00 00 MOV SI,OFFSET DATA_START [ 11] 0018: BF 00 30 MOV DI,3000H [ 12] 001B: B9 0A 00 MOV CX,10 [ 13] 001E: LOOP0: [ 14] 001E: 8B 04 MOV AX,[SI] [ 15] 0020: 89 05 MOV [DI],AX [ 16] 0022: 46 INC SI [ 17] 0023: 47 INC DI [ 18] 0024: E2 F8 LOOP LOOP0 [ 19] : [ 20] 0026: BE 00 00 MOV SI,OFFSET DATA_START [ 21] 0029: B9 0A 00 MOV CX,10 [ 22] 002C: BF 00 31 MOV DI,3100H [ 23] 002F: LOOP1: [ 24] 002F: 8A 04 MOV AL,[SI] [ 25] 0031: E8 0B 00 CALL RANK [ 26] 0034: 46 INC SI [ 27] 0035: 88 15 MOV [DI],DL [ 28] 0037: 47 INC DI [ 29] 0038: E2 F5 LOOP LOOP1 [ 30] : [ 31] 003A: B8 00 4C MOV AX,4C00H [ 32] 003D: CD 21 INT 21H [ 33] 003F: RANK PROC [ 34] 003F: 51 PUSH CX [ 35] 0040: 56 PUSH SI [ 36] 0041: B9 0A 00 MOV CX,10 [ 37] 0044: BE 00 00 MOV SI,OFFSET DATA_START [ 38] 0047: B2 01 MOV DL,1 [ 39] 0049: LOOP2: [ 40] 0049: 8A 1C MOV BL,[SI] [ 41] 004B: 3A C3 CMP AL,BL [ 42] 004D: 72 02 JB ADD1 [ 43] 004F: EB 04 JMP CONTINUE [ 44] 0051: ADD1: [ 45] 0051: FE C2 INC DL [ 46] 0053: EB 00 JMP CONTINUE [ 47] 0055: CONTINUE: [ 48] 0055: 46 INC SI [ 49] 0056: E2 F1 LOOP LOOP2 [ 50] : [ 51] : [ 52] 0058: C2 04 00 RET 4 [ 53] : RANK ENDP [ 54] : CODE ENDS [ 55] : END START [ 56] : =================================================================================================== EXE HEADER - bytes from 0000 to 01FF inclusive. 0000: 4D - exe signature (M) 0001: 5A - exe signature (Z) 0002: 5B - 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: 04 - check sum (l.byte) 0013: EA - 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) ===================================================================================================