2. 8051 ALP to load data from 50h to 54h
● org 0h
mov 50h,#0ah
mov 51h,#25h
mov 52h,#74h
mov 53h,#99h
mov 54h,#0bch
end
3. 8051 ALP to move a block of data from 50-54h to
60-64h
● org 0h
mov a,50h
mov 60h,a
mov a,51h
mov 61h,a
mov a,52h
mov 62h,a
mov a,53h
mov 63h,a
mov a,54h
mov 64h,a
end
4. 8051 ALP to block exchange w.r.t external ram using
loops
● org 0h
clr c
mov r5,#03
mov r0,#20h
mov dptr,#20h
up:movx a,@dptr
xch a,@r0
movx @dptr,a
inc r0
inc dptr
djnz r5,up
end
5. 8051 ALP to find a given number is even or odd
● org 0h
clr c
mov a,#35h
rrc a
jc odd
mov a,#0aah
sjmp l1
odd:mov a,#0aah
l1:nop
end
6. 8051 ALP to identify even and odd in an given array
● org 0h
clr c
mov r7,#05h
mov r4,#00h
mov r5,#00h
mov r0,#20h
up:mov a,@r0
rrc a
jc odd
inc r4
sjmp down
odd:inc r5
down:inc r0
djnz r7,up
end
7. 8051 ALP to arrange in ascdending order
●
org 0h
mov r4,#04h
here:mov r0,#03h
mov r1,#30h
this:mov a,@r1
inc r1
mov b,@r0
cjne a,b,next
sjmp down
next:jc down
dec r0
mov @r0,b
inc r0
mov @r0,a
down:djnz r1,this
djnz r4,here
end
8. 8051 ALP to indicate no of 1’s and 0’s
● org 0h
mov r6,#00h
mov r5,#00h
mov r7,#08h
mov a,#37h
up:rrc a
jc one
inc r6
sjmp down
one:inc r5
down:djnz r7,up
end
11. 8051 ALP to subtract two 8-bit numbers
● org 0000h
mov a,40h
subb a,41h
mov 50h,a
end
12. 8051 ALP to subtract two 16-bit numbers
● org 0h
mov r0,41h
mov r1,51h
mov r2,40h
mov r3,50h
mov a,r0
subb a,r1
mov 61h,a
mov a,r2
subb a,r3
mov 60h,a
end
13. 8051 ALP to multiply two 16-bit numbers
● org 0h
mov r1,#0ffh
mov r2,#0ffh
mov r3,#0ffh
mov r4,#0ffh
mov a,r3
mov b,r4
mul ab
mov 44h,a
mov 43h,b
mov b,r1
mov a,r4
mul ab
14. add a,43h
mov 43h,a
mov a,b
addc a,#0h
mov 42h,a
mov a,r3
mov b,r2
mul ab
mov 53h,a
mov 52h,b
mov b,r1
mov a,r2
mul ab
add a,52h
mov 52h,a
mov a,b
addc a,#0h
16. 8051 ALP to compute average
of n numbers
● org 0h
mov r3,#09h
mov r0,#20h
mov a,@r0
mov r6,a
inc r5
back: inc r0
mov a,@r0
addc a, r6
mov r6, a
inc r5
djnz r3, back
mov b, r5
end
17. 8051 ALP to compute factorial
● org 0h
mov r4, #4h
mov r1, #1h
mov a, r1
back: inc r1
mov b, r1
mul ab
djnz r4, back
end
18. 8051 ALP to compute gcd
● org 0h
mov a, #6h
mov b, #10h
back: mov r1, b
div ab
mov a, r1
into r1
cjne r1, #00h, back
end
19. 8051 ALP to compute lcm
● org 0h
mov a, #6h
mov r6, a
mov b, #10h
mov r7, b
back: mov r1, b
div ab
mov a, r1
mov r1, b
cjne r1, #00h, back
mov r5, a
mov a, r6
mov b, r7
mul ab
mov b, r5
end
20. ALP to find number of positive numbers in an array of 10
number
● org 0h
mov r3, #05h
mov r0, #40h
check: mov a, @r0
inc r0
rlc a
jc down
inc r5
down: djnz r3, check
end