In the beginning of the book "Structured Computer Organization", Tanenbaum says that a typical computer have 6 architecture levels: Digital, Microarchitecture, Instruction Set, Operating System, Assembly and the Top level (not sure if this is named correctly).
Each level is suppose to add a new layer of abstraction, basically to turn programming easier and make programmers more productive.
I had a hard time understanding each level, but then in the chapter about the Assembly Level, it is said that each instruction in Assembly Language corresponds to exactly one instruction in machine code.
For what I understand, "machine code" is what the hardware can execute directly, so this would be the instructions in the Microarchitecture level. The problem is: if each Assembly instruction have a correspondent microinstruction, what is the point of the Instruction Set and Operating System levels?
I thought, for example, that there was some Assembly instructions that would be translated into more than one instruction in the OS level, but this would contradict the "one-to-one correspondence".
Can someone help me understand this?