Question No.1 Solution
1. mov [bx+si+di],ax
physical address = segment * 0x10 + ea
&
ea = bAse + index + offset
ea = a12eh + 0010 +0300
= af24h
physical address = segment * 0x10 + ea
= ds + ea
= 22eah + af24h
= 0x321934
2. ADD AX,[BP+12]
physical address = segment * 0x10 + ea
&
ea = bAse + index + offset
ea = 420ah + 02ach + 12
=
44434
so,
physical address = segment * 0x10 + ea
= 0fe0h +44434
= 0x45948
Question No. 1:
We have the following register values:
AX = 420AH,
BX = A12EH,
DS = 22EAH,
CS = 0100H,
ES = 0FEAH,
SS = 0FE0H,
SI = 0010,
BP = 02ACH and
DI = 0300H.
You are required to calculate the physical
address generated by each of the following instructions?
·
mov [bx+si+di],ax
·
ADD AX,[BP+12]
Solution:
1.mov [bx+si+di],ax
EA= A12EH+0010+ 0300
=AF24H
Physical address = segment*0x10+EA
= DS +EA
=22EAH + AF24H
=0x321934
·
ADD AX,[BP+12]
EA = 420AH , [02ACH+12]
= ADD 420AH, 02424
= 44434
Physical address = segment*0x10+EA
=SS+EA
= 0FE0H+44434
=0x45948
|
Instruction
|
Register current value after the
instruction execution
|
IP
(Instruction Pointer)
|
Flags
|
|
|||||||||||||
OF
|
CF
|
ZF
|
PF
|
SF
|
AF
|
|||||||||||||
1
|
[ORG 0X0100]
|
AX
|
0000
|
0100
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0000
|
|
||||||||||||||||
CX
|
0028
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
2
|
MOV CX, 10
|
AX
|
0000
|
0103
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0000
|
|
||||||||||||||||
CX
|
0005
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
3
|
XOR AX, AX
|
AX
|
0000
|
0105
|
0
|
0
|
1
|
1
|
0
|
0
|
|
|||||||
BX
|
0000
|
|
||||||||||||||||
CX
|
0005
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
4
|
MOV BX, NUM
|
AX
|
0000
|
0108
|
0
|
0
|
1
|
1
|
0
|
0
|
|
|||||||
BX
|
011C
|
|
||||||||||||||||
CX
|
0005
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
5
|
ADD AX, [BX]
|
AX
|
0000
|
010A
|
0
|
0
|
1
|
1
|
0
|
0
|
|
|||||||
BX
|
011C
|
|
||||||||||||||||
CX
|
0005
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
6
|
ADD BX, 2
|
AX
|
0000
|
010E
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
011E
|
|
||||||||||||||||
CX
|
0005
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
7
|
SUB CX, 1
|
AX
|
0000
|
0112
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
011E
|
|
||||||||||||||||
CX
|
0004
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
8
|
JNZ L1
|
AX
|
0000
|
0108
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
011E
|
|
||||||||||||||||
CX
|
0004
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
9
|
ADD AX, [BX]
|
AX
|
0001
|
010A
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
011E
|
|
||||||||||||||||
CX
|
0004
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
10
|
ADD BX, 2
|
AX
|
0001
|
010E
|
0
|
0
|
0
|
0
|
0
|
1
|
|
|||||||
BX
|
0120
|
|
||||||||||||||||
CX
|
0004
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
11
|
SUB CX, 1
|
AX
|
0001
|
0112
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0120
|
|
||||||||||||||||
CX
|
0003
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
12
|
JNZ L1
|
AX
|
0001
|
0108
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0120
|
|
||||||||||||||||
CX
|
0003
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
13
|
ADD AX, [BX]
|
AX
|
0003
|
010A
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0120
|
|
||||||||||||||||
CX
|
0003
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
14
|
ADD BX, 2
|
AX
|
0003
|
010E
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0122
|
|
||||||||||||||||
CX
|
0003
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
15
|
SUB CX, 1
|
AX
|
0003
|
0112
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0122
|
|
||||||||||||||||
CX
|
0002
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
16
|
JNZ L1
|
AX
|
0003
|
0108
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0122
|
|
||||||||||||||||
CX
|
0002
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
17
|
ADD AX, [BX]
|
AX
|
0006
|
010A
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0122
|
|
||||||||||||||||
CX
|
0002
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
18
|
ADD BX, 2
|
AX
|
0006
|
010E
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0124
|
|
||||||||||||||||
CX
|
0002
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
19
|
SUB CX, 1
|
AX
|
0006
|
0112
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0124
|
|
||||||||||||||||
CX
|
0001
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
20
|
JNZ L1
|
AX
|
0006
|
0108
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0124
|
|
||||||||||||||||
CX
|
0001
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
21
|
ADD AX, [BX]
|
AX
|
000A
|
010A
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0124
|
|
||||||||||||||||
CX
|
0001
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
22
|
ADD BX, 2
|
AX
|
000A
|
010E
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|||||||
BX
|
0126
|
|
||||||||||||||||
CX
|
0001
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
23
|
SUB CX, 1
|
AX
|
000A
|
0112
|
0
|
0
|
0
|
1
|
0
|
0
|
|
|||||||
BX
|
0126
|
|
||||||||||||||||
CX
|
0000
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
24
|
JNZ L1
|
AX
|
000A
|
0114
|
0
|
0
|
1
|
1
|
0
|
0
|
|
|||||||
BX
|
0126
|
|
||||||||||||||||
CX
|
0000
|
|
||||||||||||||||
DX
|
0000
|
|
||||||||||||||||
25
|
MOV [SUM], AX
|
AX
|
000A
|
0117
|
0
|
0
|
1
|
1
|
0
|
0
|
||||||||
BX
|
0126
|
|||||||||||||||||
CX
|
0000
|
|||||||||||||||||
DX
|
0000
|
|||||||||||||||||
26
|
MOV AX, 0X4C00
|
AX
|
4C00
|
011A
|
0
|
0
|
1
|
1
|
0
|
0
|
||||||||
BX
|
0126
|
|||||||||||||||||
CX
|
0000
|
|||||||||||||||||
DX
|
0000
|
|||||||||||||||||
27
|
INT 0X21
|
AX
|
0000
|
0100
|
0
|
0
|
0
|
0
|
0
|
0
|
||||||||
BX
|
0000
|
|||||||||||||||||
CX
|
0000
|
|||||||||||||||||
DX
|
0000
|
|||||||||||||||||
0 comments:
Post a Comment