I've seen knowledgable people call x86 asm high level, in terms of microcode |
Unless you can reprogram microcode after the CPU has left the factory, the fact that it exists is irrelevant. The CPU can be considered a black box.
So, no, Assembly is not high-level (unless you think mnemonics are abstraction; I don't), because you can't talk to the hardware at any closer level.
Another example would be I would call C lowlevel in terms of languages like java |
When using a binary low-high divide:
Seeing as there's no upper limit to the amount of abstraction, either all languages are low level relative to a hypothetical infinitely abstracted language, or everything other than machine language is high level. Putting the divide anywhere in the middle is arbitrary.
Also, I wouldn't really call putting values into registers low-level. I'm writing a register based VM. it is by no means lowlevel, just simplistic. |
Well, yes. A VM can't be low-level any more than a physical CPU can. Level of abstraction is a property of programming languages not of computers, be they physical or virtual.
vm.reg_store(VM::R0, 42)
would be a low level instruction, in the context of your VM.