VUSuperior Chat Room

Thursday, 11 December 2014

CS401 Computer Architecture and Assembly Language Prograaming Assignment No.2 Solution FALL 2014

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