SlideShare a Scribd company logo
1
Outline
• One‐Dimensional Arrays
• Addressing Modes
• Two‐Dimensional Arrays
• Based Indexed Addressing Mode
2
One‐Dimensional Array A
3
• One‐Dimensional Array is an 
ordered list of elements, all of 
same type
• DB & DW pseudo‐ops to 
declare byte and word sized 
arrays 
Arrays
W DW 1000,40,29887,329
Address of the array variable is called base address of array
Offset Address Symbolic Address Contents
0300h W  1000d
0302h W +2 40d
0304h W +4 29887d
0306h W +6 329d
4
The DUP Operator
• The DUP (duplicate) is used to define arrays 
whose elements share a common initial value.
• repeat_count DUP (value)
• GAMMA DW 100 DUP (0)
• DELTA DB 212 DUP (?)
• LINE DB 5, 4, 3 DUP (2, 3 DUP (0), 1)
• LINE DB 5,4,2,0,0,0,1,2,0,0,0,1,2,0,0,0,1
5
DUP may be 
nested
One‐Dimensional Array A
W DW 10, 20, 30, 40, 50, 60
Offset address Symbolic address Decimal address
0200h W 10
0202h W + 2h 20
0204h W + 4h 30
0206h W + 6h 40
0208h W + 8h 50
020Ah W + Ah 60
6
Location of Array Elements
• The address of an array element can be 
specified by adding a constant to the base 
address
– If A is an array
– S is the size of every element in bytes 
Position  Location 
1 A
2 A + 1 x S
3 A + 2 x S
.
.
N A + (N‐1) x S
Example: Exchange 10th and 25th element of an array
• W[10] is located at W + 9x2    =   W + 18
• W[25] is located at W + 24x2  =   W + 48
MOV AX, W + 18
XCHG W+48, AX
MOV W+18, AX
Addressing Modes
• The way an operand is specified
• register mode: an operand is a register.
• immediate mode: an operand is a constant.
• direct mode: an operand is a variable.
– MOV AX, 0
– ADD ALPHA, AX
9
ADDITIONAL ADDRESSING MODES
Four additional addressing modes to address 
memory operands indirectly
1. Register Indirect Mode
2. Based 
3. Indexed
4. Based Indexed
Register Indirect Mode
Offset address of the operand is contained in a 
register. Register acts like a pointer to the 
memory location
• [register]
• The register is BX, SI, DI, or BP.
11
the operand’s 
segment number 
is contained in DS
the operand’s 
segment number 
is contained in SS
Suppose that SI contains 0100h, and 
the word at 0100h contains 1234h.
• MOV AX, [SI] ; AX = 1234h
The CPU
1. examines SI and obtains the offset address 100h,
2. uses the address DS:0100h to obtain the value 
1234h, and
3. moves 1234h to AX.
• MOV AX, SI ; AX = 0100h
12
Suppose that
BX contains 1000h Offset 1000h contains 1BACh
SI contains 2000h Offset 2000h contains 20FEh
DI contains 3000h Offset 3000h contains 031Dh
where the above  offsets are in the data segment addressed by DS.
13
Tell which of the following instructions are legal. 
If legal, give the source offset address and the 
result or number moved.
a. MOV  BX, [BX]
b. MOV  CX, [SI]
c. MOV  BX, [AX]
d. ADD  [SI], [DI]
e. INC  [DI]
Source offset Result
1000h 1BACh
2000h 20FEh
illegal source register 
illegal memory‐memory addition
3000h 031Eh
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
14
The idea is to set a pointer to the base of the array, and let it 
move up the array, summing elements as it goes.
XOR AX, AX; 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
Home Assignment 
• Write a procedure to reverse an array of N 
words
Based and Indexed Addressing Mode
• Operand’s offset address is obtained by adding a number 
called displacement to the contents of a register
• Displacement can be of following forms;
– Offset address of a variable
– A constant (+ve or ‐ve)
– Offset address of a variable plus or minus a constant
• If A is a variable; 
16
A
‐2
A + 4
Based and Indexed Addressing Mode
• [register + displacement]
• [displacement  + register]
• [register] + displacement
• displacement + [register]
• displacement[register]
• The register is SI, DI, BX, or BP.
17
Based and Indexed Addressing Mode
Suppose W is a word array; BX contains 4
MOV AX, W[BX]
Will move the element at address W + 4 to AX (the third element 
of array) 
MOV AX, [W + BX]
MOV AX, [BX + W]
MOV AX, W + [BX]
MOV AX, [BX] + W
18
Rework the last example by using 
based mode.
XOR AX, AX ; AX holds sum
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
19
Suppose that ALPHA is declared as
ALPHA DW 0123H, 0456h, 0789h, 0ABCDh
in the segment addressed by DS.
Suppose also that
BX contains 2 Offset 0002 contains 1084h
SI contains 4 Offset 0004 contains 2BACh
DI contains 1
20
Tell which of the following instructions are legal. If legal, give the 
source offset address and the result or number moved.
Source offset Number moved
a. MOV  AX, [ALPHA+BX] ALPHA+2 0456h
b. MOV  BX, [BX+2] 2+2 = 4 2BACh
c. MOV  CX, ALPHA[SI] ALPHA+4 0789h
d. MOV  AX, –2[SI] –2+4 = 2 1084h
e. MOV  BX, [ALPHA+3+DI] ALPHA+4 0789h
f. MOV  AX, [BX] 2 Illegal form of source operand
g. ADD  BX, [ALPHA+AX] Illegal source register
PTR OPERATOR
• Operands of instruction must be of the same type
MOV AX, 1  ; legal word instruction
MOV BH, 5; legal byte instruction
MOV [BX], 1  ; illegal cant interpret whether destination is a 
;byte operand pointed by bx or a word
• For destination to be byte
MOV BYTE PTR [BX], 1
• For destination to be word
MOV WORD PTR [BX], 1
Using PTR to Override a type
type PTR address_expression
If we delare
DOLLARS DB 1AH
CENTS DB 52H
MOV AX, DOLLARS ; ILLEGAL
MOV AX, WORD PTR DOLLARS; AL= DOLLARS, AH = CENTS
;will move 521AH to AX
Label pseudo op
• To get around problem of type conflict;
MONEY LABEL WORD
DOLLARS DB 1AH
CENTS DB 52H
• Declares MONEY as a word variable and 
components DOLLARS and CENTS as byte
• MOV AX, MONEY ; LEGAL
• MOV AL, DOLLARS ; LEGAL
• MOV AH, CENTS ; LEGAL
SEGMENT OVERRIDE
• BX, SI, DI specify offset relative to DS
• Possible to specify offset relative to other 
segments
Segment_register : [pointer_register]
MOV AX, ES:[SI]
CAN also be used with based and indexed 
addressing modes
Accessing the STACK
• When BP specifies the offset address, SS supplies 
the segment number
• BP may be used to access elements of the stack
• Move top three elements of stack to AX, BX, CX 
without changing the stack
MOV BP, SP
MOV AX, [BP]
MOV BX, [BP + 2]
MOV CX, [BP + 4]
Two‐Dimensional Array B
26
• An array of arrays
• A One Dimensional Array whose elements are 
also One Dimensional Array 
• Arranged as rows and cloumns
How Two‐Dimensional Array are stored
Suppose array B has 
10, 20, 30, 40 in the first row,
50, 60, 70, 80 in the 2nd row,
&
90, 100, 110, 120 in the 3rd row
Row‐Major Order
B DW 10, 20, 30, 40
DW 50, 60, 70, 80
DW 90, 100, 110, 120
Used when elements in a row are to be 
processed together sequentially
28
Column‐Major Order
B DW 10, 50, 90
DW 20, 60, 100
DW 30, 70, 110
DW 40, 80, 120
Used when elements in a column are to be 
processed together sequentially
29
Locating an element in an array
• Consider M xN array stored in row major order
• Size of element is S
• To find location of A[I,j]
• Find where the row i  begins
• Location of jth element in that row
– Row 1 begins at A
– Row 2 begins at A + N x S
– Row 3 begins at A + 2 x N x S
– Row i begins at A + (i‐1) x N x S
jth element in a row is located at (j‐1) x S
Final Result
Location of A[i,j]
A + { (i‐1) x N + (j ‐ 1)} x S
• For column major ordered array;
Location of A[i,j]
A + { (i‐1) + (j ‐ 1) x M} x S
Based Indexed Addressing Mode
• Offset address of the operand is the sum of;
– Contents of a base register (BX or BP)
– Contents of an index register (DI or SI)
– Optionally a variable's offset address
– Optionally a constant (+ve or ‐ve)
Based Indexed Addressing Mode
• variable [base_register][index_register]
• [base_register + index_register + variable + constant]
• variable [base_register + index_register + constant]
• constant [base_register + index_register + variable]
33
Based Indexed Addressing Mode
• W is a word variable
• BX contains 2
• Si  contains 4
MOV AX, W[BX][SI]
Will move contents of W + 6 to AX
MOV AX, [W + BX + SI]
MOV AX, W[BX + SI]
34
• M is a 5x7 word array stored in row major 
order, write some code to;
– Clear row 3
– Clear column 4  
1. Clear row 3
For an MxN array; Row i begins at A + (I‐1) x N x S
Thus in a 5x7 array, row 3 begins at;  A + (3‐1) x7x2 = A + 28;
MOV BX, 28
XOR SI, SI
MOV CX, 7
CLEAR:
MOV A[BX][SI], 0
ADD SI,2
LOOP CLEAR
• M is a 5x7 word array stored in row major 
order, write some code to;
– Clear row 3
– Clear column 4  
2. Clear column 4  
For an MxN array; column j begins at A + (j‐1)  S
Column 4 begins at A + (4‐1) x 2 = A + 6;
Since A is a 7 column array stored in row major order, to get to the next 
element in column 4 we need to add 7x 2 = 14 ; 
MOV SI, 6
XOR BX, BX
MOV CX, 5
CLEAR:
MOV A[BX][SI], 0
ADD BX,14
LOOP CLEAR
An application: Average Test Scores
sum[j] = 0
i = 1
FOR  5  times  DO
sum[j] = sum[j] + score[i, j]
i = i + 1
END_FOR
37

