Can anybody help me out and tell me that in which microprocessor 8086 or 8088, a far procedure call executes faster and with reasons


Plz help me as early as possible

Almost everything executes faster on the 8086. It has a 16 bit bus rather than the 8088's 8 bit bus.

The execution units on the two chips are identical. The only difference is bus width and depth of prefetch queue. The 8088 has a slightly deeper prefetch queue to try and compensate some for the constrained bus bandwidth.

Almost everything executes faster on the 8086. It has a 16 bit bus rather than the 8088's 8 bit bus.

The execution units on the two chips are identical. The only difference is bus width and depth of prefetch queue. The 8088 has a slightly deeper prefetch queue to try and compensate some for the constrained bus bandwidth.

it all depends up on how fast the processor can calculate the final physical address, once it encounter the far call instruction. I think 8086 should be much faster than 8088, since it has 16 bit data bus it can fetch 16 bit data at a time, when compared to 8088 which can fetch only 8 bit data from the memory.

for example the far call instruction will be encoded as [opcode for call] [16 bit offset ] [16 bit segment].

so to execute this instruction processor need to fetch 16 bit selector and 16 bit segment value from the memory for computing the final 20 bit physical address, which will go fast with 8086, since i has 16 bit data bus.

I think 8086 should be much faster than 8088, since it has 16 bit data bus it can fetch 16 bit data at a time, when compared to 8088 which can fetch only 8 bit data from the memory

Define "much" ;-> In reality, its something in the range of 30% faster on average. The prefetch queue goes a long way towards flattening the performance between the two.

In the specific case of a far jump, actual results can vary dramatically depending on the states of the prefetch queues. If both CPU's have the opcode and address in their queues, they'll both execute it at the same speed (fetching the NEXT instruction at the target address is a different story as the jump blows away the prefetch queue contents). If a costly instruction was before the jump allowing the prefetcher a lot of time to load the queue, they'll both execute the jump at the same speed -- their execution units are identical.

This article has been dead for over six months. Start a new discussion instead.