answersLogoWhite

0


Best Answer

The 8086 takes two cycles to fetch words from an odd address because the Bus Interface Unit (BIU) actually only deals with words, which are two bytes at an even address. If you perform an operation on a byte, the BIU will do a word operation, but it will leave the other byte alone. If you perform a word operation at an even address, the BIU can do the operation in one cycle. If the word, however, is at an odd address, the BIU must use two cycles, leaving the respective "other" byte alone in each case. For performance sake, always align your data with the bus design.

User Avatar

Wiki User

14y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

11y ago

in processor addessing starts from even address. hence whenever we gave odd address it starts reading from even address,which don't have required data hence one cycle is wasted hence it need two cycles

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Why 8086 takes two cycles to fetch the data from odd address?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

How many machine cycles require for call instruction in 8086?

It depends on the type of architecture and controller u use. It can be found in the instruction set documentation. It requires 18 cycles on the Intel 8085.How_many_machine_cycles_require_for_call_instruction_in_8085


Why 8086 microprocessor do not have op-code fetch cycle?

Every processor has an op-code fetch cycle. Otherwise, it would not be able to fetch instructions. In the case of the 8086, the three status lines S2, S1, and S0 will have high, low, and low values to indicate an op-code fetch.


Hoe to calculate the number of machine cycle and opcode fetch of any instruction?

It is not possible to calculate the number of machine cycles from first principles without going into design details of the CPU in question. You will need the reference book or card for the specific microprocessor model you are using. That will give you the actual number of cycles that are required for each instruction family. Note that many instructions take a variable number of cycles based on where they fetch their operands from. In the 8088 and 8086, in many cases the number of machine cycles is given in the form "4+EA". This means that you have to look up the number of cycles for a specific Effective Address, which is part of the op code, and add it to the number of cycles to execute the op code. There will be a table of machine stated for each type of Effective Address determination as well. Older machines like the 8085, 8086, and 8088 will actually have a few instructions, notably rotate and shift instructions, where the time is given as something like "4+2s". In these cases, the value "s" is the number of positions you are shifting the operand; to shift it 7 places takes 14 machine states, over and above the initial 2.


What is the size of address bus in 8086?

The address bus in the 8085 is 16 bits wide.


What is physical address in 8086 microprocessor?

Physical address in the 8086/8088 is {Selected Segment Register} * 16 + {Effective Offset Address}. It is a 20-bit address .


Size of 8086 address bus?

The 8086/8088 has an internal 20-bit address bus and 16-bit data bus. Externally, the address bus is 20-bits, and the data bus is 16-bits for the 8086 and 8-bits for the 8088.The data bus in the 8086 is 16 bits in size, while the address bus is 20.


What is the size of RAM that 8086 can address?

8086 has 20 address lines. Therefore it can address 220 bits or 1,048,576 bits of memory, or roughly 1 MB (mega byte).


How many memory address does this number of address lines allow the 8086 to access directly?

The 8086/8088 has 20 address lines. It can access 220, or 1MB, or 1,048,576 bytes of memory.


What is the highest memory address?

The highest memory address in the 8086/8088 is FFFFFH.


What it the size bit address for 8085 and 8086?

128Kb


What is offset in 8086 mp?

displacement from base address


How do you address 1GB memory with 8085 or 8086?

You cannot address 1GB memory with the 8085 or the 8086/8088 without some kind of external demultiplexor that is software controlled. The address bus on the 8085 is 16 bits, giving addressibility of 64KB; while the address bus on the 8086/8088 is 20 bits, giving addressibility of 1MB. To address 1GB, you need a 30 bit address bus.