Tải bản đầy đủ (.pdf) (26 trang)

LẬP TRÌNH HỢP NGỮ CHO VI ĐIỀU KHIỂN MCS51 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (267.25 KB, 26 trang )










 

 ! 




 






 






  !"#$%


 !"#$% !"#$%
 !"#$%


&
&&
& !"'
!"'!"'
!"'


(
((
( %
%%
%


)
))
) *%'
*%'*%'
*%'


+
++
+ 





,
,,
, -
--
-


"#


 ./ 0"%
./ 0"%./ 0"%
./ 0"%




 ./ #1$
./ #1$./ #1$
./ #1$




 ./2#2
./2#2./2#2
./2#2



&
&&
& .//
.//.//
.//2
22
2


(
((
( ./%-!23
./%-!23./%-!23
./%-!23


)
))
) ./"
./"./"
./"


$%  
%&%



 0"!"

0"!"0"!"
0"!"




 "24
"24"24
"24




 '%5'%
'%5'%'%5'%
'%5'%


&
&&
&  0
 0 0
 0


' 
6789:(
6789:(6789:(
6789:(


%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


,O
,O,O
,O DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN


 2
22
2





 '-$
'-$'-$
'-$


;
;;
; '6;N=SDFJHT=;=FUF9=
'6;N=SDFJHT=;=FUF9='6;N=SDFJHT=;=FUF9=
'6;N=SDFJHT=;=FUF9=


S
SS
S ;VH=>HNBR;W<X6DRFYZC
;VH=>HNBR;W<X6DRFYZC;VH=>HNBR;W<X6DRFYZC
;VH=>HNBR;W<X6DRFYZC


B
BB
B ;VH=>
;VH=>;VH=>
;VH=>HNB[C\9:R;W<>F<F;=YH9=DR
HNB[C\9:R;W<>F<F;=YH9=DRHNB[C\9:R;W<>F<F;=YH9=DR
HNB[C\9:R;W<>F<F;=YH9=DR



Z
ZZ
Z ;VH=>HNBR7@;B6C@9]Y=6F9YFRTF
;VH=>HNBR7@;B6C@9]Y=6F9YFRTF;VH=>HNBR7@;B6C@9]Y=6F9YFRTF
;VH=>HNBR7@;B6C@9]Y=6F9YFRTF













()*+, /01)234*56 784*9:);8<()*);=6>).
()*+,?.6@A8B67);4= C@4*9:);8<()*D/)E0<46F801) D@G+ 










@C);+, @F4E/0H=86@ F)*@A);
@C);+,?.*9F89A9=8 /01)4@F486@F)89C
@C);+,I.@F489GE*6@F B/0>=E*/0H)E*/J/01)234*.


6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN

DP7QRLN

 

 ,
,,
,


. K
        !"
#$#%&'()#))!"#*!+!"
(,(!)-# !"+) %
&) )( .

,!"+#//0/!)))$
+)  1 ) %2!"+) 
)3+ !" ()  !") "+
41 +!))  #$#%
 !
,  !" )3        + 5  1 + 41 % 2  !"
+) )))6)#+%
"
, !" #)  !"+    !" ) %
2!") )1# ))71#+%
!#"
,  !" (     !" )    +   ) !   !"
) ) %
$"
,) +)     )7# %&) )1# 

))7+%
8 +  )/( +)  ') !" (!(
)+ 31)( 3+ )%81# ) 
())+() (+)(%
%"
253)7) 3%&) )#)#)1#
7% 9  : )# 4  3 1  (    ) % &)     )  
53)#%&) )# 4)  !)3")%
"
;)33)# )/!) 1)  )+ +1
)# %&) !"< )<'%
.  K
*8&=5!!'#)> #))&28=5%
2#*8&=5#!" + .# 1
?@81A)#! ) .
$& '(!)' *
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 


 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


