@@ -162,24 +162,24 @@ def chunk_into_words(code, bytes_per_word, byteorder):
162
162
return words
163
163
164
164
165
- def print_code_line (i , asm ):
166
- lineformat = '{0} {1}'
165
+ def print_code_line (byte_offset , i , asm ):
166
+ lineformat = '{0:04x } {1} {2 }'
167
167
hex = ubinascii .hexlify (i .to_bytes (4 , 'little' ))
168
- print (lineformat .format (hex .decode ('utf-8' ), asm ))
168
+ print (lineformat .format (byte_offset , hex .decode ('utf-8' ), asm ))
169
169
170
170
171
- def decode_instruction_and_print (i , verbose = False ):
171
+ def decode_instruction_and_print (byte_offset , i , verbose = False ):
172
172
try :
173
173
ins , name = decode_instruction (i )
174
174
except Exception as e :
175
- print_code_line (i , e )
175
+ print_code_line (byte_offset , i , e )
176
176
return
177
177
178
- print_code_line (i , name )
178
+ print_code_line (byte_offset , i , name )
179
179
180
180
if verbose :
181
181
for field , val , extra in get_instruction_fields (ins ):
182
- print (" {:10} = {:3}{}" .format (field , val , extra ))
182
+ print (" {:10} = {:3}{}" .format (field , val , extra ))
183
183
184
184
185
185
def disassemble_manually (byte_sequence_string , verbose = False ):
@@ -190,10 +190,10 @@ def disassemble_manually(byte_sequence_string, verbose=False):
190
190
for i in range (0 , len (sequence ), chars_per_instruction )
191
191
]
192
192
193
- for instruction in list :
193
+ for idx , instruction in enumerate ( list ) :
194
194
byte_sequence = ubinascii .unhexlify (instruction .replace (' ' ,'' ))
195
195
i = int .from_bytes (byte_sequence , 'little' )
196
- decode_instruction_and_print (i , verbose )
196
+ decode_instruction_and_print (idx << 2 , i , verbose )
197
197
198
198
199
199
def disassemble_file (filename , verbose = False ):
@@ -203,8 +203,8 @@ def disassemble_file(filename, verbose=False):
203
203
code = data [12 :] # text_offset (where code starts) is always 12 for ULP binaries
204
204
words = chunk_into_words (code , bytes_per_word = 4 , byteorder = 'little' )
205
205
206
- for i in words :
207
- decode_instruction_and_print (i , verbose )
206
+ for idx , i in enumerate ( words ) :
207
+ decode_instruction_and_print (idx << 2 , i , verbose )
208
208
209
209
210
210
def print_help ():
0 commit comments