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
	END

Example-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?