8085 Programming : In a set of nos add only the odd nos

8085 Programming

                 LDA 2200H  

           MOV C, A  ; Initialize counter  

           LXI H, 2201H  ; Initialize pointer  

           MVI E, 00  ; Sumlow = 0  

           MOV D, E ; Sumhigh = 0  

BACK:      MOV A, M  ; Get the number  

           ANI 01H   ; Mask Bit1 to Bit7  

           JZ SKIP                  ; Do not add if number is even  

           MOV A, E  ; Get the lower byte of sum  

                 ADD M     ; Sum = sum + data  

           MOV E, A   JNC SKIP  ; Store result in E register  

           INR D   ; Add carry to MSB of SUM  

SKIP:        INX H   ; Increment pointer  

           DCR C     ; Decrement counter  

          JNZ BACK  ; Check if counter 0 repeat  

          MOV A, E  

          STA 2300H  ; Store lower byte  

          MOV A, D  

          STA 2301H ; Store higher byte  

         HLT ; Terminate program execution