An assembler creates object code by translating assembly instruction mnemonics into opcodes, and by resolving symbolic names for memory locations.