,
,,
, DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
B!)))!CD )3+/!C)!)
3(!%
*!      )3 +' # E4%F  ) !    ) 
E4%@6F+ ( (E4 %F"=G5.

()*+, /01)234*56 784*9:);8<()*);=6>).
B 1 !" # 3H !" )3I 3   # !
)   )*! %*!1 #)  +!' <
1 +!)% )) 1 )1.
+ &"   #     + (' !)   !" )3/')< 
)1++ )1(' %
J1('  +!'/ (' +!1%
J) +!'.<1  +!1 !"%
+ ,")! )+  ( .
• 2
• 2)++ 7 %

• 2!(' ! ' # )7<%
• 2)%
B +)3 )(!++%
B  (!" )3+ %
.  K
• 9 1+41%
• 9<#$!* !?!+%
• 93(*!% 
• 2'%
2 1+41 .
)"* ! )%*)-%*).*)/ *
B!) )   K )  1 #  E.F/ )     1 /
)!# )) +) ) ) )73 ))7( )))/
)')  )K#ELF%
01!2:#$) !/()+-1/<)7
+)# $)+%
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 


 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 ,
,,
,




21(' ))M5('+('31)7#ENF
)7 EGF/+ )1  / )/ENF )7  EGF% 2('   ) 1#   ('
)   ()  %2   ('    1 #   !"
()# (' )'(%
31%&"
 J# OPQ RI
4) )(' # :+!'!)!".
• B!)) <%

• S+-1!)#) 
• B)# E.F
• B!) <) :) %
• T)7! %
31%,"
,5. &@S RI/UM=
! 1)1  +<#$!.
• &)) .*??/8QJ/&Q, /?>S/&@S/0
• &))<#$!.)! /H/#//0
5  %  ) ) )7    7 1  +   )7 < #$
!/) )<)7 # %
2<#$!) 3) ))7(' %
31%6"
 J# OPQ RI
8))!) ) +) ))()).
31%7"
 &@S RV/UW=
 9@X
 ROB
B!)*8&=5) ()1=G5.
%/0H=86@F)*@A); 618@C
9LD/07=89F48*:G/ %M*/07=*6@N4*@O);B9 :A42=G);D@G5;/@F8<3P6Q
3@4*RJ/88<9A48/0QS %M*/07=*6@N4*@O);8 *@54*/0Q=B3@4*RJ/8
3@4*R4*9:);8<()* %M*/07=*6@N4*@O);8 *@54*/0Q=B3@4*R5@L
3@4*R29LD/07=8< 9A48/0QS %M*/07=*6@N4*@O);8 *@54*/0Q=B3@4*R29LD/07=
3@4*R;/@F)8/0QS *@54*/0Q=;/@F)8/0Q SB0Q)J67)*:FT46F8*0HD@G6UUP 08

%M*/07=@PP05JD0< B@N4J/078

01)8*@)*;*/.

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


,&
,&,&
,& DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
@C);+, @F4E/0H=86@ F)*@A);
? ##.

,  )  ) )  3 !)  )  %B)   1
)(' EUF!%
31%"
 &@S RV/UW=
B!)+'#W=#  %
Y<!.#!##! 
T#! 1))!4%
2)M<.
G B!4!<%
G B!4)1%%
G T' !:! %
31%8"
 8OBJ VV  L) <VV
 2,R *22%W  L4) W 1*
 2,R O*  L4) Z)
Y<!".!)!##! 
,)1 1 %
G , 1).!)(  ))) #[4
)DD1#) 1 ()3( 6+ 1)3( %
G , 1+ ) ).!)( ))) # 55
#H1!)  ) *\&X+*2*,,%
G , 1+    )  )  < #. !)( ))) #  5]
#H1)) ) ) ,\&X+,2*,,%
91+)!.
, \&X)#  8\&X/*\&X)7,\&X%
, 2)#  *2*,,)7,2*,,
9 !"()3H < (1)%PZ
) +) !.
, 8\&X.())+<'!)+G5I[)+<
1 (%

, *\&X^*2*,,.()  )+ <' !)+()I
TJ)+ (%
, *\&X^*2*,,.)<'!) +]_T%
31%9"

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN

