Assembly language translation to machine code (process in "RAM") How does a assembler (at very basic level) work in translation of Assembly language to machine code ? Just want to know that what is happening in RAM ?

[What my understanding is that when  when I type MOV A, B   : in RAM :'M' >> some bytes (ASCII CODE) in memory (RAM)in form of 0v and 5v (voltage may be different but you know what I mean) 'O' will be saved with same method &amp; so V , A , "," , B .Now the programming software also have the part in RAM which we call "library" saved in 0s &amp; 1s in the form of 0v /5v.So my question is that does "translation" mean that typed the 0s,1s of MOV A,B will be compared to saved 0s and 1s (library's)by logic ckt &amp; then depending on the matching or mismatching of those 0s,1s will result in another 0s,1s (opcodes bits/bytes ,will be stored &amp; later executed in RAM)?Am I right or is this a wrong way of thinking? ]
In modern computers, assemblers do not deal directly with in-RAM machine code anymore. Their job is to translate the textual representation of the assembly language to opcode combinations, in a form that is not completely finished because exact addresses are not decided yet.

Both the tetx and its translation are stored in disk files, they only reside in RAM while translation takes place.

A next step is performed by another utility, the linker, which performs address assignments and creates another file, called the executable, and will also reside on disk.

When you want execution to take place, a third program called the loader will read the opcodes from disk and write them in RAM memory where it belongs. Then the loader will tell the operating system that a new task is ready for execution and eventually control will be passed to the program you have written and which is now loaded in RAM.

(This explanation is really simplified as there are many intervening steps and other goodies to consider.)