1 / 9

Lect 4: Instruction Set and Addressing Modes

Lect 4: Instruction Set and Addressing Modes. 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

otylia
Download Presentation

Lect 4: Instruction Set and Addressing Modes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • MOV AL, 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. 01000 01001 01002 01003 01004 IP CS DS 8B 0E 34 12 XX SS ES FS GS 0000 0100 AX 0200 BX CX DX SP BP SI XXXX DI 03234 ED 03235 BE BEED 16-bit Memory Operand Addressing • Direct Addressing Mode • PA = Segment Base : Direct Address • MOV CX, [1234H] • See fig 3.13 MOV CX, [1234H]

  5. 01000 01001 01002 01003 01004 IP CS DS 8B 04 XX XX XX SS ES FS GS 0000 0100 AX 0200 BX CX DX SP BP XXXX SI DI 03234 ED 03235 BE BEED 1234 16-bit Memory Operand Addressing • Register Indirect Addressing Mode • PA = Segment Base : Indirect Address {BX,BP,SI,DI} • example : MOV AX, [SI] MOV AX,[SI]

  6. 01000 01001 01002 01003 01004 IP CS DS SS ES FS GS 88 07 34 12 XX 0000 Element n-1 Displacement AX 0100 BX 0200 Data Structure CX + DX Element 1 SP Base Register BP Element 0 SI ED DI 1000 04234 04235 1234 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

  7. 01000 01001 01002 01003 01004 IP CS DS SS ES FS GS AX BX CX DX SP BP SI DI 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: MOV AL, [SI]+2000H 8A 44 34 12 XX MOV AL, [SI]+1234H 0000 0100 0200 Element n-1 Index Register XX 1000 Array of data + BE 05234 05235 Element 1 Displacement Element 0 2000

  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: MOV AH, [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

More Related