Extended Indirect Addressing; Indirect Addressing With Autoincrement; Extended Indirect Addressing With Autoincrement - Intel 8XC196NT User Manual

Table of Contents

Advertisement

8XC196NT USER'S MANUAL
LD
AX,[BX]
ADDB AL,BL,[CX]
POP
[AX]
3.2.3.1

Extended Indirect Addressing

Extended load and store instructions can use indirect addressing. The only difference is that the
register containing the indirect address must be a word-aligned 24-bit register to allow access to
the entire 1-Mbyte address space. The following instructions use extended indirect addressing:
ELD
AX, [EX]
ELDB AL, [EX]
EST
AX, [EX]
ESTB AL, [EX]
3.2.3.2

Indirect Addressing with Autoincrement

You can choose to automatically increment the indirect address after the current access. You spec-
ify autoincrementing by adding a plus sign (+) to the end of the indirect reference. In this case,
the instruction automatically increments the indirect address (by one if the destination is an 8-bit
register or by two if it is a 16-bit register). When your code is assembled, the assembler automat-
ically sets the least-significant bit of the indirect address register. The following instructions use
indirect addressing with autoincrement:
LD
AX,[BX]+
ADDB AL,BL,[CX]+
PUSH [AX]+
3.2.3.3

Extended Indirect Addressing with Autoincrement

The extended load and store instructions can also use indirect addressing with autoincrement. The
only difference is that the register containing the indirect address must be a word-aligned 24-bit
register to allow access to the entire 1-Mbyte address space. The following instructions use ex-
tended indirect addressing with autoincrement:
ELD
AX, [EX]+
ELDB AL, [EX]+
EST
AX, [EX]+
ESTB AL, [EX]+
3-8
; AX ← MEM_WORD(BX)
; AL ← BL + MEM_BYTE(CX)
; MEM_WORD(AX) ← MEM_WORD(SP)
; SP ← SP + 2
; AX ← MEM_WORD (EX)
; AL ← MEM_BYTE (EX)
; MEM_WORD (EX) ← AX
; MEM_BYTE (EX) ← AL
; AX ← MEM_WORD(BX)
; BX ← BX + 2
; AL ← BL + MEM_BYTE(CX)
; CX ← CX + 1
; SP ← SP - 2
; MEM_WORD(SP) ← MEM_WORD(AX)
; AX ← AX + 2
; AX ← MEM_WORD (EX)
; EX ← EX + 2
; AL ← MEM_BYTE (EX)
; EX ← EX + 2
; MEM_WORD (EX) ← AX
; MEM_WORD (EX) ← MEM_WORD (EX + 2)
; MEM_BYTE (EX) ← AL
; MEM_BYTE (EX) ← MEM_BYTE (EX + 2)

Advertisement

Table of Contents
loading

Table of Contents