DP7QRLN

 

 ,(
,(,(
,(


1234 1 org 1234h
2
1234 04 3 start: INC A
1235 80FD 4 JMP start
5
12FC 6 org start+200
12FC 4134 7 JMP start
8
12FE 021304 9 JMP finish
1301 121307 10 CALL delay
11
1304 14 12 finish: DEC A
1305 4134 13 JMP start
14
1307 7F00 15 delay: MOV R7,#0
1309 22 16 RET
17 end
    _6   #  6/   6  W   # 
*6+ 6` #6%

Y<# !#!## #!.

Y<#!  4) #   ) ) <V V Wa++
7  [V aa%2(' : 3) 1
#) -%
31%:" .
MOV A,90H
MOV A,P1

Y<# #!### !.
T#<1)3!4# %2
1#)( RV/R5/?XBR+X2%
2(' 7 1!.
2 ('    # )   < # */ ?X BR/ RV RW/X2/
2+7*J%
T' #EbF# ! 1) +!'%
31%;" .
WAIT: JNB RI,WAIT
JNB RI,$

T' ELF)'
'.  ! K


 

^
^^
^


B)1#( +))!)!"%

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


,)
,),)
,) DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
J #  (  ) / )$ (/  (  +  ) 1 ' )
!)5]%? !) !")!"#$) +

%
2))3).)/(/ )$(+) +!'%
2)1)3).)1)) /)1/)1H +)1( %
$<")1# .
• 8) 4#c4/) )5]./%
• 8) #/))5V.?/#) 7()3%
• 8))/))[.@/) /P/H%
• 8)!/))I.J/%
" +) 4 (') 43  ! * a "1) ('
)V1!%
31%&=" # a_+ )RV
MOV R0,#0F4H

0"))I( I#d)#)
!)%
31%&&" d*e)!VV_51*82>>
 d*Je)!_5_I
 de)!VV]5 
 de)!]5]I 
2)1# ())# %
31%&," 
MOV R0,#’0’



 ^
^^
^



2)(+<#$? J:))!)!"%
31%&6" 
  Keymsg DB ‘press any key’
 2<#$! )!)  + #   *82>>  =V 
X/WI!/]=/0/+ )+Z3<(%



  !"#$%^
 !"#$%^ !"#$%^
 !"#$%^


? 4    < 1  !)   !"  #   )  +) <
#$@R;%
Tdbe!1+3!  1) +!'%
31%&7"
LOC OBJ LINE SOURCE
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(


 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 ,+
,+,+
,+


    
1234 1 org 1234h
2
1234 04 3 start: INC A
1235 80FD 4 JMP start
5
12FC 6 org start+200
12FC 4134 7 JMP start

8
12FE 021304 9 JMP finish
1301 121307 10 CALL delay
11
1304 14 12 finish: DEC A
1305 4134 13 JMP start
14
1307 7F00 15 delay: MOV r7,#0
1309 22 16 RET
17 end

&
&&
& !"'^
!"'^!"'^
!"'^


• B)1)   EfF  4!f4 !
• B)1!   EGF  4!G4!
• B)1  EgF  4!h4!
• B)1   E^F  4!^4!
• B)13# E)#F 4!&@ ?4!
B!))4! %
31%&"
MOV A,#10 + 10H L  
MOV A,#1AH

MOV A,#25 MOD 7 L  
MOV A,#4


(
((
( %^
%^%^
%^


• B)19@B.9@B4! 1)
• B)18R 4!8R #1
• B)18, 4!8, #!
• B)1*9?4!*9?4! #7
• B)1@R 4!@R 4! )!7 
• B)1i@R4!i@R4! 4)!7
B!))4! +4)+!'3#%
31%&8"M 
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 


 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


,,
,,,,
,, DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
THREE EQU 3
MINUS3 EQU -3

MOV A,#(NOT THREE) +1 
MOV A,#MINUS3
MOV A,#11111101B

)
))
) *%'^
*%'^*%'^
*%'^


• OP c H
• 9O jk () )H

• ,B j )1
• ,O jc )1)7 )!H 
• ;B k !! 
• ;O kc !!)!H 
TH1)!1+3 aaaa) 7VVVV%
31%&9"  
MOV A,#5=5 
MOV A,#5 EQ 5
MOV A,#5 NE 4
MOV A,#5 <> 4
MOV A,#0FFH

+
++
+ ^
^^
^


• B)1 ,@A 4! )-(H114!%
• B)1 >;  4! )-(H1)14!%
31%&:"
MOV DPH,#HIGH(1234H) L  
MOV DPH,#12H

MOV DPL,#LOW(1234H) L  
MOV DPL,#34H

,
,,

, -^
-^-^
-^


?H31)1Z))
1=GI.
*9F89A

6@F)89C
- VW
? X
I YZ
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K

KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 ,_
,_,_
,_


[ \,
+ !]^_^^]__]

` 
a 
b 
c d
@C);+,?.*9F89A9=8 /01)4@F486@F)89C
T) 11#)H3    "+  ')!!
Z3'!1%
'. "#K
,< )!+ !).
G Y3(!*!.@R; /O9?/Q8>9;%

G Y:( ./H/ /#/>#/i#//)#%
G T1):!) ) .?8/?J>B/?J/?A%
G ,(!"./4! /%
G 2)).R/2/? />/J/i%


 ./ 0"%^
