How the 8086 processor determines the length of an instruction
righto.com
righto.com
Question: Does the 1BL thing imply that the 8086 is not capable of detecting useless prefixes? So the next 2 implications are correct:
Eg1: lock cs: clc is just treated as clc, and the lock and cs: are ignored?
Eg2: The 8086 has no 16 byte instruction length limit, unlike some successors. So e.g 16 seg overrides:
Cs: Ds: Es: Ss: Cs: Ds: Es: Ss: Cs: Ds: Es: Ss: Cs: Ds: Es: Ss: mov [1234],5
Is just ss: mov [1234],5
Also:
> If the queue ran empty, the processor waited until more instruction bytes were fetched from memory into the queue.
Does the CPU make any effort to fill up the queue before it runs empty?
As for the CPU making an effort to fill up the queue, the CPU tries to fill up the queue if the bus is idle. But if memory accesses are happening, you're better off doing the memory accesses that you need rather than performing prefetches which could get discarded.
Beginner question: In the example of the 3-byte instruction using the immediate value: ADD AX,1234 Is this instruction 3 bytes long because 'ADD AX' is encoded in 1 byte while the immediate value '1234' is two bytes long?
Are you in communication with https://stevemorse.org/8086/index.html ?
This is a book I could read in the flesh instead of online. Getting answers to questions like why did they do this, was it a constraint of the day or some other reason could be elucidating.