Experiment-3
Examples
Example-1
; SUM OF TWO-DIGIT BCD NUMBERS IN XX40 TO XX49.
; STORE RESULT IN R0, R1 AND IN XX50H, XX51H.
ORG 0000H ; ORIGINATE
AJMP START ; JUMP TO THE LABEL START
START:
MOV R1, #00H ; CARRY REGISTER
MOV R3, #10 ; LENGTH OF ARRAY WITH DECIMAL 10
MOV R0, #00H ; INITIALISE THE SUM
MOV DPTR, #1040H ; DATA LOCATION STARTING ADDRESS
UP:
MOVX A, @DPTR ; GET DATA
ADD A, R0 ; APPEND TO THE SUM
DA A ; DECIMALLY ADJUST ACCUMULATOR SINCE DEALING WITH BCD DATA
MOV R0, A ; UPDATE SUM REGISTER
JNC DOWN
; IF CARRY EXECUTE BELOW
MOV A, #00H
ADDC A, R1
DA A ; ACCUMULATE CARRY DECIMALLY
MOV R1, A ; UPDATE CARRY REGISTER
DOWN:
INC DPTR ; GET THE NEXT DATA ADDRESS
DJNZ R3, UP ; REPEAT (R3) TIMES
MOV A, R0 ; GET THE FINAL SUM
MOV DPTR, #1050H
MOVX @DPTR, A ; COPY INTO MEMORY
INC DPTR
MOV A, R1 ; GET THE FINAL CARRY
MOVX @DPTR, A ; APPEND THE CARRY
HERE:
SJMP HERE ; LOGICAL END
ENDExample-2
Example-3
Example-4
Example-5
Example-6
Example-7
Exercises
Exercise-1
Exercise-2
Exercise-2_2
Exercise-3
Exercise-3_2
Exercise-4
Problems
Problem-1
Problem-2
Problem-3
Problem-4
Problem-5
Problem-6
Last updated
Was this helpful?