You will write a program to find the sum of even and odd digits of your VU id, You will store the sum of
even digits in AX and sum of odd digits in BX register.
For example If your VU id is bc123456789 you will use two arrays as
Then save the sum of first array in AX and second array in BX in hexadecimal format.
Explain each instruction of program in comments and also provide/paste snapshot of your assembled and
debugged program result which will be run in AFD (A Full Screen Debugger) window showing the executed
code and final result i.e. value in AX.
You will submit code and two screen shots in word file.
First screenshot will contain the command to compile the code
Second screenshot will contain the final values in AX and BX
Note 1: You will use conditional jumps 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
Note 3: If the arrays, files names in the screen shots will not be according to your VU id you will get zero
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.
Answer: .asm File
Code: Select all
[org 0x0100] mov si,0 mov ax, 0 ;Store Sum of numbers in ax mov cx, 4 ; Load counting of numbers in cx l1: add ax, [num1+si] ; Add value of array add si, 2 ;Increase cx sub cx,1 jnz l1 ;Jump to label if last result is not zero mov di,0 ;Move address of array numbers in si mov dx, 5 ; Load counting of numbers in cx mov bx, 0 ;Store Sum of numbers in ax l2: add bx, [num2+di] ; Add value of array add di, 2 ;Increase cx sub dx,1 jnz l2 ;Jump to label if last result is not zero mov ax, 0x4c00 int 0x21 ;Terminate the program num1: dw 2,4,6,8 num2:dw 1,3,5,7,9