Embedded System Codes

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

org 00h

sjmp 30h
Org 30h
resultequ 40h
mov dptr.#0ffabh
mov a, #0cdh
mov b,#0abh
mov r0,#result
adda,dp!
mov @r0.a
inc ro
mova,b
addca.dph
mov@rO,a
inc ro
mov @r0,#00
jnchr
inc@r0
hr: sjmphr
end
Second cycle programs:

1. Program to add two multibyte numbers


org 00h
simp 30h
org 30h nxt bt nov Jph, M
mov dptr,#9000h
mov rl,#5
mov r2,#90h
mov r3,#91h
mov r4.#92h mov ph, as
clr c MoVy a,a dp
nxt_bt: mov dph,r2
movx a,@dptr
mov r5,a
mov dphr3
movx a,@dptr
addc a,r5
mov dph,r4
movx @dptr,a
incdptr
djnz rl,nxt_bt
mov a,r p

Jnc skip
inc a
skip: movx (@dptr,a
hr:
simphr
end
IV Semester Bi:

First cyéle programs:

without overlap:
to Block transfer
1. Program

org 00h y 9000h


sjmp 30h
org 30h
movdptr,/9000h
mov0,/10
mov rl,#90h
mov r2,//91h
nxt movx a,@dptr
mov dph,r2
movx @dptr,a
mov dph,rl
mov opaac dot
incdptr
djnz r0,nxt
hr: simphr
end

2. Program to Block exchange


org 00h
Sjmp 30h
org 30h
mov dptr,#9000h
mov r0,#5
mov r1,#90h
mov r2,#91h
rpt: movx a,@dptr
Mov r3,a
mov dph,r2
movx a,@dptr
PMOV dph,rl .
RÓVx @dptr,a
mov a,r3
movdph,r2.
movx @dptr,a
mov dph,rl
incdptr 1nt d tr
djnz r0,rpt
hr sjmphr
end

3.Program to add 'N' bytes


org 00h
Sjmp 30h
org 30h
mov dptr,fH2000h
mov r2,15
mov 13,#00
IV Semester BE
Embedded System Lab(4RECL3)

mov r4.#00
nxt_bl:mOVX a,@dptr
add a,r4
mov r4,a
jnc skip
incr3 ((
skip incdptr
djnz r2,nxt_bt
movx @dptr,a
incdptr
mov a,r3
movx @dptr,a

hr sjmphr
end

add N' BCD numbers


4. Program to
org 00h
sjmp 30h

org 30h
mov dptr,#2000h actumulahe
movr2,#11 deümal adust
mov r3,#00? de->
mov r4,#00
nxt_bt:movx a,@dptr
add a,r4
da a
mov r4,a Jump
ano
renis t e
jnc skip din detyement raiten
clr a
mov a,r3
add a,#01
not 3eno
da a
mov r3,a
skip: incdptr
djnz r2,nxt_bt
mov a,r4,
movx @dptr,a
incdptr
mov a,r3
movx @dptr,a
ir: sjmphr
end

5
IV Semester Bi
:Dmbedded System ILab 4RECL3)

2. Program to subtract two nultibyte numbers


Org 00h
spmp 30h
Org 30h
mov dptr,H9000h
mov rl,/5
mov r2,490h
mov 13,191h
mov rA,#92h
elr e
nxt bt: mov dph,r2
movx a,@dptr
mov r5,a
mov dph,r3
movx a,@dptr
subb a,r5
movdph,r4
movx@dptr,a
inçdptr
djnz rl,nxt_bt
mov a,rl
jnc skip
inc a
skip: movx @dptr,a
hr: sjmphr
end
3. Program to arrange °N° binary numbers in ascending ordcr

org 00h
sjmp 30h
org 30h
movr0,#4. Caten
nxt _ps:mov dptr,#2000h
mov af0

movrl,a
nxl_cmp:mov r2,dpl
movxa,@dptr
mov0fDia
incdptr
movx a,adptr
cjne a,010h,not_eq
aymp skip (abaotut Ju np)
not_cq:jnc skip
mov dpl,r2
movx @dptr,a
incdptr
mov a,090h
movx @dptr,a
djnz tl.nNI Cnp

skip dinz rt),nsNLpS


synphr

Cnd

to
above progran
f Modify the order
Descending iand comparison
i) sort in passes
unnccessary
reduce the
number of
)

