[go: up one dir, main page]

0% found this document useful (0 votes)
321 views3 pages

8086 Address Modes

The 8086 processor uses five addressing modes to specify operands: register, immediate, direct, indirect, and base plus index. Register addressing uses processor registers as operands. Immediate addressing uses constant values. Direct addressing accesses memory at a specified address. Indirect addressing uses the value in a register as the memory address. Base plus index addressing adds the contents of a register to a base address to access memory.

Uploaded by

Jaya Pratha
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
321 views3 pages

8086 Address Modes

The 8086 processor uses five addressing modes to specify operands: register, immediate, direct, indirect, and base plus index. Register addressing uses processor registers as operands. Immediate addressing uses constant values. Direct addressing accesses memory at a specified address. Indirect addressing uses the value in a register as the memory address. Base plus index addressing adds the contents of a register to a base address to access memory.

Uploaded by

Jaya Pratha
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

8086 Address Modes

[Link]

8086 Address Modes


The way in which an operand is specified is called the Address Mode.

Addressing Modes on the 8086


The x86 instructions use five different operand types: registers, constants, and three memory addressing schemes. Each form is called an addressing mode. The x86 processors support the register addressing mode , the immediate addressing mode, the direct addressing mode, the indirect addressing mode, the base plus index addressing mode, the register relative addressing mode, and the base relative plus index addressing mode. Register operands are the easiest to understand. Consider the following forms of the mov instruction: mov ax, ax mov ax, bx mov ax, cx mov ax, dx The first instruction accomplishes absolutely nothing. It copies the value from the ax register back into the ax register. The remaining three instructions copy the value of bx, cx and dx into ax. Note that the original values of bx, cx, and dx remain the same. The first operand (the destination) is not limited to ax; you can move values to any of these registers.

Constants are also pretty easy to deal with. Consider the following instructions: mov ax, 25 mov bx, 195 mov cx, 2056 mov dx, 1000

These instructions are all pretty straightforward; they load their respective registers with the specified hexadecimal constant. There are three addressing modes which deal with accessing data in memory. These addressing modes take the following forms: mov ax, [1000] mov ax, [bx] mov ax, [1000+bx] The first instruction above uses the direct addressing mode to load ax with the 16 bit value stored in memory starting at location 1000 hex.

1 of 3

3/8/2010 2:04 PM

8086 Address Modes

[Link]

The mov ax, [bx] instruction loads ax from the memory location specified by the contents of the bx register. This is an indirect addressing mode. Rather than using the value in bx, this instruction accesses to the memory location whose address appears in bx.

Note that the following two instructions: mov bx, 1000 mov ax, [bx] are equivalent to the single instruction: mov ax, [1000] Of course, the second sequence is preferable. However, there are many cases where the use of indirection is faster, shorter, and better.

Another addressing mode is the base plus index addressing mode. An example of this memory addressing mode is mov ax, [1000+bx] This instruction adds the contents of bx with 1000 to produce the address of the memory value to fetch. This instruction is useful for accessing elements of arrays, records, and other data structures.

2 of 3

3/8/2010 2:04 PM

8086 Address Modes

[Link]

3 of 3

3/8/2010 2:04 PM

You might also like