16-BIT ADDITION: DIRECT DATA LOADING
ORG 0000H; CLR C; MAKE CY=0 MOV A,#6CH; LOWER BYTE OF OPERAND 1 IN A ADD A,#9DH; ADD LOWER BYTE OF OPERAND 2 WITH A MOV R6,A; STORES LSB OF RESULT IN R6 MOV A,#17H; HIGHER BYTE OF OPERAND 2 IN A ADDC A,#3BH; ADD WITH HIGHER BYTE OF OPERAND 1 MOV R7,A; STORES MSB OF RESULT IN R7 END
16-BIT ADDITION: DATA LOADING FROM MEMORY
ORG 0000H MOV R0,40H; INITIALIZING STARTING ADDRESS (40H) MOV R2,#5; INITIALIZING COUNTER CLR A; MAKE A=00H MOV R7,A; MAKE R7=00H AGAIN:ADD A,@R0; ADDS CONTENTS OF ADDRESS POINTED BY R0 WITH A JNC NEXT; JUMP TO LABEL IF CY=0 INC R7; INCREMENT R7 NEXT:INC R0; INCREMENT ADDRESS DJNZ R2,AGAIN; DECREMENT & JUMP TO LABEL IF R2!=0 END
16-BIT SUBTRACTION: dIRECT DATA lOADING
ORG 0000H CLR C ; MAKE CY=0 MOV A,#0F8H; LOWER BYTE OF OPERAND 1 IN A SUBB A,#14H; SUBTRACT LOWER BYTE OF OPERAND 2 WITH A MOV R6,A; STORES LSB OF RESULT IN R6 MOV A,#33H; HIGHER BYTE OF OPERAND 2 IN A SUBB A,#0CAH; SUBTRACT WITH HIGHER BYTE OF OPERAND 1 MOV R7,A ; STORES MSB OF RESULT IN R7 END