#!/usr/bin/env python3 import fileinput import itertools ptr = 0 data = [] def write_data(): if len(data) != 0: print("@%08x" % (ptr >> 2)) while len(data) % 4 != 0: data.append(0) for word_bytes in zip(*([iter(data)]*4)): print("".join(["%02x" % b for b in reversed(word_bytes)])) for line in fileinput.input(): if line.startswith("@"): addr = int(line[1:], 16) if addr > ptr+4: write_data() ptr = addr data = [] while ptr % 4 != 0: data.append(0) ptr -= 1 else: while ptr + len(data) < addr: data.append(0) else: data += [int(tok, 16) for tok in line.split()] write_data()