./ 0"%^./ 0"%^
./ 0"%^


>?@. ) - )) + !' 1    7) !"
))) !%
21#. 
31%&;"
2200 1 ORG 2200h L()<Z 3IIVV
2200 7435 2 MOV A,#35H
2202 7435 3 MOV A,#35H
2204 7435 4 MOV A,#35H
5
6
3000 7 ORG ($+1000H) and 0F000h L()<<  ) 
3000 7435 8 MOV A,#35H L5VVV+# +aVVV
9 END L_((

9)1 *9?+aVVV "<MIV]cIIV]f5VVV
B )  1 # ( ) @R; !)  ( )  )% 9     
  ) "  !    <   ) !)     % 9      
+"!1@R;41)DD1<31
 %

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


_O
_O_O
_O DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
A$B4@.)  -  ) )!  ( ' /) 
() -/#))) 1  # "11# *RV*RW

 ( )Q8>9;   +" # RV RW%T )  !   )   1 #  
!)-))) +(#!)*R9<!%
21#. 
31%,="
USING 2
MOV AR3,#70H
MOV R0,#22H

B!)   / *RM'RM  1  ( I+    
  <!   5M% B!)    /RV +$  !   !) (    
(V%
C4D.  )  !)    )3/   "  <# $ #  () 
41%


 ./ #1$^
./ #1$^./ #1$^
./ #1$^


9 < #$ )  (    #$  /  / ) +  <%
T)1#)<#$ % 9  (      : 1   <#$
#/)!<#$8OB ):%
CEA$C5. )-  5() (      ) (   7
1%
21#.  F G
   G
B!))( #) #:+G%
31%,&"
BDN EQU R2

GIAY SET 40

$.)-( )+%
21#.   '
B!))( #)#:+ '(%
2)(.
G 2)#. !"%
G i#. +#  1) )%
G ?. + # ) )<!VVlWa
G >#.  +#   ) ) <   VVlWa) +[V= 5+
VVlaa)+[V=I%
G J.   +     !) +  )   ! 4  
IVlIa
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K

KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 _
__
_


31%,,"
EPROM SEGMENT CODE
T)( !) ()#%2<()OXR@&
()#/1# "11#<#$R8O;
  2@?O^?*B*^>?*B*^i?*B*^J>B
