I am not sure if I understood your question correctly.
I will keep my explanation specifically around C & embedded C programming.
In layman's term we can say that using embedded C, we can write a program for any micro controller/processor. Instead of writing an assembly code, we can write in C(Embedded C). There a very few differences like types of datatype, syntax a bit,etc from normal C. For this purpose we need a cross compiler like Keil (IDE).
Advantage of embedded C - Debugging in embedded C is quite easy compared to debugging an assembly code.
So when you write a complex code for suppose interfacing an LCD to your microcontroller, assembly code makes it very difficult to debug and maintain. Here Embedded C makes your life easier. Using Keil, you can write a program in C (with few differences in datatypes & syntax) & Keil will take care of generating an equivalent assembly code for that. This makes it easy not only to write the program but also to debug it. We can initially select a micro controller (8051/8086,etc) that we want to program. This makes even a complex program very simple & modular. The generated binary, i.e. the hex file can then be loaded onto your micro controller & your job is done!
So unlike assembly language, we need not bother about the architecture of the micro controller/processor while coding. The cross compiler takes care of that.
Also all the processors/controllers have different architectures & Instruction sets(MOV A,B, ; MOV AX,BX etc). In order to program a micro controller in assembly language, we need to know the instruction set & architecture. But if we code using embedded C, we need not worry about the instruction set. So we can program any controller/processor without even going through the specification or knowing the instruction set by simply writing the code in C.
Hope this helps!