The 8086 was only capable of addressing 1Mbyte of memory. It was divided into segments of 65536 bytes (64 KB) each meaning about 16 segments.
In 8086 microprocessor the total memory addressing capability is 1 mega bytes. For representing 1 mb there are minimum 4 hex digits are required i.e, 20 bits. but 8086 has fourteen 16-bit registers. That is there are no registers for representing 20 bit address. So,the total memory is divided into 16 logical segments and each segment capacity is 64 kb(kilo bytes). That is 16*64kb=1 mb.So,for representing 64 kb only 16 bit register is sufficient.
In 8086 microprocessor the total memory addressing capability is 1 mega bytes. For representing 1 mb there are minimum 4 hex digits are required i.e, 20 bits. but 8086 has fourteen 16-bit registers. That is there are no registers for representing 20 bit address. So,the total memory is divided into 16 logical segments and each segment capacity is 64 kb(kilo bytes). That is 16*64kb=1 mb.So,for representing 64 kb only 16 bit register is sufficient. In 8086 microprocessor the total memory addressing capability is 1 mega bytes. For representing 1 mb there are minimum 4 hex digits are required i.e, 20 bits. but 8086 has fourteen 16-bit registers. That is there are no registers for representing 20 bit address. So,the total memory is divided into 16 logical segments and each segment size is 64 kb(kilo bytes). That is 16*64kb=1 mb.So,for representing 64 kb only 16 bit register is sufficient.
A segment is a chunk (segment) of memory that is 64Kb in size. Due to the design of the 8086/8088 there are 64K possible segments, ecah overlapping the next by 16 bytes, for a total addressibility of 1 Mb. In the instruction model, a segment is the locus of addresses that can be reached in one instruction, without stopping to load a new value into a segment register. It is also called a near, or 16 bit 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).
Yes, if a memory segment is 64K, it means there are 64K total addresses in that segment. Since 1K (kilobyte) equals 1024 bytes, a 64K segment would have a total size of 64 * 1024 bytes, which equals 65,536 bytes. Therefore, the size of one segment is 65,536 bytes.
In real mode, the effective memory address is the same as the linear, or physical, memory address. The segment register operates by specifying the base of a 64kb region of memory, each region overlapping the other by 16 bytes. In protected mode, the effective address is translated by the page table which provides a larger region size and more memory addressibility. The segment register, a/k/a selector, selects the particular page table to use.
disadvantages of memory segmentation
To determine the memory size of a device, you can calculate it by multiplying the number of memory cells by the size of each memory cell. This will give you the total memory size of the device.
The Instruction Pointer (IP) in an 8086 microprocessor contains the address of the next instruction to be executed. The processor uses IP to request memory data from the Bus Interface Unit, and then increments it by the size of the instruction.
Near and far are obsolete terms used in the MSDOS and Windows 3.x platforms on the 8086/8088 processor. Near represents an area of memory that can be accessed using only a 16 bit offset and, as such, must lie within the default data segment, and is always less than 64kb in size. Far represents an area of memory that must be accessed using both a 16 bit offset and a 16 bit segment and, as such, can lie anywhere in memory and be larger than 64kb, at the expense of additional processing time and program size.
The segmentation function maintains a segment table that includes physical addresses of the segment, size, and other data. Segmentation speeds up a computer's information retrieval by assigning related data into a “segment table” between the CPU and the physical memory.
Each segment register is multiplied by 16 before being added to the effective address during physical address computation. As a result, sequential values of segment registers result in physical addresses that are 16 bytes apart, yet, the maximum distance, based on effective address is 64 KB. That is why the segmented memory addressing approach in the 8086/8088 is overlapping - there are 64 K different combinations of segment register / effective address pair that will result is the same physical address. Well - sort of - its not wrap around - its a sliding window - call it a 16 byte paragraph size with an addressability range of 64 KB.