#!/usr/bin/perl -w while(<>) { chomp; s/;.*//; next if /^\s*$/; ($label, $addr) = (/^(\S+)\s+=\s+\$(\S+)/); $addr = eval "0x$addr"; $got{$addr} = $label; } for (sort { $a <=> $b } keys %got) { $addr = sprintf("%04x", $_); print <