ALP Programming of 8051
ALP Programming of 8051
CLR PSW.3,
DN: JC NEXT; //IF NEXT NUMBER > NUMBER THEN JUMP TO NEXT
NEXT: DJNZ R1, UP; //DECREMENT BYTE COUNTER BY 1, IF BYTE COUNTER ≠ 0 THEN JUMP TO UP
END
CLR PSW.3,
NEXT: DJNZ R1, UP; //DECREMENT BYTE COUNTER BY 1, IF BYTE COUNTER ≠ 0 THEN JUMP TO UP
END
AJMP SKIP;
MOVX @DPTR, A;
INC DPTR;
MOV A, B;
MOVX @DPTR, A;
SKIP: DJNZ R1, UP; //DECREMENT BYTE COUNTER IF BYTE COUNTER ≠ 0 THEN JUMP TO UP
DJNZ R0, UP1; DECREMENT PASS COUNTER IF PASS COUNTER ≠ 0 THEN JUMP TO UP1
END
8. Arrange Numbers in ascending order
AJMP SKIP;
DN: JNC SKIP; //IF NO. < NEXT NO THEN JUMP TO SKIP
MOVX @DPTR, A;
INC DPTR;
MOV A, B;
MOVX @DPTR, A;
SKIP: DJNZ R1, UP; //DECREMENT BYTE COUNTER IF BYTE COUNTER ≠ 0 THEN JUMP TO UP
DJNZ R0, UP1; DECREMENT PASS COUNTER IF PASS COUNTER ≠ 0 THEN JUMP TO UP1
END
9. Count ODD numbers in Block of N numbers
END;
DJNZ R0, UP; //DECREMENT BYTE COUNTER BY 1 IF BYTE COUNTER ≠ 0 THEN JIMP TO DN
END;
11. Count NEGATIVE numbers in Block of N numbers
DJNZ R0, UP; //DECREMENT BYTE COUNTER BY 1 IF BYTE COUNTER ≠ 0 THEN JIMP TO DN
END;
DJNZ R0, UP; //DECREMENT BYTE COUNTER BY 1 IF BYTE COUNTER ≠ 0 THEN JIMP TO DN
END;
13. Addition of two BCD numbers
END
THEN JUMP TO UP
END
15. Sum of series of 8 bit numbers
END