?<1( +( /)1# "
!(!(%

31%,6" 
LOC OBJ LINE SOURCE

0005 1 flag1 equ 05h
0005 2 flag2 bit 05h

0000 D205 3 SETB flag1
0002 D205 4 SETB flag2
0004 750500 5 MOV flag1,#0
0007 750500 6 MOV flag2,#0
*** ERROR #37, LINE #6 (0), DATA SEGMENT ADDRESS EXPECTED
7 end

SYMBOL TABLE LISTING


N A M E T Y P E V A L U E A T T R I B U T E S

FLAG1. . . NUMB 0005H A
FLAG2. . . B ADDR 0020H.5 A

REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE, 1 ERROR FOUND (6)
B!)!" +'#!   ()D5)   )<V=/DI )
<V=%   (  #()))$+ " !4  ) 
<V=%
, =(#4D5))<V=/ ="(
#))$+" & @S() )+)%



 ./2#2^
./2#2^./2#2^
./2#2^



HD+%(!.  : / )  - (1 ) +   +   ! (
%
21#. )"* % G)-G*).*
B!))#)# :+G%
31%,7" 
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


_
__

_ DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
LOC OBJ LINE SOURCE

1 cseg at 0100h
0100 C0 2 ma7d: db 0c0h,0a4h
0101 A4
3
0102 48656C6C 4 msg: db 'Hello'
0106 6F
5
6 end
SYMBOL TABLE LISTING


 HDI%(!J%. :/ ) -(1) + + !(
m)!#%
21#. )"* %J G)-G*).*
B!))#)# :+G%
&
&&
& .//2^
.//2^.//2^
.//2^


HD$%(!.: +  !/ )  - #+ ) %2<
#$)1# !)()))!?J>B%
21#. )"* % G

B!))#) #:+G() )
%
T7<#$?8!) !"")  +!'1  -
)!14!%
31%,")+R) _V # .
DSEG AT 10H L+ # ) 
LEN EQU 40
BUF: DS LEN L#_V Z3<5V

31%,8" )+ R)5VVV# . 
XSEG AT 2000H L+#  )
XLEN EQU 1000
XBUF: DS LEN L# 5VVVZ3< IVVV

LZ3 !"
 28O; *B VVVV
  &@S ?XBR/UiJQa L <1+)+ )#!
 ,@@X. 2,R *
  &@Si n?XBR/* 
  >92 ?XBR
  &@S */?X,
  2\9O */U,@AiJQafi,O9f 5/,@@X L)< 
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""

"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 _
__
_


  &@S */?X
  2\9O */U>;iJQafi,O9/ ,@@X L)< )(
  8\&X b
  O9?


HD!%(!!.  : + ! #   / )  - # +  ) 
!)%
21#. )"* %! G
B!))#) #:+G() )
%T7<#$?J>B!)!"") +!'1J>B 
-+)!1%
31%,9" 
LOC OBJ LINE SOURCE

1 bseg L<#$+7 Z3VV
0000 2 kbflag: dbit 1
0001 3 pbflag: dbit 1
0002 4 dbflag: dbit 1
5
6 bseg at 30h L<#$+ Z3MV
7
0030 8 F1: DBIT 1
0031 9 F2: DBIT 2
0033 10 F3: DBIT 1
11
12 cseg
0000 D231 13 setb F2
14
15 end
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


_&
_&_&
_& DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
SYMBOL TABLE LISTING


N A M E T Y P E V A L U E A T T R I B U T E S

DBFLAG . . B ADDR 0020H.2 A L)<VI1 ))<IV
F1 . . . . B ADDR 0026H.0 A L)<MV 1))<I]

F2 . . . . B ADDR 0026H.1 A L)<M5 1))<I]
F3 . . . . B ADDR 0026H.3 A L)<MI 1))<I]
KBFLAG . . B ADDR 0020H.0 A L)<VV1) )<IV
PBFLAG . . B ADDR 0020H.1 A L)< V51))< IV

