modified assemble and preassemble to handle offsets, wrote addrparsing in c