3lh. Star.
(wo bits stored in
locations 30h apd
Store thee re
to XOR
4. Program operation)
this program for XNOR address 26h
B-31h,Y-32hhave byte
(Modify
30h,
Flip FlopsA
operation)
Y-AB +BA' ( XOR XOR gale (Y)=0
Assuming initially output of
Input at 26h Output al 26h

00h 00h

0lh 05h

02h 06h

03h 03h
org 00h
Simp 30h
org 30h
mov c.30hh Cy-A
anl c./31h. :Cy-A.B
mov 32h,c ; Y=A.B
mov c,31h Cy- B
anl c/30h- Cy-B.A
orl e,32h ;Cy=Y+BA' =AB' + BA
mov 32h,.c ;Y=Cy = AB' + BA
CP hr: sjmphr
end
K Program for multiplication of 16 bit number with 8 bit number (eg: ABtD
(1000h=EFh, (1001h) =CDh, (1002h)=ABh
(egl: ABCDh X EFh )
(1000h)=EFh, (1001h) =CDh, (1002h)-ABh
; ABCDh x EFh =
A06463h
;
eg2: ABCDh X AAh 721622h
org 00h
mov dptr,f/ 1000h
movx a,adptr
mov rO,a
; (a) - (1000))=Eh
:(0) (a) h
incdptr
movx a,adptr; (a) (1001h) CDh
mov rl,a
(r)=(a) CDh
IV Semester BE
Embedded System Lab(4RECL3)

incdptr
movx a.@dplr; (a) (1002h)= =
ABh
mov r2.a :(r2) = (a) = ABh

mov b.01 (b) = (rl) = CDh


mov a,r0 (a) = (r0) = EFh
mul ab (b) Higher byte of product (CIDh X EFh)
=

(a) =
Lower byte of product (CDh X
EFh)
mov r3,a :(r3)= (a) Lower byte of product (CDh X EFh)
=

mov r4,0fOh :(r4)= (b) Higher byte of product (CDh X EFh)


=

mov b,02 (b)= (r2)= ABh


mov a,r0 (a) =(r0) = EFh
mul ab; (b)
Higher byte of product (ABh X EFh)
=

(a)= Lower byte of product (ABh X EFh)


mov r5,a (r5)= (a) Lower byte of product (ABh X EFh) =

mov r6,b (r6)= (b) Higher byte of product (ABh X EFh) =

mov a,r3 (a)= (r3) Lower byte of product (CDh X EFh) =

incdptr
movx @dptr,a :(1003h) (a) = =
First byte of product (CDh X EFh)
mov a,r4 (a)-(r4)
add a,rs (a)- Second byte of the product
=

Higher byte of product (CDh X EFh)


Higher byte of (CDh X EFh) + Lower byte of (ABh X EFh)
incdptr
movx @dptr,a; (1004h) (a) = =
Second byte of product
clr a
addc a ,r6 ( a ) = Third byte of the product
=

Higher byte of (ABh X EFh)+ possible carry from Second


byte of product
incdptr;
movx @dptr,a; (1005h)= Third byte ofthe product
hr: sjmphr; ABCD x EF = A06463h
end

9
Fmbedded Systermaba
IV Semester BE

Third eyee programs


ith first
10 Fibonacci numbers wo stored i
1. Program to generate
locations 1000h and 1001h
ibonacci series..1O Nos
1 o 0 0 h ) 2 and (1001h) 3 then the Result 3,5.8,0dh,1 5h,22h.37h
org 00h
Sjmp 0h

mor dptr.#1000M
mov rs,#O8
movx a.dptr
mo rOa
incdptr
movx a,adptr
nNt: Nch a.rd
add a.rd
incdptr
movx @dptr.a
djnz r3.nxt
ar sjmphr
end

2. Program to find GCD and LCM of nvo 8-bit numbers.


Egl: N=6 & N2=S GCD =2 and LCM 24(18h) =

Eg2: NI=14 (OEh) and N2=63(GFh) GCD ==7 and LCM


:(NI x N2) (LCM x GCD)
= =126(7Eh)
Logic for GCD
eg1: S-6=2: 6-2=4; 4-2=2: 2-2=-0:== GCD=2
eg2: 63-1449: 49-14=35: 35-14-21: 21-14=7;
:Logic for LCM 7-7-0 GCD=7
:LCM-NI GCD) x N2
egl: LCM= (6/2) x 8 = 3 x 8=24=18h
eg2: LCM=(14/7) x63 =
2 x63 =126=7Eh
org 00h
Spmp 30h
org 30h
mov dptr.=1000h
movx a@dptr
mov r0.a
:(r0)= N1= (1000h)
incdptr
mov a. @dptr :(a)- N2 = (1001h)
back: cjne a.00h.pt
Smpgcd
p JInc sip
Nch a.r0
skip: cir
subb a.r0
simp back
IV Semester BE Embeddcd System Lab(4RECL3)