More Related Content

PDF
chapter 7 Logic, shift and rotate instructions
PPTX
Zulfiqar ali bhutto’s era (1971 1977)
PDF
Solution manual of assembly language programming and organization of the ibm ...
PDF
Chap 8 The stack and introduction to procedures & Chapter 9 multiplication an...
PPT
TCP/IP Network ppt
PPT
Packet tracer
PDF
Chapter 5The proessor status and the FLAGS registers
PDF
Chapter 6 Flow control Instructions
chapter 7 Logic, shift and rotate instructions
Zulfiqar ali bhutto’s era (1971 1977)
Solution manual of assembly language programming and organization of the ibm ...
Chap 8 The stack and introduction to procedures & Chapter 9 multiplication an...
TCP/IP Network ppt
Packet tracer
Chapter 5The proessor status and the FLAGS registers
Chapter 6 Flow control Instructions

What's hot (20)

PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 7 (Logic, Shift,...
PDF
assembly language programming and organization of IBM PC" by YTHA YU
PDF
Introduction to ibm pc assembly language
PDF
Assembly Langauge Chap 1
PDF
Representation of numbers and characters
PPT
Logic, shift and rotate instruction
PPTX
assembly language programming organization of IBM PC chapter 9 part-1(MULTIPL...
DOCX
MASM -UNIT-III
PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 5 (The Processor...
PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 6 (Flow Control ...
PPTX
Moore Mealy Machine Conversion
PDF
COMPILER DESIGN- Syntax Directed Translation
PPTX
Chapter 2 programming concepts - I
PPTX
Binary and hex input/output (in 8086 assembuly langyage)
PPTX
Stack and its usage in assembly language
PPTX
Assembly Language Programming By Ytha Yu, Charles Marut Chap 4 (Introduction ...
DOC
Generalized transition graphs
PPTX
Flow control instructions
PDF
Organization of the ibm personal computers
PPT
Assembly Language Lecture 5
Assembly Language Programming By Ytha Yu, Charles Marut Chap 7 (Logic, Shift,...
assembly language programming and organization of IBM PC" by YTHA YU
Introduction to ibm pc assembly language
Assembly Langauge Chap 1
Representation of numbers and characters
Logic, shift and rotate instruction
assembly language programming organization of IBM PC chapter 9 part-1(MULTIPL...
MASM -UNIT-III
Assembly Language Programming By Ytha Yu, Charles Marut Chap 5 (The Processor...
Assembly Language Programming By Ytha Yu, Charles Marut Chap 6 (Flow Control ...
Moore Mealy Machine Conversion
COMPILER DESIGN- Syntax Directed Translation
Chapter 2 programming concepts - I
Binary and hex input/output (in 8086 assembuly langyage)
Stack and its usage in assembly language
Assembly Language Programming By Ytha Yu, Charles Marut Chap 4 (Introduction ...
Generalized transition graphs
Flow control instructions
Organization of the ibm personal computers
Assembly Language Lecture 5
Ad

Viewers also liked (20)

PPTX
ADDRESSING MODE
PPTX
bubble sorting of an array in 8086 assembly language
PPTX
Addressing mode
PPT
Chapter 1
PPT
Chapter 3 INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING
PPT
Assembly Language Basics
PPT
Assembly Language Programming Of 8085
PPT
Assembly language programming(unit 4)
PPT
Chapter 3 (1)
PPTX
Assembly Language
PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 8 (The Stack and...
PPTX
Addressing modes
PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 4 (Introduction ...
PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 1(Microcomputer ...
PPTX
Processor Basics
POT
Arrays and addressing modes
PPT
Kleene's theorem
PPT
Unit2 control unit
PPT
Assembly Language Lecture 4
PPT
Assembly Language Lecture 2
ADDRESSING MODE
bubble sorting of an array in 8086 assembly language
Addressing mode
Chapter 1
Chapter 3 INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING
Assembly Language Basics
Assembly Language Programming Of 8085
Assembly language programming(unit 4)
Chapter 3 (1)
Assembly Language
Assembly Language Programming By Ytha Yu, Charles Marut Chap 8 (The Stack and...
Addressing modes
Assembly Language Programming By Ytha Yu, Charles Marut Chap 4 (Introduction ...
Assembly Language Programming By Ytha Yu, Charles Marut Chap 1(Microcomputer ...
Processor Basics
Arrays and addressing modes
Kleene's theorem
Unit2 control unit
Assembly Language Lecture 4
Assembly Language Lecture 2
Ad

Similar to Assembly Language Programming By Ytha Yu, Charles Marut Chap 10 ( Arrays and Addressing Modes) (12)

PPTX
Instruction sets of 8086
PPTX
C-Programming Arrays.pptx
PPTX
C-Programming Arrays.pptx
PPTX
Assembly 8086
PPTX
8086 Instruction set
PPTX
All-addressing-modes of the 80386 /microprocessor.pptx
PPTX
8086 programming guide programs samples and string permutations.pptx
PPTX
Based and indexed addressing
PPTX
Chapter#3 Data Movement Instructions.pptx
DOCX
Notes arithmetic instructions
PDF
8086 instruction set with types
Instruction sets of 8086
C-Programming Arrays.pptx
C-Programming Arrays.pptx
Assembly 8086
8086 Instruction set
All-addressing-modes of the 80386 /microprocessor.pptx
8086 programming guide programs samples and string permutations.pptx
Based and indexed addressing
Chapter#3 Data Movement Instructions.pptx
Notes arithmetic instructions
8086 instruction set with types

More from Bilal Amjad (10)

PDF
IoT Based Smart Energy Meter using Raspberry Pi and Arduino
PDF
Power Systems analysis with MATPOWER and Simscape Electrical (MATLAB/Simulink)
PDF
Solar Radiation monthly prediction and forecasting using Machine Learning tec...
PDF
Big Data in Smart Grid
PPTX
Flexibility of Power System (Sources of flexibility & flexibility markets)
PPTX
assembly language programming organization of IBM PC chapter 9 part-2(decimal...
PPTX
Limit of complex number
PPTX
simple combinational lock
PPTX
4-bit camparator
PPTX
Orthogonal trajectories
IoT Based Smart Energy Meter using Raspberry Pi and Arduino
Power Systems analysis with MATPOWER and Simscape Electrical (MATLAB/Simulink)
Solar Radiation monthly prediction and forecasting using Machine Learning tec...
Big Data in Smart Grid
Flexibility of Power System (Sources of flexibility & flexibility markets)
assembly language programming organization of IBM PC chapter 9 part-2(decimal...
Limit of complex number
simple combinational lock
4-bit camparator
Orthogonal trajectories

Recently uploaded (20)

PPTX
Geodesy 1.pptx...............................................
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPT
Project quality management in manufacturing
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPT
Mechanical Engineering MATERIALS Selection
PDF
Digital Logic Computer Design lecture notes
PDF
composite construction of structures.pdf
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
additive manufacturing of ss316l using mig welding
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
Geodesy 1.pptx...............................................
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Lesson 3_Tessellation.pptx finite Mathematics
Lecture Notes Electrical Wiring System Components
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Project quality management in manufacturing
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Mechanical Engineering MATERIALS Selection
Digital Logic Computer Design lecture notes
composite construction of structures.pdf
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
additive manufacturing of ss316l using mig welding
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Model Code of Practice - Construction Work - 21102022 .pdf

Assembly Language Programming By Ytha Yu, Charles Marut Chap 10 ( Arrays and Addressing Modes)