**Make changes before upload. I will not be responsible for your marks.**

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.

You should concern the recommended books to clarify your concepts as handouts are not sufficient.

You are supposed to submit your assignment in .doc or docx format.

Any other formats like scan images, PDF, zip, rar, ppt and bmp etc. will not be accepted.

Labs covered: 1- 4

Topics covered: addressing modes, branching techniques, Conditional/unconditional jumps, Bit manipulation and multiplication algorithm.

NOTE

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). Hence refrain from uploading assignment in the last hour of the deadline. It is recommended to upload your solution file at least two days before its closing date.

If you find any mistake or confusion in the assignment (Question statement), please contact your instructor before the deadline. After the deadline, no queries will be entertained in this regard.

For any query, feel free to email at cs401P@vu.edu.pk

Problem statement

You are required to write the assembly language program that:

1.      Finds the largest digit of your VUID

2.      Finds the smallest digit of your VUID

3.      Calculates the multiplication of largest digit and smallest digit of your VUID and stores the result in memory

Note: You must use your own VUID.

 

SOLUTION :

Code:

"

[org 0x0100]

jmp start

vuid: db 1,6,0,4,0,1,2,3,4

maxValue: db 0

minValue: db 0

result: db 0


start:

mov si, vuid

mov cx, 9


mov al, [si]

mov bl, al


findMin:

cmp bl, 0

je skipZeroMin

mov [minValue], bl

jmp foundMin


skipZeroMin:

inc si

mov al, [si]

mov bl, al

dec cx

jnz findMin


foundMin:

inc si

dec cx


findMax:

cmp bl, [si]

je skipZeroMax

jae notMax

mov bl, [si]


notMax:

skipZeroMax:

inc si

loop findMax


mov [maxValue], bl


mov al, [maxValue]

mov bl, [minValue]

imul bl

mov [result], al


mov ax, 0x4c00

int 0x21

"



****************************************************************************************************************************



****************************************************************************************************************************

Submission details:

Following are required in a single MS-Word document.

a)     Assembly language program

b)     Screenshot showing the results (largest, smallest, multiplication) in memory window of AFD (Sample attached below)



Post a Comment

Don't Forget To Join My FB Group VU Vicky
THANK YOU :)

Previous Post Next Post