Okay, so I was going through some tutorials on 8086 Assembly, and I hit some information that seems contradicting, to me at least.
AX, the 16-bit register is made up of:
- high-byte AH (8-15 bits)
- low-byte AL (0-7 bits)
So AX is AH|AL.
If you assign 1234h to AX, 12h goes to AH and 34h goes to AL. So far so good. BUT, the next part just confuses me.
The tutorial went on to convert the hex into binary and represented the value like so: 0011 0100 0001 0010, which is 3412h. This shows me that 34h is in AH and 12h is in AL, which is completely opposite of what it mentions previously. Also, the least significant byte, which for some reason is 8-15 and not 0-7 (why is this?), corresponds to the highest address (1000h), while the low byte has address 1001h.
This is quite a mess in my head. Is there something I'm missing? Or maybe the tutorial really is that dumb and misleading...
In any case, can someone please provide some in-depth explanation on this issue of addresses and low/high bytes?