(
((
( ./%-!23^
./%-!23^./%-!23^
./%-!23^


2)   )#        # ! )    +    
) )#+7 )#%
! ", (( ) 1#!))#)(%
21#.!   )-*)-HH*
B!))#!2 ()!)X1:!))#
 %
31%,:" Public inchar, outchar, inline, outstr, extern

CG", (( !))#)3 
()!))#( %
21#.G  ')-*)-HH*
2C2@? O/i?*B*/?*B*/>?*B*/J>B+9Q&JOR9Q&JOR(
 ())( :OPQ%
31%,;"2)I &*>9%8R2+ %8R2
;main.src
Extrn code (HELLO, GOOD_BYE)

CALL HELLO


CALL GOOD_BYE

END

;MESSAGE.SRC
PUBLIC HELLO, GOOD_BYE

HELLO;

RET
GOOD_BYE;

RET
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''

'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 _(
_(_(
_(


)#!()1 !"31.#!+(
+)!"( 1%B!)((/)+ 
<) 2*,,%

4"71)# )!!)!" %
21#. 4 %'
B!)))#%
)
))
) 

./"^

./"^./"^
./"^


8 ( )    +     #   ! )!    
# !) )3[V=5%T*!7<#$)")
 ) 7 #   ) +)))   (7<#$)
(%
H?$C@ K!LMNML "))  
:! %
21#. ? '
B!)) :!)%
2<#$ +# )+)) cho (
7<#$)( %
2(<#$)28O;^?8O;^>8O;^i8O;2))5
 )%
21#.  
B!)))2/?/>/J )7i+<%
31%6=" 
LOC OBJ LINE SOURCE

1 onchip SEGMENT data L+
2 EPROM SEGMENT code
3
4 bseg at 70h L )
5
0070 6 flag1: dbit 1
0071 7 flag2: dbit 2
8
9 Rseg onchip LZ3#  +

0000 10 total: ds 1
0001 11 count: ds 1
0002 12 sum16: ds 2
13
14 rseg eprom LZ3 +
0000 750000 F 15 begin: mov total,#0
16
17 end
'. $%  K
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN



_)
_)_)
_) DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
B)7 #)3(!)!")3 3()+ 
(4%  &)$#)  3(  Z3  ( EbF+)) #
()3( 1()1!)%
X3  () 3 ( ) #'  +() ' +  ()
3(+ZI( %
&) )()3() # (11.

B3( SZ &7

op:
X*;O,O9;B X, X,]V Y7)#))))$!1  (4
3+!'5V ]==M]
X*;OA>?B XA XA5I V Y7)( )))$#)3 !WI5MI
iROa^9@iROa iR^9@iR

9@iR B)1  (  ) 1 1 (  
1#!) !"%
O\O2B O\  B( 41!(%
;O9^9@;O9 ;O^9@;O

9@;O B)!3 1(!!)%
>92,Q?O
D

>2  2<     )  4   )  31
!"%
,>8B^9@,>8B ,>^9@,> ,> >#))3 !) (4% 
8*SO^RO8B@RO 8*^R8  ,  !   73( ) ,>8B+  ;O9/+
-4% 
B>B,O! BB  Y7 )$(!13! )]V(%
@C);+,I.@F489GE*6@F B/0>=E*/0H)E*/J/01)234*.

'. %&%K
S   #    !"    !" 3  !"
))#+) +%
B3 !" (+ +(  )#)  )#)
  ) )   % B1  (  )     !  
+7+)!) 4 )"=GI.

()*+,?.6@A8B67);4= C@4*9:);8<()*D/)E0<46F801) D@G+ 
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 


 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 _+
_+_+
_+


'. K
X   41  !) 1 *8&=5         )$ ( % &!) ) 
  3  1 #   4   :)  3   #    
