How to write An Assembly Language program to find the sum of even and odd digits

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

How to write An Assembly Language program to find the sum of even and odd digits

Post by ALI RAZA » Mon Oct 01, 2018 11:00 am

Question: 1

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

2,4,6,8
1,3,5,7,9

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
file name.

Note 3: If the arrays, 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.

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



Post Reply

Last 10 Members Who Visited This Topic

User avatar ALI RAZA (4), User avatar azharanraza (1), User avatar muhammad waseem5023 (2), User avatar Rauf ahmad (2)

  • Similar Topics
    Replies
    Views
    Last post

Who is online

Users browsing this forum: No registered users and 1 guest