MC 8051 LAB manual

Embed Size (px)

DESCRIPTION

iv sem 8051 lab manual

Citation preview

1

1. *2. write an ALP to ADD two 8-bit numbers.

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV A, #09H

ADD A, #06H

RET

RESULT: A= OFH

2 write an ALP to SUBB two 8-bit numbers.

CPU8051.TBL

HOFINT8

ORG 6000H

MOV A, #09H

SUBB A,#05H

RET

RESULT: A= 04H

3 WRITE AN ALP TO MULTIPLY TWO 8 BIT NUMBERS

CPU8051.TBL

HOFINT8

ORG 6000HMOV A, #03H

MOV 0F0H, #03H

MUL AB

RET

RESULT A= O94 WRITE AN ALP TO DIVIDE TWO 8 BIT NUMBERS

CPU8051.TBL

HOFINT8

ORG 6000H

MOV A,#09H

MOV 0F0H,#03H

DIV AB

RET

RESULT :

A =03H

5 write an ALP to ADD two 16-bit numbers.

CPU 8051.TBL

HOFINT8

ORG 6000H

CLR C

MOV A, #17H

ADD A, #12H

MOV R0,A

MOV A,#15H

ADD A,#13H

MOV R1,A

RET

RESULT :R1 = 28

R0 = 29

6 write an ALP to SUBB two 16-bit numbers.

CPU 8051.TBL

HOFINT8

ORG 6000H

CLR C

MOV A, #17H

SUBB A, #12H

MOV R0,A

MOV A,#15H

SUBB A,#13H

MOV R1,A

RET

RESULT : R1 = 02

R0 = 05

7 write an ALP to add the BCD numbers

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV A, #06H

ADD A, #06HDAA

MOV R1, A

RET

8 write an ALP to Interchange the Adjacent bits

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV A, 30H

ANL A, #0AAH

RRA

MOV R0,A

MOV A, 30H

ANL A, #55H

RLA

ADD A,R0

MOV 31H, A

RET

9 write an ALP to move a block of data from RAM location to external location

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0, #30H

MOV R1,#05H

MOV DPTR, #7000H

UP: MOV A, @R0

MOVX @DPTR, A

INC R0

INC DPTR

DEC R1

JNZ UP

RET

10 write an ALP to move a block of data from internal RAM location tointernal another RAM location

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0, #20H

MOV R1,#30H

MOV R2, #0AH

UP: MOV A, @R0

MOV @R1, A

INC R0

INC R1

DJNZ R2,UP

RET

11 write an ALP to interchange a block of data from one memory locationto another memory location.CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0, #06H

MOV R1,#30H

MOV DPTR, #5000H

Up:MOV A,@R1

MOV 0F0H,A

MOVX A ,@DPTR

MOV @R1,A

MOV A,0F0H

MOVX @DPTR,A

INC R1

INC DPTR

DJNZ R0,UP

RET

8 BIT ADDITION WITH CARRY.

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0,#00HMOV A, #98H

ADDC A, #0F4H

MOV R1,A

JNC AHEAD

MOV R0,#01H

AHEAD: RET

ADDITION OF 16 BIT WITH CARRYCPU 8051.TBL

HOFINT8

ORG 6000H

MOV RO, #00H

MOV A, #98H

ADDC A, #0F4H

MOV R1,A

MOV A, #98HADDC A,#0F4H

JNC AHEAD

INC R0

AHEAD:MOV R2,A

RET

9 write an ALP to to find the factorial of a numberCPU 8051.TBL

HOF INT8

ORG 6000H

MOV A,#01H

MOV R2,30HUP: MOV 0F0H,R2

MUL AB

DJNZ R2,UP

MOV 31H,A

RET

18 write an ALP to to convert unpacked bcd to pack bcd

CPU 8051.TBL

HOF INT8

ORG 6000H

MOV DPTR,#5500H

MOVX A, @DPTR

SWAP A

MOV R3,A

INC DPTR

