1) Editor: An editor is a program which helps you to construct your assembly language program in right format so that the assembler will translate it correctly to machine language. So, you can type your program using editor. This form of your program is called as source program and extension of program must be .asm or .src depending on which assembler is used. The DOS based editor such as EDIT, WordStar, and Norton Editor etc. can be used to type your program.
2) Assembler: An assembler is programs that translate assembly language program to the correct binary/hex code for each instruction i.e. machine code and generate the file called as Object file with extension .obj and list file with extension .lst extension. It is used to find syntax error in the program.
3) Compiler: Compiler is programs that translate C language program to the correct binary/hex code for each command i.e. machine code and generate the file called as Object file with extension .obj and list file with extension .lst extension. It is used to find syntax error in the program.
4) Linker: A linker is a program, which combines, if requested, more than one separately assembled object files into one executable program, such as two or more programs and also generate .abs file and initializes it with special instructions to facilitate its subsequent loading the execution. Some examples of linker are ASEM-51 BL51, Keil u Vision Debugger, LX 51 Enhanced Linker etc