You are on page 1of 3

Write an 8051 assembly language program that will store the code ENGINEER burned in the ROM with

starting address at 20Fh, to the RAM starting at address 40h using; a. direct address mode b. indirect address mode note: obviously, index address is needed to fetch code stored in the ROM a) START: ORG 0000H JMP START ORG 40H MOV DPTR,#20FH CLR A MOVC A,@A+DPTR MOV R0,A INC DPTR CLR A MOVC A,@A+DPTR MOV R1,A INC DPTR CLR A MOVC A,@A+DPTR MOV R2,A INC DPTR CLR A MOVC A,@A+DPTR MOV R3,A INC DPTR CLR A MOVC A,@A+DPTR MOV R4,A INC DPTR CLR A MOVC A,@A+DPTR MOV R5,A INC DPTR CLR A MOVC A,@A+DPTR MOV R6,A INC DPTR CLR A MOVC A,@A+DPTR MOV R7,A SJMP HERE ORG 20FH DB "ENGINEER" END

HERE: MYDATA:

b) START:

ORG 0000H JMP START ORG 40H MOV DPTR,#20FH CLR A MOVC A,@A+DPTR MOV 0040H,#0000 MOV R0,#0040H MOV @R0,A MOV R0,0040H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0041H MOV @R0,A MOV R1,0041H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0042H MOV @R0,A MOV R2,0042H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0043H MOV @R0,A MOV R3,0043H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0044H MOV @R0,A MOV R4,0044H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0045H MOV @R0,A MOV R5,0045H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0046H MOV @R0,A MOV R6,0046H INC DPTR CLR A MOVC A,@A+DPTR MOV R0,#0047H

//INITIALIZE VALLUE //R0 is used for indirect addressing

HERE: MYDATA:

MOV @R0,A MOV R7,0047H MOV R0,0040H SJMP HERE ORG 20FH DB "ENGINEER" END

You might also like