1 / 28

Addressing Mode

Addressing Mode. 8086 Microprocessor Register. 8086 Registers Category. General Purpose Registers. This register is used for general data manipulation Even CPU able to operate on the data stored in memory, the same data can be process much faster if it is in register

snowy
Télécharger la présentation

Addressing Mode

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. Addressing Mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  2. 8086 Microprocessor Register 8086 Registers Category MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  3. General Purpose Registers • This register is used for general data manipulation • Even CPU able to operate on the data stored in memory, the same data can be process much faster if it is in register • The function for 16-bit 8086 microprocessor register is as follows MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  4. 8-bit Data Division from 16-bit • 16-bit register can be divided into two 8-bit register (i.e AX=AH&AL, BX=BH&BL, CX=CH&CL, DX=DH&DL) Figure 1: 8-bit Data Division from 16-bit MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  5. Segment Register • Main memory management in 8086 use segment concept • The following show the usage of segment in memory MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  6. Instruction Pointer Register (IP) • Register which stores instruction address to be executed • Each time instruction is fetch from memory to be executed in processor, IP content will be added so that it always show to the next instruction • If branch instruction, the IP content will be loaded with new value which is the branch address MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  7. Index Register and Pointer • This registers is used for storing relative shifting value for memory address location • There are 2 pointer register: • Stack Pointer (SP) – point to the top stack • Base Pointer (BP) – used for fetch data in data segment • There are 2 index register: • Source Index (SI) – contains offset address for source operand in data segment • Destination Index (DI) - contains offset value for destination operand in DS MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  8. Flag/Status Register • Flag bit status register is used to determine flow control when conditional branch instruction is executed R = Register U = Undefined OF = Overflow Flag DF = Direction Flag IF = Instruction Flag TF = Trap Flag SF = Sign Flag ZF = Zero Flag AF = Auxiliary Flag PF = Parity Flag CF = Carry Flag MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  9. Addressing Mode • Concept from Computer Science • Are an aspect of the Instruction Set Architecture (ISA) in most CPU design • How machine language instruction in that architecture identify operand of each instruction • Primarily interest the compiler writer and those who write code directly in assembly language MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  10. Addressing Mode • Addressing Mode is a technique to determine which operand to be fetched. (Operand = argument for an operator or for machine language instruction) • Addressing mode is used for: • Give flexible programming to user using pointers to memory, counter for loop control, index for data and program replacement • Reduce bit numbers in address field for an instruction • There are 7 types of addressing mode in 8086 register: • Register addressing mode • Immediate addressing mode • Direct addressing mode • Indirect addressing mode • Base relative addressing mode • Index relative addressing mode • Base index relative addressing mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  11. Addressing Mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  12. Register Addressing Mode • Simplest mode and often used • Involved register usage • Data obtained from operation is stored in other register • EA = R EA = Effective Address (EA) for one location which contain reference operand R = Address field content in instruction which refer to register (R) MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  13. Register Addressing Mode Figure: Register Addressing Mode (EA=R) MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  14. Register Addressing Mode Example: Copy DX value to BX Source operand Destination operand MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  15. Register Addressing Mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  16. Immediate Addressing Mode • Data is coded directly into machine code instruction • Operand for source is a constant and is part of instruction • Operand = A (where A = content for address field in instruction Figure: Immediate Addressing Mode (Operand = A) Example: Load value 2550H to AX Source operand Destination operand MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  17. Immediate Addressing Mode Invalid Example: • Can’t be used with data segment (DS) and flag register (DF) • This problem can be overcome by loading 0123H to one general purpose register and then the register value is copied to segment register as the following: Load value directly to DS Source operand Destination operand MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  18. Immediate Addressing Mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  19. Direct Addressing Mode • Operand is stored in memory location, commonly data segment (DS) • Source operand is the address not immediate data (written in [ ]) • This address is effective address which is the address of 16-bit offset for operand storage location (from current DS value) • Effective address need to be coupled with DS content to get the true operand address (physical address) EA = A EA = Effective address for location that contains referred operand A = Content for address field in one instruction MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  20. Direct Addressing Mode Example Effective Address given is = 2400. If DS content is 2000 therefore physical address is Physical Address = Segment Address + Effective Address MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  21. Indirect Addressing Mode R= content for address field in instruction which referred to register • This mode use register as substitute to constant (in direct addressing mode) to determine 16-bit offset address for an operand • Offset address where data is placed might be in base pointer register (BP), base register (BX), index register (DI,SI) • In ambiguity case, assembler use BYTE PTR and WORD PTR to show the size of data address using memory pointer MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  22. Indirect Addressing Mode Example: • It is often used to access data table from memory Effective Address given is = 1122. If DS content is 1010 therefore physical address is Physical Address = Segment Address + Effective Address MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  23. Base Relative Addressing Mode • Operand located in address obtained from addition of 8 or 16 bit displacement into one of BX or BP and the result is then combined with segment data (DS/SS) • This 8 or 16- bit displacement must be specified in operand field and translated as signed two’s compliment • For 8-bit, displacement must in the range of -128 to +127 • For 16-bit, displacement must in the range of -32768 to +32767 • Effective Address = [Base register] + displacement Physical Address = DS/SS = [Base register] + displacement MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  24. Base Relative Addressing Mode Example: Effective Address = Register [BX] + displacement If DS content is 4000 therefore physical address is: Physical Address = Segment Address + Effective Address MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  25. Indexed Relative Addressing Mode • The same as base addressing except that index register (SI/DI) is used • Operand is at given address by signed 8 or 16-bit displacement addition to one of SI or DI and the result is then added with segment register (DS=Default) Example MOV DX, ARRAY [SI] Effective address = register [SI] + ARRAY = 5000 + 1234H = 6234H If DS content is 2000, therefore the physical address is Physical address = Segment address + Effective address = 20000H + 6234H =26234H MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  26. Indexed Relative Addressing Mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  27. Base Indexed Relative Addressing Mode • Combine base addressing mode and indexed addressing mode • Base register (BX?BP) is added to index register (DI/SI) as positive integer (each register is in the range of 0 to 65535) • As default, segment address is obtained from DS except for BP register which is obtained form SS • Effective Address = [base address] + [index register] + displacement Example Let say BX = 1000X, SI = 2000H, BETA = 1234H, DS =1200H Effective Address = register [BX] + register [SI] + ARRAY Physical Address = Segment address + Effective address MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

  28. Base Indexed Relative Addressing Mode MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR

More Related