Вы находитесь на странице: 1из 15

Build Bright University

Lec: Lim Porngim (Msc) 1


Chapter 5
Addressing Mode

Register Addressing Mode: .. Model :..........[[ MOV ADD, ..
.[ Register . Register
Ex: MOV CL, DL . Register AM
ADD CX, DX . Register AM, .[.. ADD .[ Register .. Register
+ MOV AH, BL ....:. BL .... AH
- . ....

AH AL BH BL

AX BX

- .[....

AH AL BH BL

AX BX




- .. AX=7672H

+ ADD AL, CH AL=AL+CH
- . ....

AH AL CH CL

AX CX

- .[....

AH AL BH BL

AX CX




- .. AX=328AH
35 72 46 76
76 72 46 76
32 67 23 42
32 8A 23 42
Build Bright University
Lec: Lim Porngim (Msc) 2
+ ADD AX, CX AX=AX+CX
- . ....

AH AL CH CL

AX CX

- .[....
AX = AX+CX
= 3526H + 6451H
= 9977 H
- .. AX=9977H

.. + MOV AX, BH (Error .[.. AX=16 bits register . BH . 8 bit register)
+ Segment Register: [..[ ..[..._
- MOV ES, DS (Error .[.. ES . DS .:.. Segment Register)
- ADD AX, DS (Error .[.. DS . Segment Register :......[.. .
.. :. ._)
..
1- . AX=1000H, BL=90, .[.[.. MOV AL, BL ...:.. AX .
...
-.......

AH AL BH BL

AX BX

MOV BL, 90
MOV Al, BL
- .[....
AH AL
AH AL
AX

- .. AX=1090H




35 26 64 51
10 00 00 90
10 90
Build Bright University
Lec: Lim Porngim (Msc) 3
2-[ Debug program test ...
-a
0AF3:0100 MOV AX, 1000
0AF3:0102 MOV BL, 90
0AF3:0104 MOV AL, BL
0AF3:0106 int3
-g

Build Bright University
Lec: Lim Porngim (Msc) 4
Note: Debug program: ...... MS-DOS ..... ........
.. register .. 8086 8088 . Contents .. ........... program Debug program
... programmer .......,... register . instruction .. CPU ..]....
statement ..,......... 8086 /8088 .... ... programmer ...
CPU .. program ... machine code ... ... Instruction . data ....
memory
1-... Debug program:

-Click Start Menu
-Click Run type: cmd
-Type: debug ....









2- Command Debug:
q (quit) command: .. command .... debug program: - q
- R (register) command: .. command ... .. register .. 8086 /8088
contents ... - R
- A (Assemble): .. command .. debug program ..... statement ..
8086 /8088 .. debug program: - A
G (Go) command: .. command ....... program .. - g
- T (Trace) command: T . command .... debug program .....
statement: - T
- U (Unassemble) command: .. command .. machine code ..... .
staement . program: - U
- D (Dump): .. command .. data machine code memory : - D
- E (Enter) command: .. command .. debug program .. data . keyboard
.......... program : - e OA data list

Ex:
.... debug program ..]... Hex: 2D + 39 + 5A + 23
1. . AL, CL, BL, AH .... 1, 2, 3, 4 .. ...... AL Register
Build Bright University
Lec: Lim Porngim (Msc) 5
...
- Click start menu click run and type: cmd Ok Type: debug:
-A
0AF3:0100 MOV AL, 2D
0AF3:0102 MOV CL, 39
0AF3:0104 MOV BL, 5A
0AF3:0106 MOV AH, 23
0AF3:0108 ADD AL, CL
0AF3:010A ADD BL, AH
0AF3:010C ADD AL, BL
0AF3:010E INT3
0AF3:010F
-G

AX=23E3 BX=007D
CX=0039 DX=0000

-q (Exit)


Build Bright University
Lec: Lim Porngim (Msc) 6
Immediate Addressing Mode
.. mode ............ memory ... register .. 8086 /8088 ......
segment register ..]...... immediate ... segment register .......
i. ...... Immediate . General purpose register
ii. .... General purpose register ... segment register
Ex1: ..... statement ..]...... 5090h ... CS register
MOV AX, 5090
MOV CS, AX
Ex2: + MOV AH, 37H .. AH .:. 37H
- . ....

AH AL

AX

- .[....
AH AL

AX





RAM
+ MOV BX, 256H .. BX .:. 0 256 H
- . ....

BH BL

BX

- .[....
BH BL

BX RAM






24 57
37 57


37 H


12 3A
02 56


0256 H

Build Bright University
Lec: Lim Porngim (Msc) 7
+ ADD BH, 56H BH =BH +56 H
- . ....

BH BL

BX

- ....... BH =BH+56 H
=05 +56H
=5B
- .[....
BH BL

BX





RAM

..
+ [...[:....[:.. Register .. ... Error ..._..
MOV AL, 435H Error .[.. 435H .. 12 bits, .:. AL . 8 bits Register
MOV BX, 45768H Error .[.. 45768H .. 20 bits, .:. BX .. 16 bits Register
+ Segment Register: ........._.
MOV DS, 2500H Error .[.. DS . Segment Register
MOV ES, 4650H Error .[.. ES . Segment Register
+ ..,.. .... Segment Register ....[..
...... 16 bits General purpose register
.... 16 bits General purpose register ... . Segment Register
Ex: ..,..:. 2500H ... DS Register ....[..
1- MOV AX, 2500H
2- MOV DS, AX
....
1-AX=2500H
2-DS=AX=2500H

05 67
5B 67


5B H
Build Bright University
Lec: Lim Porngim (Msc) 8
Direct Addressing Mode: .. Mode .[ Offset Address .... ..,. data .._ ..
. Memory .., PA .. Mode .. [.....
PA=DS (SHL 1 time) +OA
Ex: MOV [1500], DX . Direct AM
MOV Cl, [1500] . Direct AM

DX CL





5000H


Data Segment 64Kb


1501H

1500H

PM (RAM)
MOV [1500], DX OA 0AF3:1500


+ MOV [28F0], BH ....:. BH Register ..... Data Segment
OA= 28F0
..... BX=254BH ........ Instruction ....

28F9 H

BX


DS
28F1H BH BL
28F0H
50 90 AA
AA





50

90






4B
25
4B 25
Build Bright University
Lec: Lim Porngim (Msc) 9
+ MOV [4F20], CX ....:. CX Register ..... Data Segment
OA= 4F20H . OA= 4F21H
..... CX=4583H ........ Instruction ....

4F99 H

CX


DS
4F21H CH CL
4F20H




c Indirect Addressing Mode: .. Mode .[ Pointer Register (BX, SI, DI) .....
OA .., Data .._ ... Memory

Ex: + MOV Al, [BX] ....:... Data Segment :.. OA ... BX Register
.. AL Register
..... AX=4284H, BX=2F40H, . Data Segment ... 4F00:2F40=37H,
4700:2F41=1AH
AH AL





4100:2F41
4F00:2F40


RAM (Data Segment)


BX = 2F40 (..:. 37H)
.[.... AX=4237H











45
83
45 83
42 37






1A
37
Build Bright University
Lec: Lim Porngim (Msc) 10
Ex: MOV [SI], CX ....:. CX Register ..... Stack Segment
OA ... SI . SI+1
..... CX=1584H, SI=2F00H ........ Instruction ...

RAM (Stack Segment)

CH CL

CX



2F01
2F00

pointer
SI SI+1

+ ADD BH, [SI] BH=BH+[SI]
..... BX=6585H, SI=24F4, .. Data Segment .... 2F00:24F4=18H,
2F00:24F5=27H, 2F00:24F6=69H ..... Instruction ...
BH BL RAM (Data Segment)
BX



65
+85
CE 2F00:24F6
2F00:24F5
2F00:24F4
BX

BH BL
















15
84
15 84
65 85






69
27
18
CE 85
Build Bright University
Lec: Lim Porngim (Msc) 11
Base Relative Addressing Mode
+.: Data Segment OA=BX + ..
OA=BX ..
+.: Stack Segment OA=BP + ..
OA=BP ..
... SI
- ..[.:..:.. 0
Ex1: MOV[BX+2], AL . ...:. AL Register ..... : Data Segment
OA (Offset Address)=BX+2
....... AX=2457H, BX=2F30H, ........ Instruction .....
.:..[.. OA=BX+2=2F30H+2=2F32H
RAM (Data Segment)




AH AL

AX

2F32H


EX2: MOV [BP-5], BX .... BX Register ... . Stack Segment
OA=BP-5 . OA=BP-5+1=BP-4
..... BX=1275H, BP=27F0H, ........ Instruction .....
+ ...:. BL OA=BP-5=27F0-5=2FEBH
+ ...:. BH OA=BP-4=27F0-4=27ECH
RAM (Stack Segment)




BH BL

BX
27ECH
27EBH








57

57






12
75

12 75
Build Bright University
Lec: Lim Porngim (Msc) 12
Index Relative Addressing Mode
+.: Data Segment OA=SI + ..
OA=SI ..
+.: Data Segment OA=DI + ..
OA=DI ..
-..[.:..:.. 0
Ex1: MOV [DI+5], AH ....:. AH register ... ..: Data segment
OA (Offset Address)=DI+5
....... AX=2784H, DI=2540H, ........ Instruction ..
.:..[.. OA=DI+5=2545H
RAM (Data Segment)




AH AL

AX

2545H


Ex2: MOV BX, [SI-3] . ...:... Data Segment OA (Offset Address) =
SI-3 . OA=SI-3+1= SI-2
....... SI=1890H, . Data segment ... 4500:188C=53, 4500:188D = 47H,
4500:188E=59H, 4500:188F=27H ........ Instruction ..
.:..[.._. :.:. Low byte: OA=SI-3=1890H-3=188DH
.:..[.._. :.:. Hight byte: OA=SI-2=1890H-2=188EH
RAM (Data Segment)


BH BL

BX
4500:188FH
4500:188EH
4500:188DH
4500:188CH








27

27 84




27H
59H
47H
53H

59 47
Build Bright University
Lec: Lim Porngim (Msc) 13
Ex3: + ADD AX, [DI- 4] AX = AX+[DI- 4+1][DI- 4] (Low byte)
....... AX=4658H, DI=2785H, . Data segment ... 2F00:2780 =45H,
2F00:2781=5BH, 2F00:2782=46H, 2F00:2783=18H ........ Instruction ..
.:..[.._. :.:. Low byte: OA=DI-4=2785H-4=2581DH
.:..[.._. :.:. Hight byte: OA=DI-3=2785H-3=2782H

RAM (Data Segment)


AH AL

AX
2F00:2783H
2F00:2782H
2F00:2781H
2F00:2780H







18H
46H
5BH
45H

46 5B
Build Bright University
Lec: Lim Porngim (Msc) 14
+ Based Indexed Relative Addressing Mode
+.: Data Segment OA=BX + SI + ..
OA=BX - SI - ..
+.: Data Segment OA=BX + DI + ..
OA=BX - DI - ..
-..[.:..:.. 0

Ex1: MOV AH, [BX][DI]
MOV AH, [BX+DI] . ...:... Data Segment OA=BX+DI
.. AH Register
....... AX=2584H, BX=1000H, DI=25F0H, . Data segment ...
4500:35F0=83H, 4500:35F1=27H, 4500:35F2=19H, 4500:35F3=23H .. ......
Instruction ..
.:..[.._ OA=BX+DI=1000H + 25F0H = 35F0

RAM (Data Segment)


AH AL

AX
4500:35F3H
4500:35F2H
4500:35F1H
4500:35F0H








23H
19H
27H
83H

83 84
Build Bright University
Lec: Lim Porngim (Msc) 15
Ex2: ADD CX, [BX-DI]+5
ADD CX, [BX-DI+5] CX=CX+[BX-DI+6][BX-DI+5]
....... CX=7548H, BX=3750H, DI=1000H, . Data segment ...
2F00:2755=25H, 2F00:2756=58H, 2F00:2757=7AH, 2F00:2758=29H ..... ...
Instruction ..
.:..[.._. :.:. Low byte OA=BX DI +5=3750H -1000H +5 = 2755H
.:..[.._. :.:. Hight byte OA=BX DI +6=3750H -1000H +6= 2756H

RAM (Data Segment)


CH CL

CX
2F00:2758H
2F00:2757H
2F00:2756H + 7548H
2F00:2755H pointer 5825H
BD6D








29H
7AH
58H
25H

75 48

Вам также может понравиться