Thursday, 9 May 2013

CS401 Computer Architecture and Assembly Language Assignment 2 Solution 8th May 2013

Assignment comprises of lectures No. 9-13.
No assignment will be accepted after the due date via email in any case (whether it is the case of load shedding or internet malfunctioning etc.). Hence refrain from uploading assignment in the last hour of deadline. It is recommended to upload solution file at least two days before its deadline.
For any query, feel free to email at: cs401@vu.edu.pk
            [ORG 0100H]
MOV AX, 5
MOV CX, AX
XOR DX, DX
DEC CX
CONT:            MOV BX, CX
MUL BX
DEC CX
JNZ CONT
MOV DX, AX
MOV AX, 0X4C00
INT 0X21
Assemble above assembly language code using NASM and answer the following questions:
Q.1. Execute the code in order to examine how changes are made in registers and memory. Students are required to fill in below table after step by step execution of each instruction in the debugger.          
                                                                                                                        (15 marks)
S No.

INSTRUCTION

REGISTER VALUES

INSTRUCTION POINTER (IP)
FLAG/STATUS REGISTER
CF
ZF
PF
SF
AF
1
  [ORG 0100H] AX






BX
CX
DX
2
  MOV AX,5 AX






BX
CX
DX
3
  MOV CX,AX AX






BX
CX
DX
4
  XOR DX,DX AX






BX
CX
DX
5
  DEC CX AX






BX
CX
DX
6
CONT: MOV BX,CX AX






BX
CX
DX
7

MUL BX AX






BX
CX
DX
8

DEC CX AX






BX
CX
DX
9

JNZ CONT AX






BX
CX
DX
10
CONT: MOV BX,CX AX






BX
CX
DX

11
  MUL BX AX






BX
CX
DX
12

DEC CX AX






BX
CX
DX
13

JNZ CONT AX






BX
CX
DX
14
CONT: MOV BX,CX AX






BX
CX
DX
15

MUL BX AX






BX
CX
DX
16

DEC CX AX






BX
CX
DX
17

JNZ CONT AX






BX
CX
DX
18
CONT: MOV BX,CX AX






BX
CX
DX
19

MUL BX AX






BX
CX
DX
20

DEC CX AX






BX
CX
DX

21

JNZ CONT AX






BX
CX
DX
22

MOV DX,AX
AX






BX
CX
DX
26
MOV AX,0X4C00 AX






BX
CX
DX

Q.2. Provide the snapshot of debugger showing calculated result stored in DX at the end of our program.                                                                                                                                                                                                                                       (3 marks)
Q.3. Briefly explain the purpose of the given code.
(2 marks)