1+)1# ()$)!)!"+) )%
B  )   : !)1() $ ) !)   !")3+) 1  #
 (%2 1:!) .
qh#DC!!)C)#
B!))   #)# : + !)
')!" 7%
Y  +   "  7(    EqF!  !)+(

#"1 !) !)+))!"!)%
31%6&"9:!)1 3 )3
%*define (push_dptr)
(
PUSH DPH
PUSH DPL
)

B"(7qC#!!) !")3"!"#
I !
PUSH DPH
PUSH DPL
!) %

2 (1# !).
G 2!" )3)1# !)"#$)+" 1 !))
:1)+ 1  %
G 2!"Z) '%
G 81#!)1)$% 
G 81#!)) !"() 1 !) +%


 0"!"^
0"!"^0"!"^
0"!"^


&!)+)!3 !"')#.
qh#D!)C!!C!)C)# 
B!) )     !)/   #    ) +

!)%
31%6,"Y:!))!3) 
%*define (cmpa#(value))
(
CJNE A,#%value,$+3
)

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN



_,
_,_,
_, DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
B"()1!3) .
%Cmpa#(20H)
T#!1
CJNE A,#20H,$+3
" 6 M/#) )bfM'<1 ( 6%

31%66"Y   1"))!).
%*define (JGT(value,label))
(
CJNE a,#%value+1,$+3 L)+!+ f5!)31bfM
JNC %label L1 2cV):
)




 "24^
"24^"24^
"24^


B)1# ) !)!))#.
qh#D!)Cr!!Cs
r)C)DCs!)C)#
B!) )     !)/   #    )/

# ) +!)%
31%67"Y:!)) ) 
%*define (dec_dptr) local skip
(
DEC DPL
MOV A,DPL
CJNE A,#0FFh,%skip
DEC DPH
%Skip:)
T!))
  q#C# !
B"!"#  )! :!)!)1D
%.
DEC DPL
MOV A,DPL
CJNE A,#0FFh,skip00
DEC DPH
Skip00:
9) ()H +)!) !"'+"!"
#*8&=5) +) ))) (#%
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((

(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 __
____
__


9    :!)  " (#  *8&=5  ())
) .
%*define (dec_dptr) local skip
(
DEC DPL
MOV A,DPL

CJNE A,#0FFH,SKIP
DEC DPH
Skip:)



 '%5'%^
'%5'%^'%5'%^
'%5'%^


.,) !)!)4#t !)*!%2.
q!4!)4
B!))++-137%
31%6" 5VV 9@X") 1#!)!.
%repeat(100)
(
Nop
)
T#"!)D%  !5VV 9@X%
&
&&
&  0^
 0^ 0^
 0^


*8&=5: !))33( )#)3
( 3%? !) .
2.

q>a4!)BO9 #C4
rO,8O#C4s
B!))++-13))3 ( %
31%68" internal equ 1
; 5c[V=5! >^@#!+!
; Vc[V=I! >^@#!+!

%IF (internal) THEN
(inchar: ;8051 drivers
… ;   ( # 

Outchar: … ;  ! 3(# 

)ELSE
(inchar: ;8052 drivers
… ;   ( # 
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 


 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


OO
OOOO
OO DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

Outchar: … ;  ! 3(# 

)
9  >9BOR9*, c 5 "    +  !3 #   ) ( 1 [V=5  
>9BOR9*,cV" !3# )(1[V=I%

d. ' K


 2^
2^2^
2^


G Y7 1!" .1 )  /) +  +41 !)

! )+ !) +<1%
G 2 (  ! !". !"  ) !/) !" ) 
!)   !")%
G 2<)M!!)!". / +)7+)%
G Y7'1!.)$!) ) +)#+) !#%
G *8&=5:!))33( )#)3


 '-$^
'-$^'-$^
'-$^




 

^
^^
^


31%69";!)5 1
 r)cVs
31%6:";)5!") 
 X!C!E) )F
