s/^\([^|]*\)!/\1~/g
/^[ 	]*!/{
p
d
}
/^[_a-zA-Z][_a-zA-Z0-9]*:/!s/^/:/
h
s/^:[ 	]*//
s/^[_a-zA-Z][_a-zA-Z0-9]*:[ 	]*//
s/^\.byte\([ 	]\)/.data1\1/
s/^\.word\([ 	]\)/.data2\1/
s/^\.long\([ 	]\)/.data4\1/
s/;\([ 	]*\.\)byte\([ 	]\)/;\1data1\2/g
s/;\([ 	]*\.\)word\([ 	]\)/;\1data2\2/g
s/;\([ 	]*\.\)long\([ 	]\)/;\1data4\2/g
s/^\.globl\([ 	]\)/.extern\1/
s/(b\([xp]\)_\([sd]\)i)/(b\1),(\2i)/g
s/^seg[ 	][ 	]*\([ecsd]\)s$/\1seg/
s/^seg[ 	][ 	]*\([ecsd]\)s\([ 	]\)/\1seg\2/
s/^in\([ 	]\)/inb\1/
s/^in$/inb/
s/^out\([ 	]\)/outb\1/
s/^out$/outb/
s/^stob\([ 	]\)/stosb\1/
s/^stob$/stosb/
s/^stow\([ 	]\)/stos\1/
s/^stow$/stos/
s/^lodb\([ 	]\)/lodsb\1/
s/^lodb$/lodsb/
s/^lodw\([ 	]\)/lods\1/
s/^lodw$/lods/
s/^scab\([ 	]\)/scasb\1/
s/^scab$/scasb/
s/^scaw\([ 	]\)/scas\1/
s/^scaw$/scas/
s/^jc\([ 	]\)/jb\1/
s/^jnc\([ 	]\)/jnb\1/
s/^calli\([ 	]\)/callf\1/
s/^jmpi\([ 	]\)/jmpf\1/
s/^reti\([ 	]\)/retf\1/
s/^reti$/retf/
s/^j\([ 	]\)/jmp\1/
s/^br\([ 	]\)/jmp\1/
s/^beq\([ 	]\)/je\1/
s/^bge\([ 	]\)/jge\1/
s/^bgt\([ 	]\)/jg\1/
s/^bhi\([ 	]\)/jnbe\1/
s/^bhis\([ 	]\)/jnb\1/
s/^ble\([ 	]\)/jle\1/
s/^blo\([ 	]\)/jb\1/
s/^blos\([ 	]\)/jbe\1/
s/^blt\([ 	]\)/jnge\1/
s/^bne\([ 	]\)/jne\1/
s/|/!/
H
g
/^[_a-zA-Z][_a-zA-Z0-9]*:/{
s/:\([ 	]*\)[^ 	]*.*\n/:\1/
}
/^:/{
s/:\([ 	]*\)[^ 	]*.*\n/\1/
}
