`
03.2000

------------------------------------------------------------------



ЊҐв®¤ЁзҐбЄ®Ґ Ї®б®ЎЁҐ Є
« Ў®а в®а­л¬ а Ў®в ¬ Ї® Єгабг
ЋаЈ ­Ё§ жЁп ќ‚Њ





-------------------------------------------------------------------




ЋЈ« ў«Ґ­ЁҐ.


1. ЂаеЁвҐЄвга  MCS51 ...............................

1.1. ’ЁЇл ¬ иЁ­­ле ¤ ­­ле..........................
1.2. ЋаЈ ­Ё§ жЁп Ї ¬пвЁ............................
1.3. ‘ Ё б в Ґ ¬   Є ® ¬   ­ ¤ MCS51..........
1.4. ‘Ёб⥬  ЇаҐалў ­Ё©............................
1.5. Њ Єа®Є®¬ ­¤л.

2. Ља®бб-б।бвў  Їа®Ја ¬¬Ёа®ў ­Ёп ..

2.1. ЂбᥬЎ«Ґа AVC51 ............................
2.2. ‘Ё¬г«пв®а avsim51 ..............

3. ЏаЁ¬Ґал Ё § ¤ ­Ёп

3.1. ЂаЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ
3.2. ‚лзЁб«Ґ­ЁҐ дг­ЄжЁ©
3.3. €§¬ҐаҐ­ЁҐ Ё Є®­ва®«м ўаҐ¬Ґ­­ле Ё­вҐаў «®ў
3.4. ђҐ¤ ЄвЁа®ў ­ЁҐ ⥪бв 
3.5. Њ®¤Ґ«м Є®­Ґз­®Ј®  ўв®¬ в 

4. ЋвзҐв.


‹€’…ђЂ’“ђЂ..............................................






1. ЂаеЁвҐЄвга  ¬ЁЄа®нў¬ MCS51

ЂаеЁвҐЄвга  ¬ЁЄа®нў¬ (ЇаЁ­жЁЇл ®аЈ ­Ё§ жЁЁ Ё дг­ЄжЁ®­Ёа®ў ­Ёп)
¬®¦Ґв Ўлвм ЇаҐ¤бв ў«Ґ­  ¬®¤Ґ«мо Їа®Ја ¬¬Ёбв  б।бвў ¬Ё ¬ иЁ­­®Ј®
п§лЄ   бᥬЎ«Ґа .
ЂбᥬЎ«Ґа ЁбЇ®«м§гҐвбп Є Є п§лЄ бЁ¬ў®«ЁзҐЄ®Ј® ®ЇЁб ­Ёп
бЁбвҐ¬л Є®¬ ­¤, ®аЈ ­Ё§ жЁЁ Ї ¬пвЁ, Є Є  «Ј®аЁв¬ЁзҐбЄЁ© п§лЄ
ў ЇаЁЄ« ¤­ле Їа®Ја ¬¬ е. ЏаЁ ®ЇаҐ¤Ґ«Ґ­Ёпе ў ¤ ­­®¬ а §¤Ґ«Ґ
ЁбЇ®«м§говбп б।бвў   бᥬЎ«Ґа  AVЂ51.

1.1. ЋаЈ ­Ё§ жЁп Ї ¬пвЁ.

Џ ¬пвм ¬ЁЄа®нў¬ а §¤Ґ«пҐвбп ­  ў­гв७­оо Ё ў­Ґи­оо, Ї ¬пвм ¤ ­­ле
Ё Їа®Ја ¬¬, Ї ¬пвм в Є¦Ґ а §¤Ґ«пҐвбп Ї® вЁЇ ¬ ў § ўЁбЁ¬®бвЁ ®в
бЇ®б®Ў  ¤®бвгЇ - ¤аҐб жЁЁ. ‚  бᥬЎ«ҐаҐ ЇаҐ¤гᬮваҐ­л ®ЇЁб ­Ёп
а §«Ёз­ле вЁЇ®ў Ї ¬пвЁ ў ўЁ¤Ґ ᥣ¬Ґ­в®ў.

ЪДДДДДДДДДї ЪДДДДДДЛДДДДДї ЪДДДДДДї
і і і DATA є ri і і SFR і
і CODE і і є bit і і і
і і АДДДДДДЕДДДДДґ АДДДДДДЩ
ЖНННННННННµ ЪДДДДДДґstackі
і XDATA і і IDATAГДД ДДЩ
і і і і
АДДДДДДДДДЩ АДДДДДДЩ

1. ‘ЇҐжЁ «м­лҐ ॣЁбвал SFR , §  Є®в®ал¬Ё § ЄаҐЇ«Ґ­л Є®­ЄаҐв­лҐ
дг­ЄжЁЁ.

8-а §ап¤­лҐ аҐЈЁбвал :
a - ®б­®ў­®© а Ў®зЁ© ॣЁбва- ЄЄг¬г«пв®а,
b - ¤®Ї®«­ЁвҐ«м­л© а Ў®зЁ© ॣЁбва ў Є®¬ ­¤ е
г¬­®¦Ґ­Ёп Ё ¤Ґ«Ґ­Ёп,
psw=c.ac.f0.rs1.rs0.ov.-.p ॣЁбва б«®ў  б®бв®п­Ёп,
б - ЎЁв ЇҐаҐ­®б  Ё«Ё § Ґ¬ 
 б - ЎЁв ЇҐаҐ­®б  ¬Ґ¦¤«г вҐва ¤ ¬Ё
ov - ЇҐаҐЇ®«­Ґ­ЁҐ
f0 - ЇаЁ§­ Є Ї®«м§®ў вҐ«п
p - ЇаЁ§­ Є зҐв­®бвЁ
sp - гЄ § вҐ«м б⥪ .
P0,P1,P2,P3 - Ї®авл ўў®¤ /ўлў®¤ 

Љ 8-а §ап¤­л¬ бЇҐжЁ «м­л¬ ॣЁбва ¬ ¬®¦­® ®Ўа й вмбп
Ї®  ¤аҐб ¬ 80-ffh.

16-а §ап¤­лҐ аҐЈЁбвал:
pc - Їа®Ја ¬¬­л© бзҐвзЁЄ
dptr=dph.dpl - ॣЁбва  ¤аҐб 

2. ђҐЈЁбвал ®ЎйҐЈ® ­ §­ зҐ­Ёп r0,r1,...r7 б ॣЁбва®ў®©
 ¤аҐб жЁҐ© ў  ЄвЁў­®¬ Ў ­ЄҐ

mov a,r0 mov r1,b mov 01,r2


3. Џ ¬пвм Їа®Ја ¬¬ - SEG CODE

1) Љ®¬ ­¤л Їа®Ја ¬¬л ЇаҐ¤бв ў«Ґ­л ¤ў®Ёз­л¬Ё Є®¤ ¬Ё ¤«Ё­®©
1-3 Ў ©в  Ё ¤®бвгЇ­л ЇаЁ ЁбЇ®«­Ґ­ЁЁ Їа®Ја ¬¬л Є®бўҐ­­® Ї®
 ¤аҐб­®¬г ॣЁбваг PC. ЌҐпў­® ўлЎ®аЄ  Є®¬ ­¤ ўлЇ®«­пҐвбп
Ї®б«Ґ¤®ў вҐ«м­® Ї® бзҐвзЁЄг PC+ б  ўв®Ё­ЄаҐ¬Ґ­в®¬,
Ё§¬Ґ­Ґ­ЁҐ Ї®ап¤Є  б«Ґ¤®ў ­Ёп Є®¬ ­¤ Їа®Ёб室Ёв Ї® Є®¬ ­¤ ¬
ЎҐ§гб«®ў­®Ј® Ё гб«®ў­®Ј® ЇҐаҐе®¤ .
Љ®¬ ­¤л ЎҐ§гб«®ў­®Ј® ЇҐаҐе®¤  jmp,call
ў § ўЁбЁ¬®бвЁ ®в Ё­вҐаў «  ўҐвў«Ґ­Ёп Є®¬ЇЁ«Ёаговбп Є Є
ljmp,lcall - ¤«Ё­­л©  ¤аҐб 2 Ў ©в , sjmp - ®в­®бЁвҐ«м­л©  ¤аҐб
1 Ў ©в, ajmp,acall -Є®а®вЄЁ©  ¤аҐб 10 ЎЁв,

call met ;ЇҐаҐе®¤ Є Ї®¤Їа®Ја ¬¬Ґ met
;Їа®¤ўЁ­гвл©  ¤аҐб б«Ґ¤го饩 Є®¬ ­¤л
;Ё§ ђ‘ § Ї®¬Ё­ Ґвбп ў б⥪Ґ
ret ;ў®§ўа в Ё§ Ї®¤Їа®Ја ¬¬л -
; ¤аҐб ў ђ‘ ў®ббв ­ ў«Ёў Ґвбп Ё§ б⥪ 

Љ®¬ ­¤  дг­ЄжЁ®­ «м­®Ј® ўҐвў«Ґ­Ёп jmp @a+dptr нЄўЁў «Ґ­в­ 
case () of Ё«Ё switch () ў  «Ј®аЁв¬ЁзҐбЄЁе п§лЄ е

SEG CODE
mov dptr,#mem
mov a,#2
jmp @a+dptr ;дг­ЄжЁ®­ «м­®Ґ ўҐвў«Ґ­ЁҐ б Ё­¤ҐЄб®¬ ў
 ЄЄг¬г«пв®аҐ,
;dptr ᮤҐа¦Ёв Ў §®ўл©  ¤аҐб в Ў«Ёжл mem
; a+dptr=mem+2->pc
mem: ajmp m1
ajmp m2
ajmp m3

Љ®¬ ­¤л гб«®ў­®Ј® ЇҐаҐе®¤ 
jz met1 ;ЇҐаҐе®¤ Ї® Ќ“‹ћ ў acc
jnz met2 ;ЇҐаҐе®¤ Ґб«Ё acc ­Ґ а ўҐ­ Ќ“‹ћ
jc met3 ;ЇҐаҐе®¤ Ї® ЇаЁ§­ Єг ‘
jnc met4
jb acc.0,met5 ;ЇҐаҐе®¤ Ґб«Ё ЎЁв acc.0 Ґ¤Ё­Ёж 
jnb acc.5,met6 ;ЇҐаҐе®¤ Ґб«Ё ЎЁв acc.5 ­г«м
jbc acc.7,met7 ;ЇҐаҐе®¤ Ґб«Ё ЎЁв acc.7 Ґ¤Ё­Ёж 
;бЎа®б ЎЁв 
djnz r0,met8 ;ЇҐаҐ©вЁ Ґб«Ё ri-1 ­Ґ а ў­® Ќ“‹ћ
djnz mem,met9 ;ЇҐаҐ©вЁ Ґб«Ё mem ў IRAM а ў­® Ќ“‹ћ
;Ё ўлзҐбвм Ґ¤Ё­Ёжг Ё§ п祩ЄЁ mem
cjne ri,#d,met ;Ї®ўв®аЁвм Ї®Є  ri ­Ґ а ў­® #d
cjne @rj,#d,met

2) „®бвгЇ Є ¤ ­­л¬ ў Їа®Ја ¬¬­®© Ї ¬пвЁ:

- ­ҐЇ®б।б⢥­­лҐ ¤ ­­лҐ ў Є®¬ ­¤ е,
mov a,#55h mov b,#44
- Ё­¤ҐЄб­л© ¤®бвгЇ Є в Ў«Ёз­л¬ ¤ ­­л¬

SEG CODE
jmp start
mem db 'abcde' ;в Ў«Ёж  ASCII Є®¤®ў

start: mov dptr,#mem ;Ў §®ўл©  ¤аҐб mem § ЇЁблў Ґвбп ў  ¤аҐб­л©
ॣЁбва dptr
movc a,@a+dptr ;¬­Ґ¬®Є®¤ @a+dptr ®Ў®§­ з Ґв бЇ®б®Ў
;д®а¬Ёа®ў ­Ёп  ¤аҐб  б Ё­¤ҐЄб®¬ ў  ЄЄг¬г«пв®аҐ
;Ё Ў §®© ў dptr CODE(dptr+a)->a
mov a,#tab-tek-1 ;ᬥ饭ЁҐ Ў ©в  'A' ¬ ббЁў  tab ®в­®бЁвҐ«м­®
;Їа®Ја ¬¬­®Ј® бзҐвзЁЄ  PC
tek: movc a,@a+pc ;з⥭ЁҐ Ў ©в  б ®в­®бЁвҐ«м­®©  ¤аҐб жЁҐ© -
;Ў §  ў Їа®Ја ¬¬­®¬ бзҐвзЁЄҐ CODE(PC+a)->a
jmp cont
tab db 'ABCDEF'
cont: ........


5. ‚­гв७­пп Ї ¬пвм ¤ ­­ле.

‚­гв७­п Ї ¬пвм б®бв®Ёв Ё§ ­ҐбЄ®«мЄЁе ᥣ¬Ґ­в®ў, Є®в®алҐ
а §«Ёз овбп  ¤аҐб жЁҐ©.

a) ‚­гв७­пп Ї ¬пвм ¤ ­­ле SEG DATA(0-07fh)
- б Їаאַ©  ¤аҐб жЁҐ©

SEG DATA
; Ў ©вл 0-07 Ї® 㬮«з ­Ёо १ҐаўЁаговбп Ї®¤ r0-r7
mem ds 5 ;®Ў« бвм Ї ¬пвЁ б ¬ҐвЄ®© mem а §¬Ґа®¬ 5 Ў ©в
dat ds 0ah

seg code
mov mem+2*2,dat+2 ;ЇҐаҐб« вм 3Ё© Ў ©в Ё§ в Ў«Ёжл
;dat ў 5го п祩Єг mem,

Ў) ‚­гв७­пп Ї ¬пвм ¤ ­­ле б Є®бўҐ­­®©  ¤аҐб жЁҐ© SEG IDATA
Ђ¤аҐб а §¬Ґй Ґвбп «ЁЎ® ў ॣ­Ёбвॠr0 Ё«Ё ў r1 Ё ®Ў®§­ з Ґвбп
ў ¬­Ґ¬®Є®¤Ґ @r0 Ё«Ё @r1, Є®¬ЇЁ«пв®а ЇаҐ¤гЇаҐ¦¤ Ґв (warning)
Ґб«Ё ў н⮬ ᥣ¬Ґ­вҐ ЁбЇ®«м§гҐвбп ЇаאַҐ ®Ўа йҐ­ЁҐ Є ¤ ­­л¬.

SEG IDATA
imem ds 5 ;ўл¤Ґ«Ґ­ЁҐ Ї ¬пвЁ 5 Ў ©в

seg code
mov r0,#imem+2
mov a,@r0
mov a,imem (warning)

ў) ‘⥪ ®ЇаҐ¤Ґ«пҐвбп Є Є ®Ў« бвм ў­гв७­Ґ© Ї ¬пвЁ ¤ ­­ле
б Є®бўҐ­­®©  ўв®Ё­¤ҐЄб­®©  ¤аҐб жЁҐ© Ї® гЄ § вҐ«о б⥪  SP.
‘⥪ ЁбЇ®«м§гҐвбп Ї® 㬮«з ­Ёо ¤«п б®еа ­Ґ­Ёп  ¤аҐб  ў®§ўа в 
ЇаЁ ®Ўа йҐ­ЁЁ Є Ї®¤Їа®Ја ¬¬ ¬ Ё ў ЇаҐалў ­Ёпе.
Џ®«®¦Ґ­ЁҐ ўҐаиЁ­л Ё§¬Ґ­пҐвбп § Јаг§Є®©  ¤аҐб  ў гЄ § вҐ«м
б⥪  SP (mov sp,#30h), Ї® 㬮«з ­Ёо SP=07.

seg DATA
stack ds 10h ;б⥪ а §¬Ґа®¬ 10h Ў ©в

seg code
mov sp,#stack-1 ;гбв ­®ўЁвм Ў §г б⥪ 
push acc ;§ Јаг§Є  Ў ©в  Ё§ ACC ў б⥪
; a->@(+SP) c ЇаҐЁ­ЄаҐ¬Ґ­в®¬ SP
pop 00 ;з⥭ЁҐ Ў ©в  ў r0 Ё§ б⥪ 
; @(SP-)->r0 c Ї®б⤥ЄаҐ¬Ґ­в®¬ SP


6. CҐЈ¬Ґ­в ЎЁв®ў SEG BIT

a) „®бвгЇ Є ЎЁвг Ї®  ¤аҐбг 00-7F

SEG BIT
bita ds 10h ;Ї®«Ґ ЎЁв 00-10h
reg ds 8 ;ॣЁбва 8 ЎЁв

seg code
x1 bit bita+2 ;®ЇаҐ¤Ґ«Ґ­ЁҐ Ўг«ҐўбЄ®© ЇҐаҐ¬Ґ­­®©
x2 bit reg
mov c,x1
mov bita+2,c

Ў) ‘ҐЈ¬Ґ­в ЎЁв®ў б®ў¬Ґй Ґвбп б ЎЁв ¬Ё ў п祩Є е 20H-2fh
seg DATA,
„®бвгЇ Ї® ®в­®бЁвҐ«м­л¬  ¤аҐб ¬ - ­®¬Ґаг ЎЁв  ў ॣЁбваҐ.

seg code
mem equ 20h
x1 bit mem.0
x2 bit 21h.1
mov c,mem.5
mov x1,c

ЃЁвл SFR ॣЁбва®ў ¤®бвгЇ­л Ї® Ё¬Ґ­ ¬ T0,T1,C,.. Ё«Ё
Ї® ®в­®бЁвҐ«м­л¬  ¤аҐб ¬ P1.0, ...,ACC.7.
SFR ॣЁбвал MCS51 б Ї®ЎЁв®ўл¬ ¤®бвгЇ®¬ - ACC,B,TCON,P1,SCON,
P2,P3,PSW.


7. ‚­Ґи­пп Ї ¬пвм ¤ ­­ле ᥣ¬Ґ­в XDATA,

 ) 16-а §ап¤­л©  ¤аҐб д®а¬ЁагҐвбп ў бЇҐжЁ «м­®¬
 ¤аҐб­®¬ ॣЁбвॠdptr

SEG XDATA
mem ds 10h

SEG CODE
mov dptr,#mem ; ¤аҐб ў  ¤аҐб­®¬ ॣЁбваҐ
movx a,@dptr
mov dptr,#mem+5
mov a,#33h
movx @dptr,a

Ў) Ђ¤аҐб а §¤Ґ«пҐвбп ­  ¤ўҐ з бвЁ
-  ¤аҐб бва ­Ёжл д®а¬ЁагҐвбп ў ॣЁбвॠP2,
- ᬥ饭ЁҐ ў бва ­ЁжҐ д®а¬ЁагҐвбп ў r0

SEG XDATA
mem ds 10h

SEG CODE
mov dptr,#mem ; ¤аҐб ў  ¤аҐб­®¬ ॣЁбваҐ
mov p2,dph ;бв аиЁ© Ў ©в - бва ­Ёж 
mov r0,dpl ;¬« ¤иЁ© Ў ©в - ᬥ饭ЁҐ ў бва ­ЁжҐ
movx a,@dptr
inc dpl
movx @dptr,a

1.2. ’ЁЇл ¬ иЁ­­ле ¤ ­­ле.

Њ иЁ­­лҐ вЁЇл ¤ ­­ле ¬ЁЄа®нў¬ е а ЄвҐаЁ§говбп:

1) ¬­®¦Ґбвў®¬ §­ зҐ­Ё©, Є®в®алҐ ®ЇаҐ¤Ґ«повбп д®а¬ в ¬Ё ¤ ­­ле.
”®а¬ в ¤ ­­ле ўЄ«оз Ґв бЇ®б®Ў ¤ў®Ёз­®Ј® Є®¤Ёа®ў ­Ёп, а §ап¤­®бвм
Ё бвагЄвгаг ¤ў®Ёз­®Ј® Є®¤ ,
2) ¤®ЇгбвЁ¬л¬Ё ®ЇҐа жЁп¬Ё пў«повбп в®«мЄ® ¬ иЁ­­лҐ ®ЇҐа жЁЁ, ЇаҐ¤бв ў-
«Ґ­­лҐ бЁб⥬®© Є®¬ ­¤ ЊЉЉ,
3) ¤®бвгЇ®¬ Є ¤ ­­л¬, § ўЁбпйЁ¬ ®в вЁЇ  Ї ¬пвЁ ¬ЁЄа®Є®­ва®««Ґа ,

Љ вЁЇ ¬ ¤ ­­ле ®в­®бпвбп:
- жҐ«лҐ ¤ў®Ёз­лҐ зЁб« ,
- ЎҐ§§­ Є®ўлҐ жҐ«лҐ ¤ў®Ёз­лҐ,
- ¤ў®Ёз­лҐ Є®¤л,
- ¤ў®Ёз­®-¤ҐбпвЁз­лҐ 楫лҐ,
- Ўг«ҐўбЄЁ© вЁЇ.

1. „ў®Ёз­®Ґ 楫®Ґ б® §­ Є®¬ ў д®а¬ вҐ Ў ©в , а §¬Ґй Ґ¬лҐ
ў Ї ¬пвЁ XDATA, CODE, DATA,IDATA.

mem db 1,-2,25H,33 ;в Ў«Ёж  ¤ҐбпвЁз­ле 1,-2,33,
;иҐбв­ ¤ж вҐаЁз­ле 25H
;Ї®б«Ґ Є®¬ЇЁ«пжЁЁ - ¤ў®Ёз­лҐ 8-а §ап¤­лҐ
;зЁб« 
vect db 10110001b ; ¤ў®Ёз­®Ґ зЁб«®
mem dw 5533h ;Є®­бв ­в  а §¬Ґа®¬ б«®ў® 16 ЎЁв

ЂаЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ б ¤ў®Ёз­л¬Ё зЁб« ¬:

add a,#55 ;б«®¦Ґ­ЁҐ  ЄЄг¬г«пв®а  ( ) б Є®­бв ­в®© 55
addc a,#55 ;б«®¦Ґ­ЁҐ б ЇҐаҐ­®б®¬ ‘ Ё Є®­бв ­в®©
subb a,#33 ;ўлзЁв ­ЁҐ Є®­бв ­вл б § Ґ¬®¬ ‘ ,
‚  аЁд¬ҐвЁзҐбЄЁе ®ЇҐа жЁпе гзЁвлў Ґвбп §­ Є ЇаЁ д®а¬Ёа®ў ­ЁЁ
ЇаЁ§­ Є  ЇҐаҐЇ®«­Ґ­Ёп OV.

2. –Ґ«®Ґ ЎҐ§ §­ Є  ў д®а¬ вҐ Ў ©в 

ЂаЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ б ¤ў®Ёз­л¬Ё зЁб« ¬Ё ЎҐ§ §­ Є 

add a,#55
addc a,#55 ;б«®¦Ґ­ЁҐ б ЇҐаҐ­®б®¬ ‘
subb a,#33 ;ўлзЁв ­ЁҐ Є®­бв ­вл б § Ґ¬®¬ ‘ ,
”®а¬Ёаговбп ЇаЁ§­ ЄЁ
‘ - ЇҐаҐ­®б Ё«Ё § Ґ¬,
P - ЇаЁ§­ Є зҐв­®бвЁ Є®¤  १г«мв в .
Ќ“‹њ १г«мв в  ў  ЄЄг¬г«пв®аҐ Є®­ва®«ЁагҐвбп ­ҐЇ®б।б⢥­­®
Є®¬ ­¤ ¬Ё ўҐвў«Ґ­Ёп.
rlб a ;б¤ўЁЈ  ЄЄг¬г«пв®а (a) ў«Ґў® б ЇаЁ§­ Є®¬ ‘ жЁЄ«ЁзҐбЄЁ©,
нЄўЁў «Ґ­в­  г¬­®¦Ґ­Ёо ­  2 ¤ў®Ёз­®Ј® зЁб« 
rrc a ;б¤ўЁЈ  ЄЄг¬г«пв®а (a) ўЇа ў® б ЇаЁ§­ Є®¬ ‘ жЁЄ«ЁзҐбЄЁ©
нЄўЁў «Ґ­в­  ¤Ґ«Ґ­Ёо ­  2 ¤ў®Ёз­®Ј® зЁб« 
mul ab ;a*b->ba Їа®Ё§ўҐ¤Ґ­ЁҐ Ў ©в®ў Ё§ ॣЁбва®ў (a) Ё (b)
;б®еа ­Ёвм ў ॣЁбва е (ba), c=0, ov=1,Ґб«Ё b<>0,
div ab ;a/b->a,b a - з бв­®Ґ, b - ®бв в®Є
c=0, ov=1, Ґб«Ё ¤Ґ«ЁвҐ«м b=0;

3. „ў®Ёз­л© Є®¤ ў д®а¬ вҐ Ў ©в 

Џ®а §ап¤­лҐ «®ЈЁзҐбЄЁҐ ®ЇҐа жЁЁ б ¤ў®Ёз­л¬ Є®¤®¬
anl a,#44h ;«®ЈЁзҐбЄ®Ґ € c HEX-Є®­бв ­в®©,
orl a,#25 ;«®ЈЁзҐбЄ®Ґ €‹€ б ¤ҐбпвЁз­®© Є®­бв ­в®©,
xrl  ,#'s' ;ЁбЄ«оз о饥 €‹€ c ASCII-Є®¤®¬,
cpl a ; Ё­ўҐавЁа®ў ­ЁҐ

rl a ;б¤ўЁЈ жЁЄ«ЁзҐбЄЁ© Є®¤  ў«Ґў® ў  ЄЄг¬г«пв®аҐ,
rr a ;б¤ўЁЈ жЁЄ«ЁзҐЄЁ© Є®¤  ўЇа ў® ў  ЄЄг¬г«пв®аҐ.

4. „ў®Ёз­®-¤ҐбпвЁз­®Ґ 楫®Ґ ЎҐ§ §­ Є  ў д®а¬ вҐ Ў ©в 

Ћб­®ў­®Ґ ЇаЁ¬Ґ­Ґ­ЁҐ - ЇаҐ®Ўа §®ў ­ЁҐ Ё§ ¤ҐбпвЁз­®© бЁбвҐ¬л ў
¤ў®Ёз­го ЇаЁ ўў®¤Ґ, Ё§ ¤ў®Ёз­®© ў ¤ҐбпвЁз­го ЇаЁ ўлў®¤Ґ.
‚ ЇаҐ®Ўа §®ў ­Ёпе ЁбЇ®«м§говбп  аЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ б«®¦Ґ­Ёп
¤ў®Ёз­®-¤ҐбпвЁз­ле Є®¤®ў, ў Є®в®але ЇаЁ¬Ґ­пҐвбп ¤ў®Ёз­®Ґ б«®¦Ґ­ЁҐ
б Є®а४樥© - Є®¬ ­¤  da a.

5. Ѓг«ҐўбЄЁ© вЁЇ - ЎЁв,
ЎЁвл ®ЎкҐ¤Ё­повбп ў ¤ў®Ёз­лҐ Є®¤л, Ї®«п Ё ॣЁбвал.
Љ®¬ЇЁ«пв®а ўл¤Ґ«пҐв ᥣ¬Ґ­в SEG BIT ў RAM(20-3Fh) б  ¤аҐб ¬Ё
00-07fh,  ¤аҐб  ЎЁв®ў 80h-ffh § аҐ§ҐаўЁа®ў ­л ў SFR ॣЁбва е.
— бвм ЎЁв®ў ¤®бвгЇ­л Ї® Ё¬Ґ­ ¬ ў  бᥬЎ«ҐаҐ Ё«Ё Їаאַ©  ¤аҐб жЁҐ©
(ЎЁвл Ї®ав®ў ¤®бвгЇ­л Ї®  ¤аҐб ¬ P1.5, P3.7, ...,
ЎЁвл бЇҐжЁ «м­ле ¤ЁбЄаҐв­ле бЁЈ­ «®ў Ї® Ё¬Ґ­ ¬ - T0,T1,INT0,INT1,..

ЋЇҐа жЁЁ б ЎЁв ¬Ё:

mov c,x1 ;§ ЇЁб вм ў ЎЁв ‘
anl c,acc.5 ;«®ЈЁзҐбЄ®Ґ € ЎЁв  ‘ б 5 ЎЁв®¬  ЄЄг¬г«пв®а  acc.5
orl c,/acc.0 ;«®ЈЁзҐбЄ®Ґ €‹€ ЎЁв  ‘ б Ё­ўҐабЁҐ© ЎЁв  acc.0
setb c ;гбв ­®ўЁвм ЎЁв ‘
clr c ;®зЁбвЁвм ЎЁв


1.3. ‘ Ё б в Ґ ¬   Є ® ¬   ­ ¤ MCS51

---------------------------------------------
ЇҐаҐ¤ з  ¤ ­­ле ᮤҐа¦ ­ЁҐ
---------------------------------------------
mov a,{ri,@rj,#d,ad} {..}->a
mov {ri,@rj},a a-> {..}
mov {ri,@rj},ad ad -> {..}
mov ad,{ri,@rj,#d,ad,a} {..} -> ad
mov {ri,@rj},#d #d -> {..}
mov dptr,#d16
movc a,@a+dptr code(dptr+a)->a
movc a,@a+pc code(pc+a)->a
movx a,{@rj,@dptr} xdata{..}->a
movx {@rj,@dptr},a a->xdata{..}
push ad ad->б⥪(+sp)
pop ad б⥪(sp-)->ad
xch a,{ri,@rj,ad} a<->{..}
xchd a,@rj
swap a a[0.3]<->a[4.7]
--------------------------------------------------
ЂpЁд¬ҐвЁЄ  Ё «®ЈЁЄ  ЇаЁ§­ ЄЁ ᮤҐа¦ ­ЁҐ
---------------------------------------------------
add a,{ri,@rj,#d,ad} ,c,ov {..}+a->a
addc a,{ ...........} ,c,ov {..}+a+C->a
subb a,{............} ,c,ov a-{..}-C->a
inc {ri,@rj,ad,dptr,a} {..}+1
dec {ri,@rj,ad,a} {..}-1
rlc a ,c rolc(a)=a*2
rrc a ,c rorc(a)=a/2
da a ¤ҐбпвЁз­ п Є®а४жЁп
mul ab ,c=0,ov a*b->b,a
div ab ,c=0,ov a/b->a-з бв­®Ґ
b-®бв в®Є

anl a,{ri,@rj,#d,ad} a & {..}->a
anl ad,{#d,a} ad & {..)->ad
orl a,{ri,@rj,#d,ad} a v {..}->a
orl ad,{#d,a} ad v {..}->ad
xrl a,{ri,@rj,#d,ad} a + {..}->a
xrl ad,{#d,a}
clr a 0->a
cpl a ­Ґ(a)
rl a rol(a)
rr a ror(a)

---------------------------------
Є®¬ ­¤л Ўг«ҐўбЄ®Ј® Їа®жҐбб®а 
---------------------------------
mov bit,c c->bit
mov c,bit bit->c
clr {c,bit} 0->{..}
anl c,{bit,/bit} c & {..}->c
orl c,{....} c v {..}->c
cpl c ­Ґ(c)
setb {c,bit} 1->{..}

----------------------------------------------------
“Їp ў«Ґ­ЁҐ Їp®Јp ¬¬®© Ё ўҐвў«Ґ­Ёп
----------------------------------------------------
jmp ¬ҐвЄ  (ajmp,sjmp,ljmp) ¬ҐвЄ  -> pc
jmp @a+dptr dptr+a -> pc
call ¬ҐвЄ  (acall,lcall) pc+3->б⥪, ¬ҐвЄ  -> pc
ret б⥪(sp-)->pc
reti б⥪(sp-)->pc, а §аҐиҐ­ЁҐ ЇаҐалў ­Ёп
jc/jnc ¬ҐвЄ  Ґб«Ё C , в® ¬ҐвЄ  ->pc
jz/jnz ¬ҐвЄ  Ґб«Ё a=0 , в® ¬ҐвЄ  ->pc
jb bit,¬ҐвЄ  Ґб«Ё bit=1 , в® ¬ҐвЄ  ->pc
jnb bit,¬ҐвЄ  Ґб«Ё bit=0 , в® ¬ҐвЄ  ->pc
djnz {ri,ad},¬ҐвЄ  Ґб«Ё {..}-1 <> 0 , в® ¬ҐвЄ  -> pc
cjne {ri,@rj},#d,¬ҐвЄ  Ґб«Ё {..} <> #d , в® ¬ҐвЄ  -> pc

----------------------------------------------------------------------
ЋЎ®§­ зҐ­Ёп ў ¬­Ґ¬®Є®¤ е:

#d - Є®­бв ­в 
ri= {r0,r1,...,r7} Ё¬п ॣЁбва  ў  ЄвЁў­®¬ Ў ­ЄҐ
@rj - Є®бўҐ­­ п  ¤аҐб жЁп ў IDATA, rj={r0,r1}
ad - Їаאַ©  ¤аҐб DATA(00-7f),  ¤аҐб/Ё¬п SFR(80-FF)
bit - 00-7f  ¤pҐб ЎЁв  ў Ї®«Ґ ЎЁв®ў б®ў¬ҐйҐ­® б DATA(20-2F),
а §ап¤ бЇҐжЁ «м­®Ј® ॣЁбва  acc.5, psw.0, ... ,
Ё¬п ЎЁв  smod,sm0,.... бЇҐжЁ «м­®Ј® ॣЁбва 
/bit - Ё­ўҐpбЁп ЎЁв 
ЇаЁ§­ Є P д®а¬ЁагҐвбп ў Є ¦¤®¬ жЁЄ«Ґ ЇаЁ ўлЇ®«­Ґ­ЁЁ «оЎ®© Є®¬ ­¤л
-----------------------------------------------------------------------

1.4. Њ Єа®Є®¬ ­¤л

ЂбᥬЎ«Ґа - ва ¤ЁжЁ®­­®Ґ бЁ¬ў®«ЁзҐбЄ®Ґ (ўЁавг «м­®Ґ) ®ЇЁб ­ЁҐ
аҐбгаб®ў ¬ЁЄа®Є®¬ЇмовҐа  .
„«п Ї®ўл襭Ёп га®ў­п Їа®Ја ¬¬Ёа®ў ­Ёп,
а биЁаҐ­Ёп ¤Ё Ї §®­  §­ зҐ­Ё©( в®з­®бвЁ ўлзЁб«Ґ­Ё©) ЁбЇ®«м§говбп
¬ Єа®Є®¬ ­¤л, Є®в®алҐ Ї®§ў®«пов, ­ ЇаЁ¬Ґа, бЄ®­бвагЁа®ў вм 16-
а §ап¤­го ўЁавг «м­го ќ‚Њ.
‘ЇЁб®Є ¬ Єа®Є®¬ ­¤ 16-а §ап¤­®© ўЁавг «м­®© ¬ иЁ­л

; mov_w y,x x->y
; mov_d y,x dx->dy
; mov_c y,#x § ЇЁбм Є®­бв ­вл ў б«®ў® #x->wy зҐаҐ§ dptr
; swap_w x x(15-8)<->x(7-0) ®Ў¬Ґ­ Ў ©в ¬Ё ў б«®ўҐ
; tabb z,x,y ўлЎа вм Ў ©в Ё§ в Ў«Ёжл z=x(y), z,y-Ў ©в
; tabw z,x,y ўлЎа вм б«®ў® Ё§ в Ў«Ёжл z=x(y), z-б«®ў®,y-Ў ©в
; movb_rx x,y x-ॣЁбва, y-Є®бўҐ­­л©  ¤аҐб XRAM x<-@(y+)
; movb_xr x,y x-ॣЁбва, y-Є®бўҐ­­л©  ¤аҐб XRAM @(y+)<-x
; movw_rx x,y x-ॣЁбва, y-Є®бўҐ­л©  ¤аҐб XRAM x<-@(y+)
; movw_xr x,y x-ॣЁбва, y-Є®бўҐ­­л©  ¤аҐб XRAM @(y+)<-x
----------------------------------------------
; add_w y,x б«®¦Ґ­ЁҐ б«®ў wx+wy->wy
; add_c y,#x б«®¦Ґ­ЁҐ б Є®­бв ­в®© wy+#c->wy
; addc_w y,x б«®¦Ґ­ЁҐ б ЇҐаҐ­®б®¬ wx+wy+c->wy
; clr_w x 0->wx
; clr_d x 0->dx
; inc_w x x+1
; dec_w x x-1
; subb_w y,x ўлзЁв ­ЁҐ б«®ў wy-wx->wy
; subbc_w y,x wy-wx-c->wy
; subo_w y,x ўлзЁв ­ЁҐ б«®ў ®Ўа в­®Ґ wy-wx->wx
; rlc_w x б¤ўЁЈ б«®ў  ў«Ґў® б ЇаЁ§­ Є®¬ ‘ ­  1 ЎЁв rlc(wx)
; rlc_w x,y б¤ўЁЈ б«®ў  ў«Ґў® б ЇаЁ§­ Є®¬ ‘ ­  y ЎЁв rlc(wx)y
; rlc_d x б¤ўЁЈ ¤ў®©­®Ј® б«®ў  ў«Ґў® б ЇаЁ§­ Є®¬ ‘ rlc(dx)y
; rrc_w x б¤ўЁЈ б«®ў  ўЇа ў® б ЇаЁ§­ Є®¬ ‘ ­  1 ЎЁв rrc(wx)
; rrc_w x,y б¤ўЁЈ б«®ў  ўЇа ў® б ЇаЁ§­ Є®¬ ‘ ­  y ЎЁв rrc(wx)y
; rrc_d x б¤ўЁЈ ¤ў®©­®Ј® б«®ў  ўЇа ў® б ЇаЁ§­ Є®¬ ‘ rrc(dx)y
; mul_w y,x г¬­®¦Ґ­ЁҐ wy*wx->d1, ЁбЇ®«м§говбп а Ў®зЁҐ ॣЁбвал w0-w3
; div_w y,x ¤Ґ«Ґ­ЁҐ d1/wx->wy, ЁбЇ®«м§говбп а Ў®зЁҐ ॣЁбвал w0-w3
; tr2d x ЇҐаҐў®¤ wx Ё§ 2®© ў 10го, а Ў®зЁҐ w0,w1,r5
; trd2 x ЇҐаҐў®¤ wx Ё§ 10®© ў 2го, а Ў®зЁҐ w0,w1,r5
; time x Їа®Ја ¬¬­ п § ¤Ґа¦Є  x/10 ¬б ¬ ЄбЁ¬г¬ x=255
; sqrt x Є®аҐ­м Єў ¤а в­л© Ё§ d2, १г«мв в ў x,а Ў®зЁҐ w0-w3,w4

ЏаЁ¬Ґа ®д®а¬«Ґ­Ёп ¬ Єа®Є®¬ ­¤л

mov_w %macro y,x
mov y,x
mov y+1,x+1
%endm

inc_w %macro x
mov a,x+1
add a,#1
mov x+1,a
mov a,x
addc a,#0
mov x,a
%endm

ќвЁ ¬ Єа®Є®¬ ­¤л ¬®¦­® ЁбЇ®«м§®ў вм § ¤ ў п д ЄвЁзҐбЄЁҐ
Ї а ¬Ґвал -  ¤аҐб  Ё Ё¬Ґ­  ॣЁбва®ў

seg data
w0 ds 2
w1 ds 2

seg code
mov_w w0,w1
inc_w w0
inc_w w1
end

1.5. “Їа ў«Ґ­ЁҐ ЇаҐалў ­Ёп¬Ё.

ЏаЁ­жЁЇ а Ў®вл бЁбвҐ¬л ЇаҐалў ­Ёп:
1) ‚ Є®­жҐ ⥪г饩 Є®¬ ­¤л ®Їа иЁў овбп ॣЁбвал § Їа®б®ў Ё
ўлЎЁа Ґвбп ­ ЁЎ®«ҐҐ ЇаЁ®аЁвҐв­л© Ё§ § аҐЈҐбваЁа®ў ­ле бЁЈ­ «®ў
а §аҐиҐ­­ле ¬ бЄ®©.
2) ”®а¬ЁагҐвбп  ¤аҐб-ўҐЄв®а в Ў«Ёжл ўҐЄв®а®ў ЇаҐалў ­Ё© ў  ¤аҐб е
0000-0020h ᥣ¬Ґ­в  CODE
3) ЏҐаҐ¤ Ґвбп гЇа ў«Ґ­ЁҐ Ї®  ¤аҐбг-ўҐЄв®аг б б®еа ­Ґ­ЁҐ¬ ⥪г饣®
Їа®Ја ¬¬­®Ј® бзҐвзЁЄ  ў б⥪Ґ, ЇаЁ н⮬ § ЇаҐй овбп ўбҐ ЇаҐалў ­Ёп
¤® § ўҐа襭Ёп Їа®Ја ¬¬л ®Ўа Ў®вЄЁ ⥪г饣® ЇаҐалў ­Ёп.
4) Џа®Ја ¬¬  ®Ўа Ў®вЄЁ § ўҐаи Ґвбп Є®¬ ­¤®© RETI,
Є®в®а п ў®§ўа й Ґв гЇа ў«Ґ­ЁҐ ЇаҐаў ­­®© Їа®Ја ¬¬Ґ Ё Єа®¬Ґ
в®Ј® а §аҐи Ґв ЇаҐалў ­Ёп Ё бЎа блў Ґв ­ҐЄ®в®алҐ ЎЁвл § Їа®б®ў
ЇаҐалў ­Ё© - ®бв «м­лҐ ЎЁвл бЎа блў овбп Їа®Ја ¬¬­®.

ЃЁвл гЇа ў«Ґ­Ёп ЇаҐалў ­Ёп¬Ё ¤®бвгЇ­л Ї® Ё¬Ґ­ ¬ Ё ЇаЁўҐ¤Ґ­л
ў в Ў«ЁжҐ ў¬ҐбвҐ б ўҐЄв®а ¬Ё Ё ®Ў®§­ зҐ­ЁҐ¬ ЇаЁ®аЁвҐв :

Ъ ДДДДДДДДДВДДДДДДДВДДДДДД ДДВДДДДДДДВДДДДДДДДВДДДДДДДДї
і ў­Ґи­ЁҐ івЁЇ і ЎЁв і ЎЁв і ЇаЁ®аЁ-і  ¤аҐб- і
і ўе®¤л ібЁЈ­ « і ॣЁбва і ¬ бЄЁ і вҐв Ai і ўҐЄв®а і
і 1 і 2 і 3 бЎа 4 і 6 і 7 і
ГД ДДДДДДДДЕДДДДДДДЕДДДДДДДД ЕДДДДДДДЕДДДДДДДДЕДДДДДДДДґ
p3.2 /int0 іit0 =\ і ie0 Ї і ex0 і 4 і 03 і
p3.3 /int1 іit1 =\ і ie1 Ї і ex1 і 2 і 13h і
і і і tf0 Ї і et0 і 3 і 0bh і
і і і tf1 Ї і et1 і 1 і 1bh і
ДБД ДДДДДДДДБДДДДДДДБДДДДДДДД БДДДДДДДБДДДДДДДДБДДДДДДДДЩ

1- ЎЁвл, ®Ў®§­ з ойЁҐ ў­Ґи­ЁҐ ¤ЁбЄаҐв­лҐ ўе®¤л/ўл室л.
2 - ЎЁвл, ўлЎЁа ойЁҐ вЁЇ бЁЈ­ «  (= L га®ўҐ­м, \ h/l да®­в,
/ l/h да®­в)
3 - ॣЁбваЁагҐ¬лҐ ЎЁвл бЁЈ­ «®ў ЇаҐалў ­Ё©, гЄ §лў Ґвбп
бЇ®б®Ў бЎа®б  a- ЇЇ а в­л© ЇаЁ ўе®¤Ґ ў ЇаҐалў ­ЁҐ,
Ї-Їа®Ја ¬¬­л© ЇаЁ § ўҐа襭ЁЁ ®Ўа Ў®вЄЁ
ЇаҐалў ­Ёп ЇҐаҐ¤ Є®¬ ­¤®© reti
4 - ЎЁвл а §аҐиҐ­Ёп ॣЁбва жЁЁ
6 - ­®¬Ґа  Ўб®«ов­®Ј® ЇаЁ®аЁвҐв  Ai=0,1, ..., 11 ў Ї®ап¤ЄҐ
㢥«ЁзҐ­Ёп ЇаЁ®аЁвҐв  ЇаЁ Ї®б«Ґ¤®ў вҐ«м­®¬ ®Їа®бҐ ­ 
®¤­®¬ га®ў­Ґ ЇаЁ®аЁвҐв®ў
7 -  ¤аҐб-ўҐЄв®а в Ў«Ёжл ЇаҐалў ­Ё© ў ᥣ¬Ґ­вҐ CODE.


Џа®Ја ¬¬Ёа®ў ­ЁҐ ЇаҐалў ­Ё©:

1) ”®а¬ЁагҐвбп ўҐЄв®а ЇаҐалў ­Ёп
org 03h
ljmp mem ;ЇҐаҐе®¤ Є Ї®¤Їа®Ја ¬¬Ґ ®Ўа Ў®вЄЁ
ЇаҐалў ­Ёп
2) Џ®¤Їа®Ја ¬¬  ®Ўа Ў®вЄЁ ЇаҐалў ­Ёп ®д®а¬«пҐвбп Є Є Їа®жҐ¤га 
c «®Є «м­л¬Ё ¬ҐвЄ ¬Ё L?1, L?2,...

mem proc
.....
l1? .....
reti
mem endproc

3) ‚ ®б­®ў­®© Їа®Ја ¬¬Ґ гбв ­ ў«Ёў Ґвбп ¬ бЄ  ЇаҐалў ­Ёп,
бЎа блў Ґвбп ЎЁв § Їа®б  ЇаҐалў ­Ёп, гбв ­ ў«Ёў Ґвбп
ЎЁв а §аҐиҐ­Ёп ЇаҐалў ­Ёп EA.


2. Ља®бб-б।бвў  Їа®Ја ¬¬Ёа®ў ­Ёп.

2.1. ЂбᥬЎ«Ґа ava51.

ЋЇЁб ­ЁҐ  бᥬЎ«Ґа  Ё Їа ўЁ«  ®д®а¬«Ґ­Ёп Їа®Ја ¬¬
ЇаЁўҐ¤Ґ­л ў д ©«Ґ ASM51.txt
ЂббᥬЎ«Ґа Є®¬ЇЁ«ЁагҐв ­Ґпў­® в®«мЄ® бЁ¬ў®«л, ®в­®бпйЁҐбп
Є Ў §®ў®©  аеЁвҐЄвгॠMCS51/52
‘।бвў   бᥬЎ«Ёа®ў ­Ёп ¤«п PC ўЄ«оз ов  бᥬЎ«Ґа ava51.exe
Ё «Ё­ЄҐа avl51.exe
‚맮ў  бᥬЎ«Ґа 
asm.bat name
‚ д ©«Ґ asm.bat ®д®а¬«Ґ­л Є®¬ ­¤л ўл§®ў   бᥬЎ«Ґа  Ё «Ё­ЄҐа 
‚ᥠЇа®Ја ¬¬л ўл§лў овбп б Ї г§®©, § ўҐа襭ЁҐ ЁбЇ®«­Ґ­Ёп
Є®¬ ­¤­®Ј® д ©«  .bat Є« ўЁи ¬Ё ctr+c.

ava51 %1.asm ap ;ўл§®ў  бᥬЎ«Ґа ,д®а¬Ёа®ў ­ЁҐ бЁ¬ў®«м­ле в Ў«Ёж
pause ;®бв ­®ў - ўл室 Ї® ctr+c

avl51 %1=%1 -sy ;ўл§®ў «Ё­ЄҐа ,д®а¬Ёа®ў ­ЁҐ бЁ¬ў®«м­ле ббл«®Є
pause
avsim51 bla%1 ;§ Јаг§Є  Їа®Ја ¬¬л ў бЁ¬г«пв®а б бЁ¬ў®«м­л¬Ё
в Ў«Ёж ¬Ё

„ЁаҐЄвЁўл(®ЇжЁЁ) Є®¬ЇЁ«пв®а  Ё «Ё­ЄҐа  ®ЇЁб ­л ў д ©«Ґ asm.hlp,
ЏаЁ Є®¬ЇЁ«пжЁЁ д ©«  name.asm д®а¬Ёаговбп Їа®¬Ґ¦гв®з­лҐ
⥪бв®ўлҐ д ©«л
name.prn - «ЁбвЁ­Ј Є®¬ЇЁ«пжЁЁ
name.obj - ®ЎкҐЄв­л© ЎЁ­ а­л© д ©«,
name.hex - д ©« ¤«п § Јаг§ЄЁ.
Ља®¬Ґ в®Ј® д®а¬Ёаговбп д ©«л, ­Ґ®Ўе®¤Ё¬лҐ ЇаЁ бЁ¬ў®«ЁзҐбЄ®©
®в« ¤ЄҐ ў бЁ¬г«пв®аҐ.

‚ д ©«Ґ .prn ¬®¦­® ­ ©вЁ ®иЁЎЄЁ Ё а бЇаҐ¤Ґ«Ґ­ЁҐ Ї ¬пвЁ,
­Ґ®Ўе®¤Ё¬лҐ ЇаЁ ®в« ¤ЄҐ, ў д ©«Ґ .smb -  ¤аҐб  ЇҐаҐ¬Ґ­­ле Ё
¬ҐвЄЁ.

2.2. ‘Ё¬г«пв®а.

Њ®¤Ґ«ЁагҐв Є®¬ ­¤л Їа®Ја ¬¬л,ॠбᥬЎ«ЁагҐв Ёе Ё ®в®Ўа ¦ Ґв
ў ᮮ⢥вбўго饬 ®Є­Ґ нЄа ­ , ®в®Ўа ¦ Ґв б®бв®п­ЁҐ ¬ иЁ­л ЇаЁ
ЁбЇ®«­Ґ­ЁЁ Є®¬ ­¤ (०Ё¬ ва ббЁа®ўЄЁ).

‚맮ў бЁ¬г«пв®а  avsim51.exe [bla<д ©«>]
- ўлў®¤Ёвбп ®Є­® Ё ¬Ґ­о, § Јаг¦ Ґвбп .hex д ©«.

CЁ¬г«пв®а Ї®¤¤Ґа¦Ёў Ґв в®«мЄ® Ў §®ўго  аеЁвҐЄвгаг - MCS51/52,
¤ЁаҐЄвЁўл бЁ¬г«пв®а  ЇаЁўҐ¤Ґ­л ў д ©«Ґ avsim51.hlp.

1) ESC ўлЎЁа Ґв ¬Ґ­о Ё«Ё гбв ­®ўЄг §­ зҐ­Ё© ­  нЄа ­Ґ.

ЊҐ­о ( бв५ЄЁ Ё«Ё «ЁвҐал ўлЎЁа ов Є®¬ ­¤л ¬Ґ­о )
ќЄа ­ (бв५Є ¬Ё ўлЎЁа Ґвбп Ў ©в ў ®Є­Ґ Ё Ё§¬Ґ­пҐвбп)

Ќ  нЄа ­Ґ :
- ®Є­® ॠбᥬЎ«Ёа®ў ­­®Ј® Є®¬ ­¤­®Ј® д ©« , Є®¬ ­¤л
ўлЎЁа овбп Ї® §­ зҐ­Ёо Їа®Ја ¬¬­®Ј® бзҐвзЁЄ  PC,
Ё§¬Ґ­Ґ­ЁҐ «оЎ®Ј® §­ зҐ­Ёп ў ®Є­Ґ Ї® ¬ аЄҐаг, (+)-Ё­ЄаҐ¬Ґ­в,
(-) -¤ҐЄаҐ¬Ґ­в, ў ⮬ зЁб«Ґ Ё PC.

- ¤ў  ®Є­  ( 1,2 ) ¤«п ®в®Ўа ¦Ґ­Ёп «оЎле вЁЇ®ў Ї ¬пвЁ
-  ¤аҐб  ўлЎЁа овбп дг­ЄжЁҐ© DUMP,
¤«п ॣЁбва®ў ў­гв७­Ґ© Ї ¬пвЁ гЄ §лў овбп ЇаЁ
ўлЎ®аҐ бЁ¬ў®«ЁзҐбЄЁҐ Ё¬Ґ­ .

- ॣЁбвал бЇҐжЁ «м­ле дг­ЄжЁ©
(acc,b,psw,p0,p1,p2,p3,th0/tl0,th1/tl1)

- ЎЁвл гЇа ў«Ґ­Ёп в ©¬Ґа ¬Ё, ¬ бЄЁ ЇаҐалў ­Ё©,
ЇаЁ§­ ЄЁ १г«мв в 

2) Ћ‘ЌЋ‚ЌЋ… ¬Ґ­о:
Dump Expression commandFile Help IO -> Їа®¤®«¦Ґ­ЁҐ
-> Memory Patch Quit Reset Set setUp View eXecute Load
-> ў®§ўа в ў Dump

DUMP :
Dump Area : 1,2
Memory Adress : 55h - ўлЎЁа Ґвбп  ¤аҐб ¤ ¬Ї 
c Їаאַ© Ё«Ё Є®бўҐ­­®©  ¤аҐб жЁҐ© ў® ў­гв७­Ґ© Ї ¬пвЁ
D:080h, ў Ї®бв®п­­®© Ї ¬пвЁ ‘:0000H, ў® ў­Ґи­Ґ© Ї ¬пвЁ ¤ ­­ле
X:0000H ў ®¤­®¬ Ё§ ®Є®­ 1,2


COMMANDFile : § Јаг§Є  Ё«Ё б®еа ­Ґ­ЁҐ д ©«  .hex д ©« ,
ЇаЁ б®еа ­Ґ­ЁЁ д ©« ®вЄалў Ґвбп.

LOAD : § Јаг§Є  д ©«®ў ¤ ­­ле (Data),
Їа®Ја ¬¬ (Program).

MEMORY : ®ЇҐа жЁЁ б ў­гв७­Ґ© Ї ¬пвмо ¤ ­­ле
¬Ґ­о: Clear Fill Move Search searchNext
§ Їа иЁў овбп Ї а ¬Ґвал - ­Ё¦­ЁҐ Ё ўҐае­ЁҐ
 ¤аҐб , ¤ ­­лҐ

PATCH : ўў®¤ Є®¬ ­¤ ў ¬­Ґ¬®­ЁЄҐ ЂбᥬЎ«Ґа 
¬Ґ­о: Patch code Open outputfile Close file
Patch - ўў®¤ ¬­Ґ¬®Є®¤  ў ‘ROM Ї® §­ зҐ­Ёо PC
add a,@r0
mov c,acc.5

SETUP : гбв ­®ўЄ  а §¬Ґа  ЎгдҐа  б®еа ­Ґ­Ёп Є®­ва®«м­ле
в®зҐЄ

VIEW : ®Ў§®а Ё­д®а¬ жЁЁ ® ­ бва®©ЄҐ бЁ¬г«пв®а 
¬Ґ­о: Bkpts Io-files Memory-mapp Opc-traps
Passpoints Symbols

EXECUTE : ЁбЇ®«­Ґ­ЁҐ Є®¬ ­¤ ў ¬­Ґ¬®­ЁЄҐ

EXPRESSION : -> Enter Expression: ( xx + yy )
Expression will be store at R0
( ўлЎЁа Ґвбп Ї® гЄ § вҐ«о ,гбв ­ ў«Ёў -
Ґвбп Ї® ESC )

SET : гбв ­®ўЁвм Ї а ¬Ґвал бЁ¬г«пв®а 
¬Ґ­о: Memory-map Passpoint opTions cYcles V-drive ->
breakpoint

Memory-map : а бЇаҐ¤Ґ«Ґ­ЁҐ Ї ¬пвЁ
random-Access read-Only( ЇаҐалў ­ЁҐ ЇаЁ § ЇЁбЁ )
§ Їа иЁў овбп ЇаҐ¤Ґ«л - ­Ё¦­Ё© Ё ўҐае­Ё© ,
Ї®бв®п­­ п Ї ¬пвм read_Only ‘:0000,
ў­Ґи­пп Ї ¬пвм ¤ ­­ле random_Access X:0000

Passpoint : A-r/w point B-R/W range C-write point D-Write run

Є®­ва®«м Ё ЇаҐалў ­Ёп Ї® § ЇЁбЁ ЇаЁ а §«Ёз­ле гб«®ўЁпе

opTions - бва ­Ёз­®Ґ а §¤Ґ«Ґ­ЁҐ Ї ¬пвЁ зҐаҐ§ Ї®ав P2

breakpoint : opcode
opcode - ®бв ­®ў Ї® Є®¤г ®ЇҐа жЁЁ, ­ ЇаЁ¬Ґа, RET



HELP : ‘вагЄвга  Є®¬ ­¤л  бᥬЎ«Ґа  б ¬ҐвЄ ¬Ё (Command),
гЇа ў«Ґ­ЁҐ ¤ЁбЇ«ҐҐ¬ (Display),
гЇа ў«Ґ­ЁҐ бЁ¬г«пжЁҐ© (Simulate),
®Ў§®а б।бвў Ї®¤¤Ґа¦ЄЁ (Avocet).

3) €бЇ®«­Ґ­ЁҐ Їа®Ја ¬¬ (ᮤҐа¦ ­ЁҐ Simulate ў HELP).

F1 - ЁбЇ®«­Ґ­ЁҐ ¤® в®зЄЁ ®бв ­®ў 
F10 - ЁбЇ®«­Ґ­ЁҐ Ї® и Ј ¬,
F2 - Ї®Є § вм Єгаб®а Ё ¤ўЁ¦Ґ­ЁҐ Єгаб®а  ў­Ё§ ЇаЁ
ўлЎ®аҐ в®зЄЁ ®бв ­®ў 
F4 - ¤ўЁ¦Ґ­ЁҐ Єгаб®а  ўўҐае ЇаЁ ўлЎ®аҐ в®зЄЁ ®бв ­®ў ,
F3 - дЁЄбЁа®ў вм в®зЄг ®бв ­®ў ,
F5 - гбв ­®ўЁвм бЄ®а®бвм ¬®¤Ґ«Ёа®ў ­Ёп
(¤ўҐ бЄ®а®бвЁ -high,low)
F6 - ®Ў­®ў«Ґ­ЁҐ нЄа ­  Ї®б«Ґ Є ¦¤®© в®зЄЁ
®бв ­®ў .
F8 - ўлЄ«о祭ЁҐ ва ббЁа®ўЄЁ ЇаЁ ЁбЇ®«­Ґ­ЁЁ
Ї®¤Їа®Ја ¬¬ ў Ї®и Ј®ў®¬ ०Ё¬Ґ

2. ЏаЁ¬Ґал Ё § ¤ ­Ёп Є « Ў®а в®а­л¬ а Ў®в ¬.

1) ЏҐаҐ¬­®¦Ёвм ¤ў  8-а §ап¤­ле зЁб«  Ї® д®а¬г«Ґ

S=A*B=б㬬Ёа®ў вм ¬­®¦Ё¬®Ґ B а §

A,B - 8а §ап¤­лҐ ЇҐаҐ¬Ґ­­лҐ ў DATA
S - 16а §ап¤­ п ЇҐаҐ¬Ґ­­ п ў DATA


- Їа®Ја ¬¬  ў  бᥬЎ«ҐаҐ AVA51,
ЏҐаҐ¬Ґ­­лҐ а §¬Ґй овбп ў® ў­гв७­Ґ© Ї ¬пвЁ ,
Ё¬Ґ­  ЇҐаҐ¬Ґ­­ле ­Ґ ¤®«¦­л б®ўЇ ¤ вм б § аҐ§ҐаўЁа®-
ў ­­л¬Ё (ў з бв­®бвЁ § Ј« ў­лҐ Ё Їа®ЇЁб­лҐ ­Ґ
а §«ЁзЁ¬л Ё A=a, B=b - § аҐ§ҐаўЁа®ў ­л)

seg data
S1 ds 2 ;Їа®Ё§ўҐ¤Ґ­ЁҐ
A1 ds 1 ;¬­®¦Ё¬®Ґ
B1 ds 1 ;¬­®¦ЁвҐ«м

seg code
clr a ;0->S
mov S1,a ;бЎа®б бв а襣® Ў ©в  Їа®Ё§ўҐ«¤Ґ­Ёп
mov S1+1,a ;бЎа®б ¬« ¤иҐЈ® Ў ©в  Їа®Ё§ўҐ¤Ґ­Ёп
m1: mov a,A1
add a,S1+1 ;S+A->S
mov S1+1,a ;¬« ¤иЁ© Ў ©в Їа®Ё§ўҐ¤Ґ­Ёп
mov a,S1
addc a,#0
mov S1,a ;бв аиЁ© Ў ©в Їа®Ё§ўҐ¤Ґ­Ёп
djnz B1,m1 ;жЁЄ« б Є®¬ЇҐ­б жЁҐ© ¬­®¦ЁвҐ«п
end

Ћд®а¬Ёвм дг­ЄжЁо Є Є бв ­¤ ав­го Їа®жҐ¤гаг б ЇҐаҐ¤ зҐ©
Ї а ¬Ґва®ў зҐаҐ§ б⥪. ‚ бв ­¤ ав­®© Їа®жҐ¤гаҐ
ўлЎЁа овбп а Ў®зЁҐ ॣЁбвал r0,...r7. ‚ Їа®жҐ¤гаҐ
«®Є «Ё§®ў ­л ¬ҐвЄЁ - L?1, L?2, ..
„«п ®Ў®§­ зҐ­Ёп д®а¬ «м­ле Ї а ¬Ґва®ў ЁбЇ®«м§®ў вм
¬ Єа®Є®¬ ­¤л c Ї а ¬Ґва ¬Ё.

seg data
S1 ds 2 ;Їа®Ё§ўҐ¤Ґ­ЁҐ
A1 ds 1 ;¬­®¦Ё¬®Ґ
B1 ds 1 ;¬­®¦ЁвҐ«м

mula %MACRO x,y,z ;¬ Єа®Є®¬ ­¤  x*y->z
push x ;§ Јаг§Є  д ЄвЁзҐбЄЁе Ї а ¬Ґва®ў
push y
call mult
pop z ;з⥭ЁҐ ўл室­ле ¤ ­­ле
pop z+1
%ENDM

SEG CODE
mula A1,B1,S1 ;ўл§®ў Ї®¤Їа®Ја ¬¬л A1*B1->S1
jmp $ ;¤Ё­ ¬ЁзҐбЄЁ© ®бв ­®ў

mult PROC ;Їа®жҐ¤га  г¬­®¦Ґ­Ёп
pop 02 ;ўлЎ®а д ЄвЁзҐбЄЁе Ї а ¬Ґва®ў
pop 03
clr a
mov r0,a ;бЎа®б бв а襣® Ў ©в  Їа®Ё§ўҐ«¤Ґ­Ёп
mov r1,a ;бЎа®б ¬« ¤иҐЈ® Ў ©в  Їа®Ё§ўҐ¤Ґ­Ёп
L?1: mov a,r2
add a,r1 ;S+A->S
mov r1,a ;¬« ¤иЁ© Ў ©в Їа®Ё§ўҐ¤Ґ­Ёп
mov a,r0
addc a,#0
mov r0,a ;бв аиЁ© Ў ©в Їа®Ё§ўҐ¤Ґ­Ёп
djnz r3,L?1 ;жЁЄ« б Є®¬ЇҐ­б жЁҐ© ¬­®¦ЁвҐ«п
push 00 ;§ Јаг§Є  १г«мв в 
push 01
ret
mult ENDPROC
end

ђҐ «Ё§ жЁп дг­ЄжЁЁ г¬­®¦Ґ­Ёп б ЁбЇ®«м§®ў ­ЁҐ¬ Є®¬ ­¤л mul ab :

mula %macro x,y,z
mov a,x
mov b,y
mul ab
mov z,b
mov z+1,b
%endm
-------------------
‡ ¤ ­ЁҐ 1:
Ћд®а¬Ёвм б«Ґ¤гойЁҐ дг­ЄжЁЁ Є Є Ї®¤Їа®Ја ¬¬л ў ¬ Єа®Є®¬ ­¤ е:

ЇҐаҐў®¤ 楫®Ј® 2/10 ¤Ґ«Ґ­ЁҐ¬ ­  10 -
- ¤ў®Ёз­®Ґ 1 Ў ©в,
ЇҐаҐў®¤ 楫®Ј® 10/2 ЇҐаҐбзҐв®¬ -
- ¬ ЄбЁ¬ «м­®Ґ ¤ҐбпвЁз­®Ґ 255,
楫®Ґ ¤Ґ«Ґ­ЁҐ 16-а §ап¤­®Ј® ®ЇҐа ­¤  ­  8-а §ап¤­л©,
ЇҐаҐў®¤ ¤а®Ў­®Ј® б ¬ бив ЎЁа®ў ­ЁҐ¬ - (x*100)*256/100
- ¤ў®Ёз­®Ґ 1 Ў ©в,
ўлзЁб«Ёвм ўла ¦Ґ­ЁҐ A*B/C б ЁбЇ®«м§®ў ­ЁҐ¬ нвЁе дг­ЄжЁ© -
-  аЈг¬Ґ­вл ўў®¤пвбп б Ї®ав®ў P1,P2,P3 Ё १г«мв в
ўлўҐбвЁ ў Ї®ав P0.

2) ‚лзЁб«Ґ­ЁҐ дг­ЄжЁЁ

sinx =x-x^3/3! +x^5/5!
 аЈг¬Ґ­в x<=pi/2 ў а ¤Ё ­ е,
Њ бив ЎЁа®ў ­ЁҐ - ЇаҐ®Ўа §®ў ­ЁҐ  аЈг¬Ґ­в  ў 楫®Ґ:
x'=x*mx, x-¤а®Ў­®Ґ, mx-¬ бив Ў
‚лЎа вм б奬㠢лзЁб«Ґ­Ёп Ё ¬ бив ЎЁа®ў ­ЁҐ mx Ё§ ў аЁ ­в®ў
2^10, 100, 200.

A) Џа®жҐ¤га  ўлзЁб«Ґ­Ёп з«Ґ­  ап¤  б гзҐв®¬ ¬ бив ЎЁа®ў ­Ёп

x^n/n! -> ((x'*x'/mx/n)*x'/mx/(n-1))*....)*x'/mx

row(n,x)
{ s=x; for (i=n; i; i--) s=s*x/mx/i; }

Џа®Ја ¬¬  ўлзЁб«Ґ­Ёп

sinx()
{ ss=x+row(3,x)+row(5,x); } [1]


Ѓ) ЏаҐ®Ўа §®ў ­ЁҐ д®а¬г«л Ї® б奬Ґ ѓ®а­Ґа  б гзҐв®¬
¬ бив ЎЁа®ў ­Ёп

x-x^2/6(1-x^2/20)-> x-x*x/mx/mx/6(mx-x*x/20/mx)

x2()
{ s=x*x/mx; }

sinx()
{ ss= x-(mx-x2()/20)*x2()/mx/6); } [2]

‚) Љ®¬ЇЁ«пжЁп Їа®Ја ¬¬л ўлзЁб«Ґ­Ёп ў  бᥬЎ«ҐаҐ
Џ®¤Ј®в ў«Ёў Ґвбп ЎЁЎ«Ё®вҐЄ  дг­ЄжЁ©:
mula x,y,z x*y->z
dela x,y,z x/#y->z
suba x,y,z #x-y->z
subx x,y,z x-y->z
trd2 x ЇҐаҐў®¤ 10/2
tr2d x ЇҐаҐў®¤ 2/10


ЏбҐў¤®Є®¤ Џа®Ја ¬¬  ў ¬ Єа® бᥬЎ«ҐаҐ

tr2d x
x2()=x*x/mx mula x,x,x2

[..]=mx-x2()/20 dela x2,20,ss
suba mx,ss,ss

[..]=[..]*x2()/mx/6 mula x2,ss,ss
dela ss,mx,ss
dela ss,6,ss

ss=x-[..] subx x,ss,ss
trd2 ss
end

----------------------
‡ ¤ ­ЁҐ 2:
- ¤«п § ¤ ­­®© дг­ЄжЁЁ а §а Ў®в вм ўлЎа вм б奬㠢лзЁб«Ґ­Ёп
(Ї® б⥯Ґ­п¬ Ё«Ё бЄ®Ў®з­ п д®а¬ ) Ё ¬ бив Ў mx=100,128,200 Ё«Ё
256 . ђ §а Ў®в вм Їа®Ја ¬¬г ¤«п Ї®вЁ¬ «м­®Ј® ў аЁ ­в , ЁбЇ®«м§гп
¬ Єа®Є®¬ ­¤л Ё Ї®¤Їа®Ја ¬¬л,

- ўў®¤  аЈг¬Ґ­в  ў 2/10 Є®¤Ґ Ё§ Ї®ав  P1,P3,
§ ЇгбЄ Їа®Ја ¬¬л Ї®б«Ґ гбв ­®ўЄЁ  аЈг¬Ґ­в  Ї® ЇаҐалў ­Ёо int0,
Ї®б«Ґ § ўҐа襭Ёп ўлзЁб«Ґ­Ё© - १г«мв в ўлўҐбвЁ ў Ї®ав P1,P3.


3) €§¬ҐаҐ­ЁҐ Ё Є®­ва®«м ўаҐ¬Ґ­­ле Ё­вҐаў «®ў.

€§¬ҐаҐ­ЁҐ Ё Є®­ва®«м ўаҐ¬Ґ­­ле Ё­вҐаў «®ў
®ЎҐбЇҐзЁў овбп 2 в ©¬Ґа ¬Ё ¬ЁЄа®нў¬: ’Њ0,’Њ1.

ђҐЈЁбва гЇа ў«Ґ­Ёп в ©¬Ґа ¬Ё

TMOD=gate1.c/t1.mod1.gate0.c/t0.mod0,

mod0=01 гбв ­ ў«Ёў Ґв ०Ё¬ 16-ЎЁв®ў®Ј® бзҐвзЁЄ  ¤«п
в ©¬Ґа  ’Њ0

c/t0=0 ўлЎЁа Ґв ¤«п § Ї®«­Ґ­Ёп ўаҐ¬Ґ­­®Ј® Ё­вҐаў « 
ў­гв७­оо з бв®вг f0/12=11.059/12 ¬Єб,

gate0=1 а §аҐи Ґв § Ї®«­Ґ­ЁҐ ’Њ0 з бв®в®© Ї® ў­Ґи­Ґ¬г
бЁЈ­ «г int0,
=0 ў­Ґи­Ё© бЁЈ­ « int0 ­Ґ гзЁвлў Ґвбп.

ЃЁвл а §аҐиҐ­Ёп бзҐв  TR0 Ё TR1, ᮮ⢥вᢥ­­®, ¤«п ’Њ0 Ё ’Њ1
ЃЁвл ЇҐаҐЇ®«­Ґ­Ёп TF0/TF1 пў«повбп в Є¦Ґ бЁЈ­ « ¬Ё § Їа®б 
ЇаҐалў ­Ёп.

-----------------------------
‡ ¤ ­ЁҐ 3:

€§¬ҐаЁвм ўаҐ¬п ўлЇ®«­Ґ­Ёп Їа®Ја ¬¬л в ©¬Ґа®¬ TM0:

€­ЁжЁ «Ё§ жЁп в ©¬Ґа  ’Њ0, ­ з «® бзҐв , § ЇгбЄ Їа®Ја ¬¬л,
§ ўҐа襭ЁҐ бзҐв  ўаҐ¬Ґ­Ё ЇаЁ § ўҐа襭ЁЁ Їа®Ја ¬¬л,
а ббзЁв вм ॠ«м­го § ¤Ґа¦Єг, ба ў­Ёвм ў аЁ ­вл Їа®Ја ¬¬л.


4) Џа®Ја ¬¬  ®Ўа Ў®вЄЁ ⥪бв®ўле ¤ ­­ле

€бЄ«озЁвм «Ёи­Ё© бЁ¬ў®« ў бва®ЄҐ 'prog-ramma',
⥪бв-Є®­бв ­в  Ё§ Їа®Ја ¬¬­®© Ї ¬пвЁ SEG CODE ЇҐаҐЈаг¦ Ґвбп ЇаЁ
। ЄвЁа®ў ­ЁЁ ў® ў­гв७­оо Ї ¬пвм SEG DATA


char p[]="prog-ramma"; /* Ё­ЁжЁ «Ё§Ёа®ў ­­лҐ ¤ ­­лҐ ў CODE */

for (i=0; i<10; i++)
{ if (p[i]!='-') q[i]=p[i]; };

Џа®Ја ¬¬  ­   бᥬЎ«ҐаҐ

seg data
q ds 11
i ds 1

seg code
jmp start
p db 'prog-ramma'

start: mov r0,#11
mov dptr,#p
mov r1,q+10
m1: mov a,r0
movc a,@a+dptr
xrl a,#'-'
jz m2
movc a,@a+dptr
mov @r1,a
m2: dec r1
djnz r0,m1
end
--------------------
‡ ¤ ­ЁҐ 4 - а §а Ў®в вм Їа®Ја ¬¬г । ЄвЁа®ў ­Ёп ⥪бв 
ў® ў­гв७­Ґ© Ё ў­Ґи­Ґ© Ї ¬пвЁ ¤ ­­ле.

5) ‚лзЁб«Ґ­ЁҐ §­ зҐ­Ёп ЇаҐ¤ЁЄ в , ЁбЇ®«м§гп Є®¤Ёа®ў ­ЁҐ
True = (§­ зҐ­ЁҐ <> 0),
False = 0.

if ((a!=b)&(c<d)) then s=1;
else s=0;

seg data
aa ds 1
bb ds 1
cc ds 1
dd ds 1
ss ds 1

seg code
mov a,aa ;(a!=b)
xrl a,bb
mov b,a
mov a,cc ;(c<d)
clr c
subb a,dd
clr a
jnc fin
mov a,#0ffh
fin: anl a,b ;( )&( )
mov s,#0
jz fina
mov s,#1
fina: nop
--------------------
‡ ¤ ­ЁҐ 5.
ђ §а Ў®в вм Їа®Ја ¬¬г ўлзЁб«Ґ­Ёп § ¤ ­­®Ј® ЇаҐ¤ЁЄ в .


6) Џа®Ја ¬¬  гЇа ў«Ґ­Ёп ¤ЁбЄаҐв­®© бЁб⥬®©,  «Ј®аЁв¬
§ ¤ ­ Є®­Ґз­л¬  ўв®¬ в®¬ Њга .


ЪДДДДї i0 ЪДДДДДї i1
і ЪДДБДДї i1,i2 ЪДДБДДї і
АД> 0/y0іДДДДДДДДДДДДДДД>1/y1 <ДДЩ
АДД^ДД<ДДДДДДДДДї ЪДДВДД<ДДї
і i1 і і і і
i2і і і іi0 і i0,i2
і ЪДДДДДДДДДДЕДДДДДЩ і і
і і i2 і і і
і і і і і
ЪДБДvДї АДДДДДДЪДvДДДї і
і2/y2 іДДДДДДДДДДДДДДД>3/y3 ГДЩ
АДДДДДЩ i0,i1 АДДДДДЩ


0,1,2,3 - б®бв®п­Ёп  ўв®¬ в ,
y0,y1,y2,y3 - гЇа ў«пойЁҐ бЁЈ­ «л,
I={i0,i1,i2} - ўе®¤­лҐ бЁЈ­ «л,

“а ў­Ґ­Ёп ЇҐаҐе®¤ /ўл室 

q0'/y0 = q0&i0+q3&i1
q1'/y1 = q1&i1+(q0+q3)&(i1+i2)
q2'/y2 = q1&i2
q3'/y3 = q1&i0+q2&(i0+i1)

‘вагЄвга  Їа®Ја ¬¬л
- ўў®¤ §­ зҐ­Ё© I c Ї®ав  P1(0-2)
- ўлзЁб«Ґ­ЁҐ б«Ґ¤гойЁе б®бв®п­Ё© Q'=(Q,I)
- Ё§¬Ґ­Ґ­ЁҐ б®бв®п­Ёп Ё гЇа ў«Ґ­Ёп Q/y=Q'
- ўлў®¤ гЇа ў«Ґ­Ёп ў Ї®ав P1(3-6)


seg bit

i0 ds 1
i1 ds 1
i2 ds 1
q0 ds 1 ;y0
q1 ds 1 ;y1
q2 ds 1 ;y2
q3 ds 1 ;y3
q0_ ds 1
q1_ ds 1
q2_ ds 1
q3_ ds 1

seg code
start:
mov p1,#0ffh
mov c,p1.0 mov i0,c
mov c,p1.1 mov i1,c
mov c,p1.2 mov i2,c
/* ўлзЁб«Ґ­ЁҐ §­ зҐ­Ёп б«Ґ¤го饣® б®бв®п­Ёп */
mov c,i0 orl c,q3 mov q0_,c
mov c,q0 anl c,i1 mov acc.0
mov c,q1 anl c,i1 orl c,acc.0
mov q1_,c
mov c,q1 anl c,i1 anl c,i2 mov q2_,c
mov c,q1 anl c,i1 anl c,i2
orl c,q2 mov q3_,c
/* ўлў®¤ ў Ї®ав P1 Ё гбв ­®ўЄ  ⥪г饣® б®бв®п­Ёп */
mov c,q0_ mov q0,c mov P1.3,c
mov c,q1_ mov q1,c mov P1.4,c
mov c,q2_ mov q2,c mov P1.5,c
mov c,q3_ mov q3,c mov P1.6,c
jmp start
end
----------------------
‡ ¤ ­ЁҐ 6 - ¤«п § ¤ ­­®Ј®  ўв®¬ в  а §а Ў®в вм Їа®Ја ¬¬г,
ўў®¤ Ё ўлзЁб«Ґ­Ёп б Ї®ав  P1 Ї® ЇаҐалў ­Ёо
int1.


6. ЋвзҐв.

ђҐ§г«мв вл ўлЇ®«­Ґ­Ёп « Ў®а в®а­ле а Ў®в ®д®а¬«повбп ў ўЁ¤Ґ
®ЎйҐЈ® ®взҐв :
- Єа вЄ п е а ЄвҐаЁбвЁЄ   аеЁвҐЄвгал Є®­ва®««Ґа 
(бвагЄвга  Ї ¬пвЁ, н«Ґ¬Ґ­вл ўў®¤ /ўлў®¤ , б।бвў 
ЇаҐ®Ўа §®ў ­Ёп Ё­д®а¬ жЁЁ, бвагЄвга  Ё ЇаЁ­жЁЇ а Ў®вл
бЁбвҐ¬л ЇаҐалў ­Ёп),
- ¤«п Є ¦¤®Ј® § ¤ ­Ёп ЇаЁўҐбвЁ Ї®бв ­®ўЄг § ¤ зЁ,
Ў«®Є-беҐ¬г  «Ј®аЁв¬  Ё«Ё ЇбҐў¤®Є®¤, Їа®Ја ¬¬г б Є®¬¬Ґ­в аЁп¬Ё,
а бЇаҐ¤Ґ«Ґ­ЁҐ Ї ¬пвЁ,


‹€’…ђЂ’“ђЂ.

1. ‘в иЁ­ ‚.‚. Ё ¤а. Џа®ҐЄвЁа®ў ­ЁҐ жЁда®ўле гбва®©бвў ­ 
®¤­®ЄаЁбв «м­ле ¬ЁЄа®Є®­ва®««Ґа е, Њ:ќ­ҐаЈ® в®¬Ё§¤ в,1990
2. ‹ЁЇ®ўЁжЄЁ© ѓ.Џ. Ё ¤а. Ћ¤­®ЄаЁбв «м­лҐ Њќ‚Њ. ‘Ґ¬Ґ©бвў® ЊЉ51.
’Ґе­ЁзҐбЄ®Ґ ®ЇЁб ­ЁҐ Ё агЄ®ў®¤бмў® Ї® ЇаЁ¬Ґ­Ґ­Ёо.M.1992
3. ЌҐа®¤  ‚.џ. Ё ¤а. Ћ¤­®ЄаЁбв «м­лҐ Њќ‚Њ MCS-51. ЂаеЁвҐЄвгал. M.1995
4. ѓаҐЎ­Ґў ‘Ґ¬Ґ©бвў® MCS-51. 1994
Соседние файлы в папке методическое пособие к лабораторным работам