ALP to check number in Memory Location is Even or Odd

Here, I have a Assembly Language Program to check if a number in Memory Location is Even or Odd. I’ll also be saving the number to a different memory location depending on the condition results.

Question: Write an assembly language program to check the number in memory location C000H is even or odd, if the number is even, store EEH in memory location D000H else store 00H in same location.


Step 1: Point HL register pair to memory location C000H

Step 2: Store 05H in memory location C000H.

Step 3: Move content of memory location to the Accumulator.

Step 4: Rotate accumulator right through carry

Step 5: If carry is obtained from Step 4: then jump to Step 8:

Step 6: Load Accumulator with EEH (number is even)

Step 7: Unconditional jump to Step 9:

Step 8: Load Accumulator with 00H (number is odd)

Step 9: Store content of Accumulator to memory location D000H

Step 10: Terminate the program

Assembly Language Program

Label Instruction Comments
LXI H, C000H ; HL register pair points at memory location C000H
MVI M, 05 H ; Stores 05H to memory location
MOV A, M ; Moves content of memory location to accumulator
RAR ; Rotates accumulator right with carry
JC jump1; If carry jumps to jump1:
MVI A, EEH ; Loads accumulator with EEH
JMP jump2; Unconditionally jumps to jump2:
jump1: MVI A, 00H ; Loads accumulator (A) with 00H
jump2: STA D000H ; Stores content of A to D000H
HLT ; Terminates the program

More Assembly Language Programs:

Assembly Language Program to print Strings in multiple lines (8086)

8086 ALP to convert ASCII to Hexadecimal number

8086 ALP to check if input number is Prime or not

8086 ALP to check whether the input string is palindrome or not

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: