1 / 11

Riyadh Philanthropic Society For Science Prince Sultan College For Woman

Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization & Assembly Language Lecture 18 Addressing Modes. Outline.

woody
Télécharger la présentation

Riyadh Philanthropic Society For Science Prince Sultan College For Woman

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. Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization & Assembly Language Lecture 18 Addressing Modes

  2. Outline • Study from Chapter 10 (10.1,10.2.1, 10.2.2, example 10.4 not included) • Introduction • Addressing Modes • Register Indirect Mode • Based and Indexed Addressing Modes Addressing Modes

  3. An operand is a register (ex. INC AX) An operand is a constant (ex. ADD A, 5) An operand is a variable(ex. ADD A, 5) Address memory operands indirectly Used with one dimensional arrays Used with two dimensional arrays Introduction • The way an operand is specified is known as its addressing mode. • Addressing modes: • Register mode • Immediate mode • Direct mode • Register Indirect • Based • Indexed • Based Indexed Addressing Modes

  4. The operand’s segment number is contained in DS The operand’s segment number is contained in SS Register Indirect Mode • The offset address of the operand is contained in a register. • I.e. The register acts as a pointer to the memory location. • Format: [register] • The register must be one of the following: • BX • SI • DI • BP Addressing Modes

  5. Register Indirect Mode – EX. 1 • Ex. suppose that SI contains 0100h, and the word at 0100h contains 1234h. • MOV AX, [SI] • The CPU: • 1. Examines SI and obtains the offset address 100h. • 2. Uses the address DS:0100h to obtain the value 1234h. • 3. Moves 1234h to AX. • MOV AX, SI • The CPU will move the value of SI, namely 100h, into AX. Addressing Modes

  6. Register Indirect Mode – EX. 2 • Ex. Write some code to sum in AX the elements of the 10-element array W defined by • W DW 10,20,30,40,50,60,70,80,90,100 • MOV AX, 0 ; AX holds sum • LEA SI, W ; SI points to array W • MOV CX, 10 ; CX has number of elements • ADDNOS: • ADD AX, [SI] ; sum = sum + element • ADD SI, 2 ; move pointer to the next element • LOOP ADDNOS ; loop until done Addressing Modes

  7. Based & Indexed Addressing Modes • The operand’s offset address is obtained by adding a number called a displacement to the contents of a register. • Displacement may be: • The offset address of a variable. (ex. A) • A constant (positive or negative). (ex. -2) • The offset address of a variable + or - a constant. (ex. A + 4) • Syntax: • [register + displacement] • [displacement + register] • [register] + displacement • displacement + [register] • displacement[register] Addressing Modes

  8. The operand’s segment number is contained in DS The operand’s segment number is contained in SS Based & Indexed Addressing Mode (Cont.) • The register must be one of the following: • BX • SI • DI • BP • The addressing mode is called based if BX (base register) or BP (base pointer) is used. • The addressing mode is called indexed if SI (source index) or DI (destination index) is used. Addressing Modes

  9. Based & Indexed Addressing Mode – EX. 1 • Ex. Suppose W is a word array, and BX contains 4 • MOV AX, W[BX] • The displacement is the offset address of variable W • The instruction moves the element at address W + 4 to AX. • (this is the third element in the array) • The instuction could also have been written in any of these forms: • MOV AX, [W+BX] • MOV AX, [BX+W] • MOV AX, W+[BX] • MOV AX, [BX]+W Addressing Modes

  10. Based & Indexed Addressing Mode – EX. 2 • Ex. suppose SI contains the address of a word array W • MOV AX, [SI+2] • The displacement is 2. • The instruction moves the contents of W + 2 to AX. • (this is the second element in the array) • The instruction could also have been written in any of these forms: • MOV AX, [2+SI] • MOV AX, 2+[SI] • MOV AX, [SI]+2 • MOV AX, 2[SI] Addressing Modes

  11. Based & Indexed Addressing Mode – EX. 3 • Ex. Write some code to sum in AX the elements of the 10-element array W defined by • W DW 10,20,30,40,50,60,70,80,90,100 • XOR AX, AX ; AX holds sum. Can also use MOV AX,0 • XOR BX, BX ; clear base register • MOV CX, 10 ; CX has number of elements • ADDNOS: • ADD AX, W[BX] ; sum = sum + element • ADD BX, 2 ; index next element • LOOP ADDNOS ; loop until done Addressing Modes

More Related