!
!"#$%
!"#$% !"#$%
!"#$%
&
&&
& !"'
!"'!"'
!"'
(
((
( %
%%
%
)
))
) *%'
*%'*%'
*%'
+
++
+
,
,,
, -
--
-
"#
./ 0"%
./ 0"%./ 0"%
./ 0"%
./ #1$
./ #1$./ #1$
./ #1$
./2#2
./2#2./2#2
./2#2
&
&&
& .//
.//.//
.//2
22
2
(
((
( ./%-!23
./%-!23./%-!23
./%-!23
)
))
) ./"
./"./"
./"
$%
%&%
0"!"
0"!"0"!"
0"!"
"24
"24"24
"24
'%5'%
'%5'%'%5'%
'%5'%
&
&&
& 0
0 0
0
'
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
,O
,O,O
,O DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
2
22
2
'-$
'-$'-$
'-$
;
;;
; '6;N=SDFJHT=;=FUF9=
'6;N=SDFJHT=;=FUF9='6;N=SDFJHT=;=FUF9=
'6;N=SDFJHT=;=FUF9=
S
SS
S ;VH=>HNBR;W<X6DRFYZC
;VH=>HNBR;W<X6DRFYZC;VH=>HNBR;W<X6DRFYZC
;VH=>HNBR;W<X6DRFYZC
B
BB
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
ZZ
Z ;VH=>HNBR7@;B6C@9]Y=6F9YFRTF
;VH=>HNBR7@;B6C@9]Y=6F9YFRTF;VH=>HNBR7@;B6C@9]Y=6F9YFRTF
;VH=>HNBR7@;B6C@9]Y=6F9YFRTF
()*+, /01)234*56 784*9:);8<()*);=6>).
()*+,?.6@A8B67);4= C@4*9:);8<()*D/)E0<46F801) D@G+
@C);+, @F4E/0H=86@ F)*@A);
@C);+,?.*9F89A9=8 /01)4@F486@F)89C
@C);+,I.@F489GE*6@F B/0>=E*/0H)E*/J/01)234*.
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
,
,,
,
. K
!"
#$#%&'()#))!"#*!+!"
(,(!)-# !"+) %
&) )( .
,!"+#//0/!)))$
+) 1 ) %2!"+)
)3+ !" () !") "+
41 +!)) #$#%
!
, !" )3 + 5 1 + 41 % 2 !"
+) )))6)#+%
"
, !" #) !"+ !" ) %
2!") )1# ))71#+%
!#"
, !" ( !" ) + ) ! !"
) ) %
$"
,) +) )7# %&) )1#
))7+%
8 + )/( +) ') !" (!(
)+ 31)( 3+ )%81# )
())+() (+)(%
%"
253)7) 3%&) )#)#)1#
7% 9 : )# 4 3 1 ( ) % &) )
53)#%&) )# 4) !)3")%
"
;)33)# )/!) 1) )+ +1
)# %&) !"< )<'%
. K
*8&=5!!'#)> #))&28=5%
2#*8&=5#!" + .# 1
?@81A)#! ) .
$& '(!)' *
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
,
,,
, DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
B!)))!CD )3+/!C)!)
3(!%
*! )3 +' # E4%F ) ! )
E4%@6F+ ( (E4 %F"=G5.
()*+, /01)234*56 784*9:);8<()*);=6>).
B 1 !" # 3H !" )3I 3 # !
) )*! %*!1 #) +!' <
1 +!)% )) 1 )1.
+ &" # + (' !) !" )3/')<
)1++ )1(' %
J1(' +!'/ (' +!1%
J) +!'.<1 +!1 !"%
+ ,")! )+ ( .
• 2
• 2)++ 7 %
• 2!(' ! ' # )7<%
• 2)%
B +)3 )(!++%
B (!" )3+ %
. K
• 9 1+41%
• 9<#$!* !?!+%
• 93(*!%
• 2'%
2 1+41 .
)"* ! )%*)-%*).*)/ *
B!) ) K ) 1 # E.F/ ) 1 /
)!# )) +) ) ) )73 ))7( )))/
)') )K#ELF%
01!2:#$) !/()+-1/<)7
+)# $)+%
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
,
,,
,
21(' ))M5('+('31)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); 618@C
9LD/07=89F48*:G/ %M*/07=*6@N4*@O);B9 :A42=G);D@G5;/@F8<3P6Q
3@4*RJ/88<9A48/0QS %M*/07=*6@N4*@O);8 *@54*/0Q=B3@4*RJ/8
3@4*R4*9:);8<()* %M*/07=*6@N4*@O);8 *@54*/0Q=B3@4*R5@L
3@4*R29LD/07=8< 9A48/0QS %M*/07=*6@N4*@O);8 *@54*/0Q=B3@4*R29LD/07=
3@4*R;/@F)8/0QS *@54*/0Q=;/@F)8/0Q SB0Q)J67)*:FT46F8*0HD@G6UUP 08
%M*/07=@PP05JD0< B@N4J/078
01)8*@)*;*/.
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
,&
,&,&
,& DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
@C);+, @F4E/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
)DD1#) 1 ()3( 6+ 1)3( %
G , 1+ ) ).!)( ))) # 55
#H1!) ) *\&X+*2*,,%
G , 1+ ) ) < #. !)( ))) # 5]
#H1)) ) ) ,\&X+,2*,,%
91+)!.
, \&X)# 8\&X/*\&X)7,\&X%
, 2)# *2*,,)7,2*,,
9 !"()3H < (1)%PZ
) +) !.
, 8\&X.())+<'!)+G5I[)+<
1 (%
, *\&X^*2*,,.() )+ <' !)+()I
TJ)+ (%
, *\&X^*2*,,.)<'!) +]_T%
31%9"
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
,(
,(,(
,(
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:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
,)
,),)
,) DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
J # ( ) / )$ (/ ( + ) 1 ' )
!)5]%? !) !")!"#$) +
%
2))3).)/(/ )$(+) +!'%
2)1)3).)1)) /)1/)1H +)1( %
$<")1# .
• 8) 4#c4/) )5]./%
• 8) #/))5V.?/#) 7()3%
• 8))/))[.@/) /P/H%
• 8)!/))I.J/%
" +) 4 (') 43 ! * a "1) ('
)V1!%
31%&=" # a_+ )RV
MOV R0,#0F4H
0"))I( I#d)#)
!)%
31%&&" d*e)!VV_51*82>>
d*Je)!_5_I
de)!VV]5
de)!]5]I
2)1# ())# %
31%&,"
MOV R0,#’0’
^
^^
^
2)(+<#$? J:))!)!"%
31%&6"
Keymsg DB ‘press any key’
2<#$! )!) + # *82>> =V
X/WI!/]=/0/+ )+Z3<(%
!"#$%^
!"#$%^ !"#$%^
!"#$%^
? 4 < 1 !) !" # ) +) <
#$@R;%
Tdbe!1+3! 1) +!'%
31%&7"
LOC OBJ LINE SOURCE
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
,+
,+,+
,+
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!f4 !
• B)1! EGF 4!G4!
• B)1 EgF 4!h4!
• B)1 E^F 4!^4!
• B)13# 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)19@B.9@B4! 1)
• B)18R 4!8R #1
• B)18, 4!8, #!
• B)1*9?4!*9?4! #7
• B)1@R 4!@R 4! )!7
• B)1i@R4!i@R4! 4)!7
B!))4! +4)+!'3#%
31%&8"M
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
,,
,,,,
,, DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
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
TH1)!1+3 aaaa) 7VVVV%
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! )-(H114!%
• B)1 >; 4! )-(H1)14!%
31%&:"
MOV DPH,#HIGH(1234H) L
MOV DPH,#12H
MOV DPL,#LOW(1234H) L
MOV DPL,#34H
,
,,
, -^
-^-^
-^
?H31)1Z))
1=GI.
*9F89A
6@F)89C
- VW
? X
I YZ
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
,_
,_,_
,_
[ \,
+ !]^_^^]__]
`
a
b
c d
@C);+,?.*9F89A9=8 /01)4@F486@F)89C
T) 11#)H3 "+ ')!!
Z3'!1%
'. "#K
,< )!+ !).
G Y3(!*!.@R; /O9?/Q8>9;%
G Y:( ./H/ /#/>#/i#//)#%
G T1):!) ) .?8/?J>B/?J/?A%
G ,(!"./4! /%
G 2)).R/2/? />/J/i%
./ 0"%^
./ 0"%^./ 0"%^
./ 0"%^
>?@. ) - )) + !' 1 7) !"
))) !%
21#.
31%&;"
2200 1 ORG 2200h L()<Z 3IIVV
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 L5VVV+# +aVVV
9 END L_((
9)1 *9?+aVVV "<MIV]cIIV]f5VVV
B ) 1 # ( ) @R; !) ( ) )% 9
) " ! < ) !) % 9
+"!1@R;41)DD1<31
%
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
_O
_O_O
_O DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
A$B4@.) - ) )! ( ' /)
() -/#))) 1 # "11# *RV*RW
( )Q8>9; +" # RV RW%T ) ! ) 1 #
!)-))) +(#!)*R9<!%
21#.
31%,="
USING 2
MOV AR3,#70H
MOV R0,#22H
B!) / *RM'RM 1 ( I+
<! 5M% B!) /RV +$ ! !) (
(V%
C4D. ) !) )3/ " <# $ # ()
41%
./ #1$^
./ #1$^./ #1$^
./ #1$^
9 < #$ ) ( #$ / / ) + <%
T)1#)<#$ % 9 ( : 1 <#$
#/)!<#$8OB ):%
CEA$C5. )- 5() ( ) ( 7
1%
21#. F G
G
B!))( #) #:+G%
31%,&"
BDN EQU R2
GIAY SET 40
$.)-( )+%
21#. '
B!))( #)#:+ '(%
2)(.
G 2)#. !"%
G i#. +# 1) )%
G ?. + # ) )<!VVlWa
G >#. +# ) ) < VVlWa) +[V= 5+
VVlaa)+[V=I%
G J. + !) + ) ! 4
IVlIa
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
_
__
_
31%,,"
EPROM SEGMENT CODE
T)( !) ()#%2<()OXR@&
()#/1# "11#<#$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!)!" +'#! ()D5) )<V=/DI )
<V=% ( #()))$+ " !4 )
<V=%
, =(#4D5))<V=/ ="(
#))$+" & @S() )+)%
./2#2^
./2#2^./2#2^
./2#2^
HD+%(!. : / ) - (1 ) + + ! (
%
21#. )"* % G)-G*).*
B!))#)# :+G%
31%,7"
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
_
__
_ DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
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)!#%
21#. )"* %J G)-G*).*
B!))#)# :+G%
&
&&
& .//2^
.//2^.//2^
.//2^
HD$%(!.: + !/ ) - #+ ) %2<
#$)1# !)()))!?J>B%
21#. )"* % G
B!))#) #:+G() )
%
T7<#$?8!) !"") +!'1 -
)!14!%
31%,")+R) _V # .
DSEG AT 10H L+ # )
LEN EQU 40
BUF: DS LEN L#_V Z3<5V
31%,8" )+ R)5VVV# .
XSEG AT 2000H L+# )
XLEN EQU 1000
XBUF: DS LEN L# 5VVVZ3< IVVV
LZ3 !"
28O; *B VVVV
&@S ?XBR/UiJQa L <1+)+ )#!
,@@X. 2,R *
&@Si n?XBR/*
>92 ?XBR
&@S */?X,
2\9O */U,@AiJQafi,O9f 5/,@@X L)<
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
_
__
_
&@S */?X
2\9O */U>;iJQafi,O9/ ,@@X L)< )(
8\&X b
O9?
HD!%(!!. : + ! # / ) - # + )
!)%
21#. )"* %! G
B!))#) #:+G() )
%T7<#$?J>B!)!"") +!'1J>B
-+)!1%
31%,9"
LOC OBJ LINE SOURCE
1 bseg L<#$+7 Z3VV
0000 2 kbflag: dbit 1
0001 3 pbflag: dbit 1
0002 4 dbflag: dbit 1
5
6 bseg at 30h L<#$+ Z3MV
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:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
_&
_&_&
_& DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
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)<VI1 ))<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)<VV1) )<IV
PBFLAG . . B ADDR 0020H.1 A L)< V51))< IV
(
((
( ./%-!23^
./%-!23^./%-!23^
./%-!23^
2) )# # ! ) +
) )#+7 )#%
! ", (( ) 1#!))#)(%
21#.! )-*)-HH*
B!))#!2 ()!)X1:!))#
%
31%,:" Public inchar, outchar, inline, outstr, extern
CG", (( !))#)3
()!))#( %
21#.G ')-*)-HH*
2C2@? O/i?*B*/?*B*/>?*B*/J>B+9Q&JOR9Q&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:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
_(
_(_(
_(
)#!()1 !"31.#!+(
+)!"( 1%B!)((/)+
<) 2*,,%
4"71)# )!!)!" %
21#. 4 %'
B!)))#%
)
))
)
./"^
./"^./"^
./"^
8 ( ) + # ! )!
# !) )3[V=5%T*!7<#$)")
) 7 # ) +))) (7<#$)
(%
H?$C@ K!LMNML "))
:! %
21#. ? '
B!)) :!)%
2<#$ +# )+)) cho (
7<#$)( %
2(<#$)28O;^?8O;^>8O;^i8O;2))5
)%
21#.
B!)))2/?/>/J )7i+<%
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 LZ3# +
0000 10 total: ds 1
0001 11 count: ds 1
0002 12 sum16: ds 2
13
14 rseg eprom LZ3 +
0000 750000 F 15 begin: mov total,#0
16
17 end
'. $% K
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
_)
_)_)
_) DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
B)7 #)3(!)!")3 3()+
(4% &)$#) 3( Z3 ( EbF+)) #
()3( 1()1!)%
X3 () 3 ( ) #' +() ' + ()
3(+ZI( %
&) )()3() # (11.
B3( SZ &7
op:
X*;O,O9;B X, X,]V Y7)#))))$!1 (4
3+!'5V ]==M]
X*;OA>?B XA XA5I V Y7)( )))$#)3 !WI5MI
iROa^9@iROa iR^9@iR
9@iR B)1 ( ) 1 1 (
1#!) !"%
O\O2B O\ B( 41!(%
;O9^9@;O9 ;O^9@;O
9@;O B)!3 1(!!)%
>92,Q?O
D
>2 2< ) 4 ) 31
!"%
,>8B^9@,>8B ,>^9@,> ,> >#))3 !) (4%
8*SO^RO8B@RO 8*^R8 , ! 73( ) ,>8B+ ;O9/+
-4%
B>B,O! BB Y7 )$(!13! )]V(%
@C);+,I.@F489GE*6@F B/0>=E*/0H)E*/J/01)234*.
'. %&%K
S # !" !" 3 !"
))#+) +%
B3 !" (+ +( )#) )#)
) ) % B1 ( ) !
+7+)!) 4 )"=GI.
()*+,?.6@A8B67);4= C@4*9:);8<()*D/)E0<46F801) D@G+
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
_+
_+_+
_+
'. K
X 41 !) 1 *8&=5 )$ ( % &!) )
3 1 # 4 :) 3 #
1+)1# ()$)!)!"+) )%
B ) : !)1() $ ) !) !")3+) 1 #
(%2 1:!) .
qh#DC!!)C)#
B!)) #)# : + !)
')!" 7%
Y + " 7( EqF! !)+(
#"1 !) !)+))!"!)%
31%6&"9:!)1 3 )3
%*define (push_dptr)
(
PUSH DPH
PUSH DPL
)
B"(7qC#!!) !")3"!"#
I !
PUSH DPH
PUSH DPL
!) %
2 (1# !).
G 2!" )3)1# !)"#$)+" 1 !))
:1)+ 1 %
G 2!"Z) '%
G 81#!)1)$%
G 81#!)) !"() 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:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
_,
_,_,
_, DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
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!)31bfM
JNC %label L1 2cV):
)
"24^
"24^"24^
"24^
B)1# ) !)!))#.
qh#D!)Cr!!Cs
r)C)DCs!)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"!"# )! :!)!)1D
%.
DEC DPL
MOV A,DPL
CJNE A,#0FFh,skip00
DEC DPH
Skip00:
9) ()H +)!) !"'+"!"
#*8&=5) +) ))) (#%
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
__
____
__
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!))++-137%
31%6" 5VV 9@X") 1#!)!.
%repeat(100)
(
Nop
)
T#"!)D% !5VV 9@X%
&
&&
& 0^
0^ 0^
0^
*8&=5: !))33( )#)3
( 3%? !) .
2.
q>a4!)BO9 #C4
rO,8O#C4s
B!))++-13))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:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
OO
OOOO
OO DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
…
Outchar: … ; ! 3(#
…
)
9 >9BOR9*, c 5 " + !3 # ) ( 1 [V=5
>9BOR9*,cV" !3# )(1[V=I%
d. ' K
2^
2^2^
2^
G Y7 1!" .1 ) /) + +41 !)
! )+ !) +<1%
G 2 ( ! !". !" ) !/) !" )
!) !")%
G 2<)M!!)!". / +)7+)%
G Y7'1!.)$!) ) +)#+) !#%
G *8&=5:!))33( )#)3
'-$^
'-$^'-$^
'-$^
^
^^
^
31%69";!)5 1
r)cVs
31%6:";)5!")
X!C!E) )F
31%6;"T)
J
r5s
rIs
rMs
#
^
^^
^
31%7="&)) !m ^#)(2c5" .
.
mrcc5s#)rs
[V=5.
!. \92 (
rs
(.
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
O
OO
O
31%7&" o 3 ).2 !" ) ') 8Q& 1 ) )$). ) )
# # !) RW + <Z 3 1 +# !)
RV/(H1)!) *%
S.
rcVs
mrC#kVs#)
rcf n)!s
r)!c) !f5s L-)!
rC# cC#G5s L13 #
#
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)13( RWkV%
31%7," o3 ).1 # !m^#) EF (
*(V?+RW( V%
&.
ArvcV?#R WvcVs#)rs
S [V= 5+)
!. 2\9O */UV?/(
\&X 4
(. 2\9O RW/UV/
\&X 4
.
0
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
O
OO
O DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
\&X !
O4.
^
^^
^
31%76"o3). + !") " ( ( u !) ) )$
(( (!)$) <Z3RV%B *!1+3+
(*82>>EuF)) !))$(/"*!V%
.
!
r*cn)!s
r!)!s
Qrcceue)!*cVs
S [V=5+)
. &@ S */nRV
>92 RV
\u 4
2\9O */Ueue/
4. ROB
!!
!! !!
!!"
""
"^
^^
^
31%77" o 3 ).+ !" (! *. &8J1
*5"!aa+ VV+)*%
.
Dr&8J*22cc5s
r*22caas
r*22cVs
S [V= 5
. R,2 *
\92 I
5. &@S */UVaa
\&X 4
I. 2,R *
4.
'!()"#"*%.
31%7" o 3). ;11) ) !" )) >92( )
)' rdVe/d5e /dIe/dMes!1+ 3*82>> 1 ' !) *%
+)$ ) '+) %
.
r(s)D
dVe. rVs
6789:(
6789:(6789:(
6789:(
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9
%;<=>?9668@<9:7AB6CDEDFGHI6DFJ9"
""
"(
((
(
'
''
'K
KK
K:HLFM9 ?96'6HN
:HLFM9 ?96'6HN:HLFM9 ?96'6HN
:HLFM9 ?96'6HN
DP7QRLN
DP7QRLNDP7QRLN
DP7QRLN
O
OO
O
d5e. r5s
dIe. rIs
dMe. rMs
O#C
S [V= 5
2*,,
2\9O */UeVe/(5
iV. 0 L41)+ +'V
\&X 4 L(
8(5. 2\9O */Ue5e/(I
i5. 0 L41)+ +'5
\&X 4
8(I. 2\9O */UeIe/(M
iI. 0 L41)+ +'I
\&X 4
8(M. 2\9O */UeMe/4
iM. 0 L41)+ +'M
\&X 4
&#(#+,#.
2!"1 !) !+H +"3!H!) !"
)))33%
27!)!".<)) 3!))$
!"%81# 1)+ ) !"!)!+#$#%
S 7" 7.- -0
S ! !" + 1 H3 " 7 . .-
#-/
S !!"( )!"7.0--11
2)1# Z43 .(5/(I/(M/0
2 ' + ' (). () ' ) #) <
' ):%
31%78" 2#) "3'.
XQ8 VV LRV+) -4
&@S RV/U]V LRVH1 +)<Z 3]V
&@S RW/UM5 L RW#)
31%79" 2#) "()3 1'+" !)!.
XQ8 *2 2 L*+) -4
>92 RV L-RV
?O2 !W L1) 5