⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 32b_mul_macro.exe.list

📁 收录了一些简单经典的asm程序有源码
💻 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 + -