Quote
He's not asking about computers in general, he's asking about programming.
Then why did you bring up `teach you how the computer actually works, only ASM can do that.' This is what I was basing my responses from.
Quote
who said anything about bytecode? ASM isn't bytecode.
I mentioned ASM in context of "getting a foundation in programming"
I know assembly is not bytecode. I brought it up because you think less abstraction when working with the machine will teach you more about the machine.
Quote
What I said is that learning ASM will give a more solid foundation than learning a high level language, which it will. I didn't imply mutual exclusion.
Okay, I agree with this somewhat. I misinterpreted your post. Although my above response of a CPU emulator is one example of how a higher level language can also teach you core concepts as well as a solid foundation of how a processor works.
Quote
How exactly are you going to write a processor emulator (an ASM interpreter) before learning how to program the processor (ASM)? (hint: you aren't.)
That's what documentation is for. If there is documentation for an xor %al, X call which provides an except of what the instruction does, then it is not at all too difficult to figure out how to represent it in a higher level language. Sure some more underlying knowledge may be needed (how PC effects program flow, etc), but for the most part documentation can allow you to do such a thing without knowing much or any assembly. After all you are simply reading in bytes of data and then using logic to preform operations that the byte(s) of data represent. That doesn't require assembly knowledge in the least.
A good example could be the CHIP8 virtual processor. There is plenty of documentation of all the instructions, including the extended instruction set, that anyone with basic knowledge of logic flow operations (if statements, switch statements, function calls, etc) can successfully implement it. It will also teach you about registers, the stack, and other things that may be used to learn more about computing.
------------------------------------------------------------------
The thing I am trying to get at is that assembly isn't the only way to learn how a `computer actually works.'
This post was edited by AbDuCt on Jul 15 2016 07:05pm