MOVX A, @DPTR

ADD A,R3

MOV DPTR, #7000H

MOVX @DPTR,A

RET

write an ALP to to convert packed bcd to unpack bcd

CPU 8051.TBL

HOF INT8

ORG 6000H

MOV DPTR, #6500HMOVX A, @DPTR

MOV R3,A

ANL A, #0FH

MOV R6,A

MOV A,R3

ANL A, #OFOH

SWAP A

MOV DPTR, #5000HMOVX @DPTR,A

MOV A, R6

INC DPTR

MOVX @DPTR, A

RET

ADDITION OF TWO 8 BIT BCD NUMBERS.

CPU 8051.TBLHOFINT8ORG 6000HMOV A, #06HADD A, #04HDAAMOV R1,ARET

11. write an ALP to to add multiple byte numbers.

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R2, #07H

MOV R0,#20HMOV R1,#30H

MOV DPTR, #5000H

UP : MOV A, @R0ADDC A, @R1

MOVX @DPTR, A

INC R0

INC R1

INC DPTR

DJNZ R2,UP

RET

11 write an ALP to find the average of N numbersCPU 8051.TBL

HOFINT8

ORG 6000HMOV 0F0H,#05H

MOV R3,#05H

MOV R0,#30H

CLR A

UP: ADD A, @R0

INC R0

DJNZ R3,UP

DIV AB

MOV R1,A

RET

write an ALP to interchange a block of data from one Int.memory location to another int.memory location.CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0, #20H

MOV R1,#30H

MOV R2, #05H

UP: MOV A, @R0

XCH A,@R1

MOV @R0,A

INC R0

INC R1

DJNZ R2,UP

RET

WRITE AN ALP TO COUNT MULTIPLES OF 4 FROM GIVEN ARRAY CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R3,#08HMOV R0,#20H

MOV R1,#00H

UP:MOV A,@R0

MOV 0F0H,#04H

DIV AB

MOV A,0F0H

CJNE A,#00H, DOWN

INC R1

DOWN:INC R0

DJNZ R3,UP

MOV 30H,R1

RET

WRITE AN ALP TO FIND VALUE OF THE EXPRESSION X=(A+B)(A-B)

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R1,#20H

MOV R2,#10H

MOV A,R1

ADD A,R2

MOV 0F0H,A

MOV A,R1

SUBB A,R2

MUL AB

RET

WRITE AN ALP TO FIND VALUE OF THE EXPRESSION w=x-yz+x/z

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R2,#09HMOV R3,#04H

MOV R4,#03H

MOV A,R2

MOV 0F0H,A

MUL AB

MOV R5,A

MOV A,R3

MOV 0F0H,A

MOV A,R4

MUL AB

MOV R6,A

MOV A,R4

MOV 0F0H,A

MOV A,R2

DIV AB

ADD A,R5

SUBB A,R6

MOV R7,A

RET

WRITE AN ALP TO FIND 2S and 1S COMPLEMENT OF A NUMBER CPU 8051.TBL

HOFINT8

ORG 6000H

MOV 0D0H,#00H

MOV R0,#20H

MOV A,@R0

CPL A

ADD A,#01H

MOV 30H,A

INC R0

MOV A,@R0

CPL A

ADDC A,#00H

MOV 31H,A

RETWRITE AN ALP TO ARRANGE THE GIVEN SERIES OF N-BIT NO. IN DESCENDING ORDER

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0,#05H

AGAIN:MOV DPTR,#5000H

MOV R1,#05H

BACK:MOV R2,82H

MOVX A,@DPTR

MOV 0F0H,A

INC DPTR

MOVX A,@DPTR

MOV 30H,0F0H

CJNE A,30H,DOWN

AJMP SKIP

DOWN:JC SKIP

MOV 82H,R2

MOVX @DPTR,A

INC DPTR

MOV A,0F0H

MOVX @DPTR,A

SKIP:DJNZ R1,BACK

