Computer Architecture and Assembly language programming (CS401)
Assignment # 2
Total marks = 20
Deadline Date = May 13, 2013
Please carefully read the following instructions before attempting assignment.
Rules for Marking
It should be clear that your assignment would not get any credit if:
- The assignment is submitted after the due date.
- The submitted assignment does not open or file is corrupt.
- Strict action will be taken if submitted solution is copied from any other student or from the internet. Students will be punished severely in either case.
1) You should concern recommended books to clarify your concepts as handouts are not sufficient.
2) You are supposed to submit your assignment in .doc format. Any other formats like scan images, PDF, zip, rar, bmp etc will not be accepted.
3) You are advised to upload your assignment at least two days before the due date.
4) The assignment file comprises of two pages.
Note:
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:
[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)
Best of luck!