You will write assembly program that will sort digits in your VUID (VU Roll Number). Assembly Language

Vu Old Solved Programming Based Assignments Codes are Available in this Section.
Post Reply
User avatar
ALI RAZA
★★★★★★★★★★★★★
★★★★★★★★★★★★★
Posts: 177
Joined: Fri Dec 22, 2017 8:10 am
Location: Lahore
Has thanked: 6 times
Been thanked: 7 times
Contact:
Status: Offline

You will write assembly program that will sort digits in your VUID (VU Roll Number). Assembly Language

Post by ALI RAZA » Thu Dec 13, 2018 7:33 am

Question: 1 [20 Marks]
You will write assembly program that will sort digits in your VUID (VU Roll Number).
You will take all the digits of your VU and make odd digits of ID signed and keep even digits of Id unsigned.
For example let’s say your VUID is BC123456789
Here 1, 3, 5, 7, 9 will become -1,-3,-5,-7,-9 and 2,4,6,8 will remain same. (0 will remain same)
Now array of digits will be used in program as
-1, 2,-3, 4,-5, 6,-7, 8,-9
Take above converted digits of your VUID and sort your VUID using Insertion sort, in descending order:
That is, at the end of your program, the numbers must be in the following order in array:
8, 6, 4, 2,-1,-3,-5,-7,-9
You will explain each instruction of program in comments and also provide/paste snapshot of your assembled
and debugged program and result which will be run in AFD (A Full Screen Debugger) window showing the
executed code and final result i.e. value in (M2 window of AFD )
You will submit code, contents of listing file and three screen shots in a Microsoft Word file. Solution
submitted in any other format like zip, jpg etc. will not get any marks.
First screenshot will contain the command to assemble the code and
Second screenshot will contain the initial unsorted values loaded in M2 window of AFD
Third screenshot will contain the final sorted values in (M2 window of AFD)
Note 1: You will use conditional jumps and functions/sub-routines to solve the above problem. Marks will
not be awarded for using any other approach.
Note 2: keep name of assembly file according to your VU id , i.e. if your VU id is BC123456789 , you will
keep name of the assembly code file as 23456789.asm i.e. you will use last 8 digits of your id for the
code file name.
Note 3: If the digit’s arrays or files names in the screen shots will not be according to your VU id you will get
zero marks.
Note 4: No need to include alphabet part of your id in array. I.e. if your id is BC123456789 you will use
123456789 to make the arrays, you will ignore the BC part.
Note 5: Helping material
 Insertion Sort http://cs.armstrong.edu/liang/animation ... nSort.html
 https://visualgo.net/bn/sorting?slide=8
 https://en.wikipedia.org/wiki/Insertion_sort
 AFD Tutorial https://vulms.vu.edu.pk/Courses/CS401/D ... torial.pdf
 Use F2 instead of F1 for execution of code in AFD. You will have to press it fever times as compared
to F1
 How to take screen shots https://www.take-a-screenshot.org/windows.html

Solution code Below

Code: Select all

[org 0x0100]
jmp start

sort:
	mov bx , 0
	mov cx , [size]
	add cx , [size]
	mov si , 0
	mov di , 0
  
outerLoop:
	cmp si , cx
	jnl exit
	mov di , si
	add word di , 2
	mov bx , si

innerLoop:
	 mov ax , [arr+di]
	 mov dx , [arr+bx]
		
	 cmp ax , dx
	 jg replaceIndex;jl replaceIndex
	 
		
	 return:
	 add di , 2
	 cmp di , cx
	 jl innerLoop
	 call swap
	 jmp outerLoop

replaceIndex:
	mov bx , di
	jmp return
exit:
ret

     
swap:  ;subroutine to swap the vlaues. 
	mov ax , [arr+si]
	mov dx , [arr+bx]
	 
	mov [arr+si] , dx
	mov [arr+bx] , ax
		
	add word si  ,2
	ret 

start:
   call sort
   mov ax , 0x4c00
   int 0x21
   
   size: dw 9                      ;size of the array
   arr: dw -1, 2,-3, 4,-5, 6,-7, 8,-9       ;array



Post Reply

Last 10 Members Who Visited This Topic

User avatar ALI RAZA (2)

  • Similar Topics
    Replies
    Views
    Last post

Who is online

Users browsing this forum: No registered users and 1 guest