Assemblers support machine instructions (native CPU opcodes), assembler instructions (directives for the assembler), and macro instructions (text substitution templates). Therefore, all options A, B, and C are correct, making option D the right answer.