answersLogoWhite

0


Best Answer

There are four segment registers in the 8086/8088 processor, CS, DS, ES, and SS, also known as Code Segment, Data Segment, Extra Segment, and Stack Segment. Any time an address is generated by the processor, it is added to the value of one of the segment registers, after that segment register is effectively multiplied by 16, or left shifted four bits, in order to generate the physical address that accesses memory. This gives an effective address range of 20 bits, or 1mb, but note that only 64kb is addressable through any segment register at one time, unless you stop to change the contents of that segment register. This is known as a segmented architecture. By default, the CS register is used when fetching instructions, the DS register is used when accessing data, the SS register is used when accessing the stack, and the ES register is used during certain string type instructions. If desired, an instruction prefix can be used to override, such as forcing use of CS instead of DS when using a table contained within opcode space.

User Avatar

Wiki User

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

Wiki User

12y ago

Segments in the 8086/8088 allowed access to more than 64KB of memory, while still maintaining a 16 bit architecture.

Internally, from a programmer's perspective, there is a 16 bit address space, which can address 64KB. There are also four segment registers, CS (Code Segment), DS (Data Segment), SS (Stack Segment), and ES (Extra Segment). Each segment provides a base address within a 20 bit (1MB) address space. These base addresses are 16 bytes apart, because the segment register, like all of the other registers, are still only 16 bits in size.

During execution, the logical address that is generated by the execution unit is added to the base address which is multiplied by sixteen. This generates a 20 bit address. At any one moment in time, 256KB of memory is addressable, in four 64KB segments. The selection of segment register is made by context, or in some cases, by segment prefix override instructions.

Loading of a segment is a distinct and separate process from the accessing of an operand. However, certain instructions (such as JMP and CALL) were designed to allow direct specification of the segment, in addition to the offset - these became known as far references.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Explain about segment registers in 8086MP?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

How many base registers are there in 8086?

There are four base registers in the 8086/8088; Code Segment (CS), Data Segment (DS), Stack Segment (SS), and Extra Segment (ES).


Give the segment registers and their corresponding offset registers?

Give the effective address if the segment register is AA03 and the offset register is 0200.


Which segment is used to store interrupt and subroutine return address registers?

stack segment


How many register are located in 8088microprocessor?

there are 14 registers in 8088 micro processor. All the 14 are 16 bit registers. They are4 segment registers viz - code segment register, stack segment register, data segment register, extra segment register.general registers are - accumulator register i.e. AX, base register i.e. BX, count register i.e. CX, data register i.e. DX and stack pointer (SP), base pointer (BP).index registers are - source index(SI), destination index(DI),and the other registers are instruction pointer and flags register.


What is the BP pointing registers default memory segment?

SS


How does an 8088 microprocessor generate physical address?

8086 has memory divided into segments.Each segment has its particular register like ES, DS, SS, CD (extra segment, data segment, stack segment and code segment).These registers hold the base address BA.Now, there two base registers(BX and BP) and two index registers(SI and DI) in 8086. These registers hols the effective address EA.Now Physical address PA is sum of EA and BA.That is,PA = BA+EA


What is the example of segment register?

There are four segment registers on the 8086 and 8088. These are CS (code for code), DS (data segment), ES (extra data segment), and SS (stack segment).


What are segment registers?

In the x86 processor architecture, memory addresses are specified in two parts called the segment and the offset. One usually thinks of the segment as specifying the beginning of a block of memory allocated by the system and the offset as an index into it. Segment values are stored in the segment registers. There are four or more segment registers: CS contains the segment of the current instruction (IP is the offset), SS contains the stack segment (SP is the offset), DS is the segment used by default for most data operations, ES (and, in more recent processors, FS and GS) is an extra segment register. Most memory operations accept a segment override prefix that allows use of a segment register other than the default one.


What is the DI strings only pointing registers default memory segment?

ES


How many segment can be directly addressed at a particular time by 8086 microprocessor?

There are four segment registers in the 8086/8088, Code Segment (CS), Stack Segment (SS), Data Segment (DS), and Extra Segment (ES). As a result, there are four segments that can be directly addressed at a particular time, i.e. without an extra instruction to reload a segment register.


How many general purpose registers in 80386?

There exists 4 general purpose registers in 8086 namely Ax(Accumulator),Bx(Base), Cx(Count), Dx(Data).Further these 4 registers are divided into 8 based on higher and lower bits i.e.,. AX- AH &AL, BX-BH & BL, CX- CH & CL, DX- DH& DL. In 8086, there are 4 segment registers: 1. Stack segment 2. Code segment 3. Data segment 4. Extra segment


What is the DI SI and BX pointing registers default memory segment?

DI: ES SI: DS BX: DS