ged: incdptr
movx (@dptr.a :(1002h) =- GCD
incdptr
mov 0fdh,a (b) =GCD
mov 82h,#00
movx a.@dptr (a)=N1
div ab : (a)/(b) q(a) and r=(b) => (a) = (N1/GCD) (b)= 0
mov Ofoh.a ( b ) = (a) = (NI/GCD)

incdptr
movx a.@dptr (a) =NN2
mul ab (a)= (NI1/GCD) x N2 =LCM
mov 82h,#03
movx @dptr,a (1003h)=LCM
hr:sjmphr
end

3 Program to search an element in a block of N-bytes. If number is present, show the


position number in 1050h. If not present, show FFh in 1050h; Key element is stored in
1000h. The data block starts from 1001h
org 00h
sjmp 30h
org 30h
resultequ 1050h
lenequ 6
mov dptr,#1000h
mov r2,#0h Positon Courd en) ; (r2) = Position Counter
mov rl,#len
movx a,@dptr (a) =Key Element
mov r0,a (:0)= Key Element=(1000h)
bk: incdptr
inc r2 ;Update the position counter
movx a,@dptr
cjne a,00h,nxt ; Comparing the data with key
element
sjmp found
nxt djnz r1,bk
mov r2,#ofth KEY NOT FOUND
found: movdptr,#result
mov a,r2
movx @dptr,a
hr: sjmphr
end
4. mbedded SysMen
Pr to tind the sq
qunre and eube of u number.

Sjn 30h
Org 30

mov dptr./# 1000h


found :Ponter to Number N
whose square and
movx a.dptr eu
movb,a
mov r0,a
(r0) N
mul ab
mov rl,a To Conmpute Square
mov r2,b
:(r)Iower Byte of Square
(r2)11igher Byte of Square
incdptr
movx dptr.a: Lower Byte of' Square in 1001h
inedptr
mova,b
movx @dptr.a ; Higher Byte of Square
in memory 1002h
To Find the CUBE ofN (16 bit Square X N)
mov a,r) (a) N
mov b.rl :(b)(rl ) L.ower
1Byte of the Square
mul ab :Lower Byte of the Square X N
incdptr
movx @dptr.a ; First Byte of the Cube stored in 10031
mov r3.b
mov a,0 (a) N
mov b,r2 :(b)= Higher Byteof Square
mul ab
add a,r3
incdptr
movx @dptr.a :Second Byte of the Cube stored in 100
clr a
addca,b
incdptr
movx @dptr.a :Third Byte of the Cube stored in 1001
hr:sjmphr
end
5. Program to find square root of a 8 bit number
org 00h
sjmp 30h
org 30 DM
mov 30h,#81 store, the number N into internal
mov r0,#0ln (r0)1 Start the counter
back: mov a,r0
mov b,a
mul ab :lind the Squre of(r0)
is sue

cjne a,30h.nxtl :Check whether the number,N


sjmpend proc
nxt: inc r0 lncrement thecounter
V Semester BE Enbedded System Lab(4RECT )

sjnp back
cnd_proC
mov 31h.r0 Store the Square root in 31h
hr sjmphr
end

Fourth cycle programs:


Program to demonstrate Binary-up counter (0011 to FFH)
Modify this program to demonstrate Binary-down counter (FFH to 0011)

org 00h 0, 2,u


Simp 30h
org 30h
clr a YmOv a, toh (odd o
back: mov pl,a
A acall delay
tnca. odolo ttoah
sjmp back
delay: mov r3,FOTfh4# Af4 k
loop3: mov rl.#efth diottth
loop2: mov r2,#0fth o n f
loopl: djnz r2,loopl
djnz rl.loop2
djnz r3.loop3
ret
end

. Program to demonstrate for BCD down counter (99 to 00)


Modify this program to demonstrate BCD-up counter (00 to 99)}
org 00h
Simp 30h
org 30h
e-a499h-cl Subrech
uCall a byouut
back:mov pl,a
acall delay
add a, #99h oth clr DMCve o
add a, # olk
da a
da
jmp back
otkH
dclay: mov r3,4Mfk
loop3: mov rl,#0ffh
loop2: mov r2,#0fth -tton tH
loopl: djnz 12,loop
djnz rl,loop2
djnz r3,loop3
ret
end

You might also like