📄 32b_mul_macro.exe.list
字号:
EMU8086 GENERATED LISTING. MACHINE CODE <- SOURCE.
32b_mul_macro.exe -- emu8086 assembler version: 4.02
[ 2006-10-25 -- 21:30:59 ]
===================================================================================================
[LINE] LOC: MACHINE CODE SOURCE
===================================================================================================
[ 1] : name 32 bit multiply
[ 2] : data segment
[ 3] 0000: FF FF FF FF FF FF FF FF 00 00 00 00 mulnum dw 0ffffh, 0ffffh, 0ffffh, 0ffffh, 4 dup(?)
00 00 00 00
[ 4] : data ends
[ 5] :
[ 6] : stack segment para stack'stack'
[ 7] 0010: 00 00 00 00 00 00 00 00 00 00 00 00 db 100 dup(?)
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
[ 8] : stack ends
[ 9] :
[ 10] : mulu32 macro
[ 11] : mov ax,[bx]
[ 12] : mov si,[bx+4]
[ 13] : mov di,[bx+6]
[ 14] : mul si
[ 15] : mov [bx+8],ax
[ 16] : mov [bx+0ah],dx
[ 17] : mov ax,[bx+2]
[ 18] : mul si
[ 19] : add ax,[bx+0ah]
[ 20] : adc dx,0
[ 21] : mov [bx+0ah],ax
[ 22] : mov [bx+0ch],dx
[ 23] : mov ax,[bx]
[ 24] : mul di
[ 25] : add ax,[bx+0ah]
[ 26] : adc dx,[bx+0ch]
[ 27] : mov [bx+0ah],ax
[ 28] : mov [bx+0ch],dx
[ 29] : pushf
[ 30] : mov ax,[bx+2]
[ 31] : mul di
[ 32] : popf
[ 33] : adc dx,0
[ 34] : add ax,[bx+0ch]
[ 35] : adc dx,0
[ 36] : mov [bx+0ch],ax
[ 37] : mov [bx+0eh],dx
[ 38] : ret
[ 39] : endm
[ 40] :
[ 41] : code segment
[ 42] : assume cs:code,ds:data,ss:stack,es:data
[ 43] 0080: start proc far
[ 44] 0080: 1E begin: push ds
[ 45] 0081: B8 00 00 mov ax,0
[ 46] 0084: 50 push ax
[ 47] 0085: B8 00 00 mov ax,data
[ 48] 0088: 8E D8 mov ds,ax
[ 49] 008A: 8E C0 mov es,ax
[ 50] 008C: BB 00 00 lea bx,mulnum
[ 51] 008F: 8B 07 8B 77 04 8B 7F 06 F7 E6 89 47 mulu32
08 89 57 0A 8B 47 02 F7 E6 03 47 0A
83 D2 00 89 47 0A 89 57 0C 8B 07 F7
E7 03 47 0A 13 57 0C 89 47 0A 89 57
0C 9C 8B 47 02 F7 E7 9D 83 D2 00 03
47 0C 83 D2 00 89 47 0C 89 57 0E CB
[ 52] 00D7: 8B 07 8B 77 04 8B 7F 06 F7 E6 89 47 mulu32
08 89 57 0A 8B 47 02 F7 E6 03 47 0A
83 D2 00 89 47 0A 89 57 0C 8B 07 F7
E7 03 47 0A 13 57 0C 89 47 0A 89 57
0C 9C 8B 47 02 F7 E7 9D 83 D2 00 03
47 0C 83 D2 00 89 47 0C 89 57 0E CB
[ 53] 011F: 8B 07 8B 77 04 8B 7F 06 F7 E6 89 47 mulu32
08 89 57 0A 8B 47 02 F7 E6 03 47 0A
83 D2 00 89 47 0A 89 57 0C 8B 07 F7
E7 03 47 0A 13 57 0C 89 47 0A 89 57
0C 9C 8B 47 02 F7 E7 9D 83 D2 00 03
47 0C 83 D2 00 89 47 0C 89 57 0E CB
[ 54] 0167: CB ret
[ 55] : start endp
[ 56] :
[ 57] : code ends
[ 58] : end begin
[ 59] :
===================================================================================================
EXE HEADER - bytes from 0000 to 01FF inclusive.
0000: 4D - exe signature (M)
0001: 5A - exe signature (Z)
0002: 68 - bytes on last page (l.byte)
0003: 01 - 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: 01 - SS - stack segment (l.byte)
000F: 00 - SS - stack segment (h.byte)
0010: 64 - SP - stack pointer (l.byte)
0011: 00 - SP - stack pointer (h.byte)
0012: B8 - check sum (l.byte)
0013: 82 - check sum (h.byte)
0014: 00 - IP - instruction pointer (l.byte)
0015: 00 - IP - instruction pointer (h.byte)
0016: 08 - 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: 06 - relocation table - offset inside segment (l.byte)
001F: 00 - relocation table - offset inside segment (h.byte)
0020: 08 - relocation table - segment anchor (l.byte)
0021: 00 - relocation table - segment anchor (h.byte)
0022 to 01FF - reserved relocation area (00)
===================================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -