027.列表文件與彙編語言程序的比較

列表文件以list爲爲結尾,是彙編語言編譯器生成的一個彙編語言與機器指令一一對應的列表,表示一個彙編語言源文件是如何對應到機器指令的。在VS中生成list文件的方式如下。右鍵項目->屬性->Microsoft Macro Assembler。將generatepreprocessedsourcelisting,以及listallavailiableinformation下拉框選擇爲“是”,點擊應用保存,重新彙編你的源代碼。在工程文件的根目錄下就會看到list文件。下面舉例說明 。
Microsoft (R) Macro Assembler Version 14.25.28610.4	    05/23/20 11:51:58
main.asm						     			Page 1 - 1


												; Operators (Operator.asm)

												; Demonstrates the TYPE, LENGTHOF, and SIZEOF operators
	
												.386
												.model flat,stdcall
												.stack 4096
												ExitProcess PROTO, dwExitCode:dword

 00000000										.data
 00000000 0A 14 1E								byte1    BYTE  10,20,30
 00000003  0000001E [							array1   WORD  30 DUP(?),0,0
	    0000
	   ] 0000 0000
 00000043  00000005 [							array2   WORD  5 DUP(3 DUP(?))
	    00000003 [
	     0000
	    ]
	   ]
 00000061 00000001								array3   DWORD 1,2,3,4
	   00000002
	   00000003
	   00000004
 00000071 31 32 33 34 35						digitStr BYTE  '12345678',0
	   36 37 38 00
 0000007A 0A 14 1E 28 32						myArray  BYTE  10,20,30,40,50,
	   3C 46 50 5A 64
				              					60,70,80,90,100

												; You can examine the following constant values
												; by looking in the listing file (Operator.lst):
												;---------------------------------------------
 = 00000003			X = LENGTHOF byte1		; 3
 = 00000020			X = LENGTHOF array1		; 30 + 2
 = 0000000F			X = LENGTHOF array2		; 5 * 3
 = 00000004			X = LENGTHOF array3		; 4
 = 00000009			X = LENGTHOF digitStr	; 9
 = 0000000A			X = LENGTHOF myArray	; 10

 = 00000003			X = SIZEOF byte1		; 1 * 3
 = 00000040			X = SIZEOF array1		; 2 * (30 + 2)
 = 0000001E			X = SIZEOF array2		; 2 * (5 * 3)
 = 00000010			X = SIZEOF array3		; 4 * 4
 = 00000009			X = SIZEOF digitStr		; 1 * 9

 00000000										.code
 00000000										main PROC






												invoke ExitProcess,0
 00000000  6A 00	   *	    push   +000000000h
 00000002  E8 00000000 E   *	    call   ExitProcess
 00000007										main ENDP
												END main
Microsoft (R) Macro Assembler Version 14.25.28610.4	    05/23/20 11:51:58
main.asm						     Symbols 2 - 1




Segments and Groups:

 N a m e                          Size     Length   Align   Combine Class

FLAT . . . . . . . . . . . . . .	GROUP
STACK  . . . . . . . . . . . . .	32 Bit	 00001000 DWord	  Stack	  'STACK'	 
_DATA  . . . . . . . . . . . . .	32 Bit	 00000084 DWord	  Public  'DATA'	
_TEXT  . . . . . . . . . . . . .	32 Bit	 00000007 DWord	  Public  'CODE'	


Procedures, parameters, and locals:

N a m e                             Type     Value    Attr

ExitProcess  . . . . . . . . . .	P Near	 00000000 FLAT	Length= 00000000 External STDCALL
main . . . . . . . . . . . . . .	P Near	 00000000 _TEXT	Length= 00000007 Public STDCALL


Symbols:

N a m e                             Type     Value    Attr

@CodeSize  . . . . . . . . . . .	Number	 00000000h   
@DataSize  . . . . . . . . . . .	Number	 00000000h   
@Interface . . . . . . . . . . .	Number	 00000003h   
@Model . . . . . . . . . . . . .	Number	 00000007h   
@code  . . . . . . . . . . . . .	Text   	 _TEXT
@data  . . . . . . . . . . . . .	Text   	 FLAT
@fardata?  . . . . . . . . . . .	Text   	 FLAT
@fardata . . . . . . . . . . . .	Text   	 FLAT
@stack . . . . . . . . . . . . .	Text   	 FLAT
X  . . . . . . . . . . . . . . .	Number	 00000009h   
array1 . . . . . . . . . . . . .	Word	 00000003 _DATA	
array2 . . . . . . . . . . . . .	Word	 00000043 _DATA	
array3 . . . . . . . . . . . . .	DWord	 00000061 _DATA	
byte1  . . . . . . . . . . . . .	Byte	 00000000 _DATA	
digitStr . . . . . . . . . . . .	Byte	 00000071 _DATA	
myArray  . . . . . . . . . . . .	Byte	 0000007A _DATA	

	   0 Warnings
	   0 Errors

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章