DJNZ R0,AGAIN

RET

WRITE AN ALP TO ARRANGE THE GIVEN SERIES OF N-BIT NO. IN ASCENDING ORDER

CPU 8051.TBL

HOFINT8

ORG 6000H

MOV R0,#05H

AGAIN:MOV DPTR,#5000H

MOV R1,#05H

BACK:MOV R2,82H

MOVX A,@DPTR

MOV 0F0H,A

INC DPTR

MOVX A,@DPTR

MOV 30H,0F0H

CJNE A,30H,DOWN

AJMP SKIP

DOWN:JNC SKIP

MOV 82H,R2

MOVX @DPTR,A

INC DPTR

MOV A,0F0H

MOVX @DPTR,A

SKIP:DJNZ R1,BACK

DJNZ R0,AGAIN

RET

Write an ALP to convert ASCII to BCD

CPU"8051.TBL"

HOF"INT8"

ORG 6000H

MOV DPTR,#5000H

MOVX A,@DPTR

CLRC

SUBB A,#30H

INC DPTR

MOVX @DPTR,A

RET

INPUT DATA 5000H 38H

RESULT 5001H 08HWrite an ALP to perform logical operations AND

CPU"8051.TBL"

HOF"INT8"

ORG 6000H

MOV DPTR, #5000H

MOV A, #32H

MOV R0, #30H

ANL A, R0

MOVX @DPTR,A

RET

Write an ALP to perform logical operations OR

CPU"8051.TBL"

HOF"INT8"

ORG 6000H

MOV DPTR, #5000H

MOV A, #32H

MOV R0, #30H

ORL A, R0

MOVX @DPTR,A

RET

WRITE AN ALP TO COUNT LOGICAL 1s AND 0s CPU 8051.TBL

HOFINT8

ORG 6000HMOV R2,#00H

MOV R3,#00H

MOV R1,#08H

MOV R0,#30H

MOV A,@R0

UP:RRC A

JC DOWN

INC R3

AJMP LAST

DOWN:INC R2

LAST:DJNZ R1,UP

MOV 31H,R2

MOV 32H,R3

RET

WRITE AN ALP TO SELECT THE LARGEST NUMBER FROM GIVEN ARRAY

CPU 8051.TBL

HOFINT8

ORG 6000HMOV DPTR,#5000H

MOV R0,#05H

MOV R1,#00H

AGAIN :MOVX A,@DPTR

MOV 30H,R1

CJNE A,30H,DOWN

AJMP SKIP

DOWN:JC SKIP

MOV R1,A

SKIP:INC DPTR

DJNZ R0,AGAIN

MOV DPTR,#5200H

MOV A,R1

MOVX @DPTR,A

RET

WRITE AN ALP TO SELECT THE SMALLEST NUMBER FROM GIVEN ARRAY

CPU 8051.TBL

HOFINT8

ORG 6000HMOV DPTR,#5000H

MOV R0,#05H

MOV R1,#0FFH

AGAIN :MOVX A,@DPTR

MOV 30H,R1

CJNE A,30H,DOWN

AJMP SKIP

DOWN:JNC SKIP

MOV R1,A

SKIP:INC DPTR

DJNZ R0,AGAIN

MOV DPTR,#5200H

MOV A,R1

MOVX @DPTR,A

RET

WRITE AN ALP TO GENERATE FIBONACCI SERIES OF N NO.

CPU 8051.TBL

HOFINT8

ORG 6000HMOV 0D0H,#00H

MOV R2,#00H

MOV R3,#01H

MOV R0,#30H

MOV R4,#0AH

MOV A,R2

MOV @R0,A

INC R0

DEC R4

MOV A,R3

MOV @R0,A

INC R0

DEC R4

UP:MOV A,R2

ADD A,R3

MOV @R0,AMOV 0F0H,A

MOV A,R3

MOV R2,A

MOV A,0F0H

MOV R3,A

INC R0

DJNZ R4,UP

RET