31%6;"T) 
  J
   r5s
   rIs

   rMs
  #


 



^
^^
^


31%7="&)) !m ^#)(2c5" .
.
  mrcc5s#)rs
 [V=5.
 !. \92  (
   rs
 (. 

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(

((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 O
OO
O


31%7&"   o 3  ).2 !" ) ') 8Q& 1 )  )$). ) )
#   #  !)  RW +  <Z 3 1 +#    !) 
RV/(H1)!) *%
S.
rcVs

mrC#kVs#)

 rcf n)!s
 r)!c) !f5s  L-)!
 rC# cC#G5s L13 #
#
S [V= 5+)
8. 2,R *
,)). 2\9O RW/UV/) 
 \&X 4
). *?? */ nRV
 >92 RV
 ?O2 RW
 \&X ,))
4. ROB

S [V= 5 !"#$%
8. 2,R *
). *?? */ nRV
 >92 RV
 ?\9u RW/) 
 ROB
B!)(M !" +)1)13( RWkV%
31%7,"  o3 ).1 # !m^#)  EF ( 
*(V?+RW( V%
&.
ArvcV?#R WvcVs#)rs
S [V= 5+)
!. 2\9O */UV?/( 
 \&X 4

(. 2\9O RW/UV/ 
 \&X 4
.
 0
6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


O
OO
O DP7QRLN

DP7QRLNDP7QRLN
DP7QRLN
 \&X !
O4. 


 



^
^^
^


31%76"o3).  +  !")  " (  (  u !) )  )$ 
(( (!)$) <Z3RV%B *!1+3+
(*82>>EuF)) !))$(/"*!V%
.
!
 r*cn)!s
 r!)!s
Qrcceue)!*cVs
S [V=5+)
. &@ S */nRV
 >92 RV
 \u 4
 2\9O */Ueue/
4. ROB



  !!
 !! !!
 !!"
""
"^
^^
^


31%77"  o 3 ).+ !" (!  *. &8J1 
*5"!aa+ VV+)*%
.
Dr&8J*22cc5s
r*22caas
r*22cVs
S [V= 5
. R,2 *
 \92 I
5. &@S */UVaa
 \&X 4
I. 2,R *
4.
'!()"#"*%.
31%7" o 3). ;11) ) !" )) >92( )
)' rdVe/d5e /dIe/dMes!1+ 3*82>> 1  ' !) *%
+)$ ) '+) %
.
r(s)D
 dVe. rVs

6789:(
6789:(6789:(
6789:(

%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(

 

 '
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN


DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN

 

 O

OO
O


 d5e. r5s
 dIe. rIs
 dMe. rMs
O#C
S [V= 5
 2*,, 
 2\9O */UeVe/(5
iV. 0  L41)+  +'V
 \&X 4 L(
8(5. 2\9O  */Ue5e/(I
i5. 0  L41)+  +'5
 \&X 4
8(I. 2\9O  */UeIe/(M
iI. 0  L41)+  +'I
 \&X 4
8(M. 2\9O  */UeMe/4
iM. 0  L41)+  +'M
 \&X 4
&#(#+,#.
2!"1 !)  !+H +"3!H!) !"
)))33%
27!)!".<)) 3!))$
!"%81# 1)+ ) !"!)!+#$#%
S 7" 7.- -0
S   !  !" + 1 H3  " 7   . .-
#-/

S !!"( )!"7.0--11
2)1#  Z43 .(5/(I/(M/0
2  '   +   ' (). ()   ' ) #)     < 
' ):%
31%78" 2#) "3'.
  XQ8  VV   LRV+) -4
  &@S RV/U]V  LRVH1 +)<Z 3]V
  &@S RW/UM5   L RW#) 
31%79" 2#) "()3 1'+" !)!.
  XQ8  *2 2  L*+) -4
  >92 RV  L-RV
  ?O2  !W   L1)  5

×