answersLogoWhite

0


Best Answer

The offset address in an 8086/8088 is the logical address that the program "thinks about" when it addresses a location in memory. The Execution Unit (EU or CPU) is responsible for generating the offset address. The Bus Interface Unit (BIU), on the other hand, takes the offset address and adds it to four times the selected segment register value in order to determine a real address, which is now 20-bits in length.

Some programs do deal with segment addresses as well - these are called far pointers instead of near pointers - but the program has to do more than one step to load both the offset and the segment address - a complexity created by running in a 16-bit environment.

User Avatar

Wiki User

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

Wiki User

10y ago

In real mode, memory addresses are specified in two parts, the segment and the offset. The segment is the coarse selection of memory, and the offset selects it down to the byte. For instance, if the segment is set to zero hex, then 0-1023 would be how far from the beginning, allowing you to access the interrupt vector table (the first kilobyte of memory).

For the 8086/8088, a segment is 64k, the granularity is 16 bytes per segment address, and the offset is how you reach the 65536 addresses from the segment address. So segments overlap. 0000:0010h should also be 0001:0000h.

This answer is:
User Avatar

User Avatar

Wiki User

13y ago

The Intel 8086 was a 32 bit chip with 4 registers and a 16 bit offset, providing a 16 + 4 = 20 bit address that could be referred to by 232-20 = 212 = 4096 segment:offset pairs. More information is linked below.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is offset address in 8086 processor?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

What is offset in 8086 mp?

displacement from base address


What is use of offset address in 8086 mp?

Offset address is also known as displacement.By adding this offset value to a base address,address of a specific locaction in memory can be accessed


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 .


Why implement 8086 processor to 8087 processor?

The 8086/8088 is the general purpose processor. The 8087 is the math co-processor for the 8086/8088.


What is 8086 processor?

it primarily running as a 16 bit processor..so it is so called as 8086


What is meant by co processor configuraiton in 8086?

The co-processor on an 8086/8088 is the 8087 math co-processor. The motherboard will be designed with an extra socket for the 8087, which then integrates with the 8086/8088 to make a single unified processor.


Why in memory segmentation of 8086 it use 64Kb instead of 1Mb?

Each segment in the 8086/8088 is 64KB because that is how Intel designed the microprocessor. The offset address is 16 bits, making the allowable range 64KB. See the related questions link for a further discussion of segmented architecture.


Ignou bca 4 semester cs-64 assignment answers?

What is the need of segments in 8086 micro-processor? Explain how the address of an instruction is calculated in 8086 using segment register


Why you Use Memory Segmentation In 8086 Microprocessor?

The 8086/8088 is a 16 bit processor running on a 16 bit (8086) or 8 bit (8088) bus with a 20 bit address bus. In order to obtain the extra 4 bits of addressibility, Intel designed segment registers that are effectively multiplied by four and then added to the 16 bit offset address generated by the instruction. This yields 64K segments of 64KB each, although they overlap each other at a distance of 16 bytes.


What represent 8086?

8086 means its a 8 bit processor and 86 is its model number


What is Normalization of pointers?

The 8085 had a 16-bit address bus thus it could address a maximum of 64KB of memory (2^16). The 8086 had a 20-bit address bus and could therefore address a maximum of 1MB of memory (2^20). To maintain compatibility, segmented memory was introduced, such that the segment and offset were stored in separate 16-bit registers. In order to perform 20-bit pointer arithmetic upon the 8086, the segment and offset had to be normalised by the compiler to produce a valid 20-bit address. This was achieved by left-shifting the segment by 4 bits and then adding on the offset. The 8086 also introduced the concept of near, far and huge pointers. A near pointer only stores the offset while far and huge pointers store both the segment and the offset. The only practical difference between far and huge pointers is in how pointer arithmetic works. With far pointers, only the offset is affected whereas with huge pointers, both the segment and the offset are affected.


Maximum RAM capacity of 8086 processor?

The 8086/8088 can address a maximum of 220, or 1,048,576, or 1 MB of memory.