Download presentation
Presentation is loading. Please wait.
Published byMaud Armstrong Modified over 9 years ago
1
Lect 4: Instruction Set and Addressing Modes
2
386 Instruction Set (3.4) Basic Instruction Set : 8086/8088 instruction set Extended Instruction Set : 80286; several new instructions and additional addressing modes 80386 specific instruction set: See page 62, Fig 3.6 Addressing Modes of 386DX (3.5) Addressing Modes: a method of specifying an operand Operands : in REG, Memory, I/O ports, and within Instruction * Control Transfer : direct, indirect addressing the modes available register addressing : REG immediate addressing: within Instruction direct addressing register indirect addressing based addressing indexed addressing based indexed addressing MEM or I/O
3
Addressing Modes Register Operand Addressing Mode can be accessed in byte, word, or double word sizes. MOV AX, BX Byte: AL, AH, BL, BH, CL, CH, DL, DH Word: AX, BX, CX, DX, SP, BP, SI, DI, CS, DS, SS, ES, FS, GS Double Word: EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI See Fig 3.8 in page 64 Immediate Operand Addressing an operand is part of the instruction MOVAL, 15H 8 bits, 16 bits, and 32 bits in length See Fig 3.10 in page 67 16-bit Memory Operand Addressing Modes 16-bit addressing modes and 32-bit addressing modes Physical address = Segment Base: EA(effective address) Segment Base Address(SBA) : the starting location of the segment EA : the offset of the operand from the beginning of the segment of memory EA = Base + Index + Displacement Base = BX or BP, Index = SI or DI, displacement = 8-bit or 16-bit
4
16-bit Memory Operand Addressing Direct Addressing Mode PA = Segment Base : Direct Address MOV CX, [1234H] See fig 3.13 MOV CX, [1234H] IP CS DS SS ES FS GS AX BX CX DX SP BP SI DI 01000 01001 01002 01003 01004 8B 0E 34 12 XX 0000 0100 0200 XXXX 03234 ED 03235 BE BEED
5
16-bit Memory Operand Addressing Register Indirect Addressing Mode PA = Segment Base : Indirect Address {BX,BP,SI,DI} example : MOVAX, [SI] MOV AX,[SI] IP CS DS SS ES FS GS AX BX CX DX SP BP SI DI 01000 01001 01002 01003 01004 8B 04 XX 0000 0100 0200 XXXX 03234 ED 03235 BE BEED 1234
6
16-bit Memory Operand Addressing Based Addressing Mode PA = Segment Base : {BX or BP} + {8-bit or 16-bit displacement} Base register : the beginning of a data structure See Fig 3.16 (b) in page 74 Example: MOV [BX]+1234H, AL MOV [BX]+1234H, AL IP CS DS SS ES FS GS AX BX CX DX SP BP SI DI 01000 01001 01002 01003 01004 88 07 34 12 XX 0000 0100 0200 04234 04235 1234 ED 1000 Displacement Base Register + Element 0 Element 1 Data Structure Element n-1
7
16-bit Memory Operand Addressing Indexed Addressing Mode PA = Segment Base : {SI, DI}+{8-bit or 16-bit displacement} Displacement : the starting address of an array; Index: selects the specific element in the array Example: MOVAL, [SI]+2000H Index Register Displacement + Element 0 Element 1 Array of data Element n-1 IP CS DS SS ES FS GS AX BX CX DX SP BP SI DI 01000 01001 01002 01003 01004 8A 44 34 12 XX 0000 0100 0200 05234 05235 2000 XX 1000 MOV AL, [SI]+1234H BE
8
16-bit Memory Operand Addressing Based-Indexed Addressing Mode PA= Seg Base: {BX, BP}+{SI,DI}+{8-bit or 16-bit displacement} to access complex data structures See fig 3.20 in page 80 Example: MOVAH, [BX][SI]+1234H opcode : 8A 44 34 12
9
32-bit Memory Operand Addressing Modes Enhanced in two ways Scale factor : EA = base + (index x scale factor) + displacement PA = Segment Base: EA See fig 3.23 in page 83: change 16-bit displacement to 32-bit displacement How can we specify the 32-bit extension modes? –Default (D) bit in the code segment descriptor –2 prefixes to the instruction set Operand size prefix Address size prefix
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.