((I think the correct term is "assembly translator" or simply "assembler". They take keywords and numbers (like ADD $t0, $t1, $t2, which means add the contents of the t1 and t2 registers and store the result in t0) and translate them into binary instructions to be used by the processor (the above translates to 012A4020 in hex on a MIPS processor).
And considering that processors don't have that many instructions (about 100 in a MIPS processor), you can create a translator very easily.
(you've got a few instructions for basic arithmetic (addition, multiplication and division), instructions for comparing numbers (for example "slti $t0, $t1, 100" which means "is $t1 smaller than 100? If yes, set $t0 to 1, else set it to 0"), instructions for jumping to another part of the code (Instruction "beq $t0, $zero, 124" means "Jump to instruction <next instruction+124> if $t2 is zero, else continue" for example) and instructions for loading and storing things to and from memory ("li $t0, 100" means "load the number 100 to register $t0" for example))
There used to be typewriter-like things that could do it, in the early days of computing. You just typed the commands in the typewriter and they translated it and typed it in punched cards.
Of course, as you can see from the above examples, there are very little things you can do in assembly with a few instructions. You can't just say "display that image". You need to get each byte of the image you want to display and put it in the correct spot in memory. That's assuming the image is part of the file you're using, if you need to load the image from the disk, then that's an entirely different type of headache...
The main difference between a compiler and an assembler is that a compiler can take a line of code and translate it into a thousand instructions for the processor, while the assembler will translate each line to a single instruction. Which means that in a compiler, you can just say "display that image" and it displays that image, simple as that, even though it had to compile that one instructions into thousands of lines of assembly code.
So I think the correct way of saying it is: "Using a microwave manipulator is like programming in BASIC, while using a universal manipulator is like programming in Assembly."
Because BASIC is a simple language that any beginner can learn to use within minutes, but you can only use it for very limited things, like adding stuff or displaying text.
Assembly on the other hand, literally gives you full control over the CPU and most of the computer's components, but the knowledge you must have to use it and the amount of lines you need to write to do the simplest of things, make it really hard to use.
Not to mention impractical, since changing a single thing in the hardware, like the processor or graphics card you're running the program on, can cause it to fail, since each could have their own instruction set.
I can provide a more information, if you desire.))