|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.
would be a low level instruction, in the context of your VM.