"Fossies" - the Fresh Open Source Software Archive 
Member "fasm/tools/win32/symbols.asm" (21 Feb 2022, 2150 Bytes) of package /linux/misc/fasm-1.73.30.tgz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Generic Assembler source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1
2 format PE console 4.0
3 entry start
4
5 include 'win32a.inc'
6
7 section '.data' data readable writeable
8
9 _usage db 'symbols dumper for flat assembler',0Dh,0Ah
10 db 'usage: symbols <input> <output>',0Dh,0Ah
11 db 0
12 _error_prefix db 'error: ',0
13 _error_suffix db '.',0Dh,0Ah,0
14
15 input_file dd 0
16 output_file dd 0
17
18 input dd ?
19 output_buffer dd ?
20 output_handle dd ?
21
22 display_handle dd ?
23 bytes_count dd ?
24
25 params rb 1000h
26
27 section '.text' code readable executable
28
29 start:
30
31 mov [display_handle],STD_OUTPUT_HANDLE
32
33 call get_params
34 jnc make_dump
35
36 mov esi,_usage
37 call display_string
38 invoke ExitProcess,2
39
40 make_dump:
41 call symbols
42 invoke ExitProcess,0
43
44 error:
45 mov [display_handle],STD_ERROR_HANDLE
46 mov esi,_error_prefix
47 call display_string
48 pop esi
49 call display_string
50 mov esi,_error_suffix
51 call display_string
52 invoke ExitProcess,1
53
54 get_params:
55 invoke GetCommandLine
56 mov esi,eax
57 mov edi,params
58 find_command_start:
59 lodsb
60 cmp al,20h
61 je find_command_start
62 cmp al,22h
63 je skip_quoted_name
64 skip_name:
65 lodsb
66 cmp al,20h
67 je find_param
68 or al,al
69 jz all_params
70 jmp skip_name
71 skip_quoted_name:
72 lodsb
73 cmp al,22h
74 je find_param
75 or al,al
76 jz all_params
77 jmp skip_quoted_name
78 find_param:
79 lodsb
80 cmp al,20h
81 je find_param
82 cmp al,0Dh
83 je all_params
84 or al,al
85 jz all_params
86 cmp [input_file],0
87 jne get_output_file
88 mov [input_file],edi
89 jmp process_param
90 get_output_file:
91 cmp [output_file],0
92 jne bad_params
93 mov [output_file],edi
94 process_param:
95 cmp al,22h
96 je string_param
97 copy_param:
98 stosb
99 lodsb
100 cmp al,20h
101 je param_end
102 cmp al,0Dh
103 je param_end
104 or al,al
105 jz param_end
106 jmp copy_param
107 string_param:
108 lodsb
109 cmp al,22h
110 je string_param_end
111 cmp al,0Dh
112 je param_end
113 or al,al
114 jz param_end
115 stosb
116 jmp string_param
117 bad_params:
118 stc
119 ret
120 param_end:
121 dec esi
122 string_param_end:
123 xor al,al
124 stosb
125 jmp find_param
126 all_params:
127 cmp [input_file],0
128 je bad_params
129 cmp [output_file],0
130 je bad_params
131 clc
132 ret
133
134 include 'system.inc'
135
136 include '..\symbols.inc'
137
138 section '.idata' import data readable writeable
139
140 library kernel32,'KERNEL32.DLL'
141
142 include 'api\kernel32.inc'