Sunteți pe pagina 1din 26

3.

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 6000H
MOV A, #03H
MOV 0F0H, #03H
MUL AB
RET
RESULT A= O9

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

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
7

R0 = 05

write an ALP to add the BCD numbers


CPU 8051.TBL
HOFINT8
ORG 6000H
MOV A, #06H
ADD A, #06H
DAA
MOV R1, A
RET

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
10
11
12
13
14

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 to


internal 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 location


to 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,#00H
MOV A, #98H
ADDC A, #0F4H
MOV R1,A
JNC AHEAD
MOV R0,#01H
AHEAD: RET

ADDITION OF 16 BIT WITH CARRY


CPU 8051.TBL
HOFINT8
ORG 6000H
MOV RO, #00H
MOV A, #98H
ADDC A, #0F4H
MOV R1,A
MOV A, #98H
ADDC A,#0F4H
JNC AHEAD
INC R0
AHEAD:MOV R2,A
RET

15 write an ALP to to find the factorial of a number


CPU 8051.TBL
HOF INT8
ORG 6000H
MOV A,#01H
MOV R2,30H
UP: 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, #6500H
MOVX A, @DPTR
MOV R3,A
ANL A, #0FH
MOV R6,A
MOV A,R3
ANL A, #OFOH
SWAP A
MOV DPTR, #5000H
MOVX @DPTR,A
MOV A, R6
INC DPTR
MOVX @DPTR, A
RET

ADDITION OF TWO 8 BIT BCD NUMBERS.


CPU 8051.TBL
HOFINT8
ORG 6000H
MOV A, #06H
ADD A, #04H
DAA
MOV R1,A
RET

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


CPU 8051.TBL
HOFINT8
ORG 6000H
MOV R2, #07H
MOV R0,#20H
MOV R1,#30H
MOV DPTR, #5000H
UP : MOV A, @R0
ADDC 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 numbers


CPU 8051.TBL
HOFINT8
ORG 6000H
MOV 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,#08H
MOV 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,#09H
MOV 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
RET

WRITE 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 08H

Write 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 6000H
MOV 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 6000H
MOV 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 6000H
MOV 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 6000H
MOV 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,A
MOV 0F0H,A
MOV A,R3
MOV R2,A
MOV A,0F0H
MOV R3,A
INC R0
DJNZ R4,UP
RET

S-ar putea să vă placă și