Скачиваний:
16
Добавлен:
09.05.2014
Размер:
31.15 Кб
Скачать
ЂбᥬЎ«Ґа i51(51FX,51gb,52,SAB515/535)

ЂбᥬЎ«Ґа AVOCET (ava51.exe Ё «Ё­ЄҐа avl51.exe)
‡ ЇгбЄ:
ava51 <д ©«  бᥬЎ«Ґа > -> д ©«.obj, д ©«.prn
avl51 <д ©« ўе®¤­®©> = <д ©« ўл室­®©> -> д ©«.hex, д ©«.map


ЋЈ« ў«Ґ­ЁҐ

1. ‘Ё­в ЄбЁб ЋЇҐа в®а®ў-Є®¬ ­¤

2. ‘ Ё б в Ґ ¬   Є ® ¬   ­ ¤

‘ЇҐжЁ «м­лҐ (SFR) ॣЁбвал sab515 Ё ЎЁвл.

3. ЋЇҐа ­¤л

3.1. ЋЎ®§­ зҐ­Ёп ®ЇҐа ­¤®ў ў Є®¬ ­¤ е
3.2. Љ®­бв ­вл

4. „ЁаҐЄвЁўл  бᥬЎ«Ґа 

4.1. EQU - бЁ¬ў®«ЁзҐбЄ®Ґ ®ЇаҐ¤Ґ«Ґ­ЁҐ §­ зҐ­Ё©
4.2. SET - ўаҐ¬Ґ­­®Ґ бўп§лў ­ЁҐ §­ зҐ­Ёп б Ё¬Ґ­Ґ¬,
4.3. BIT бўп§лў Ґв  ¤аҐб ЎЁв  б Ё¬Ґ­Ґ¬ Ўг«ҐўбЄ®© ЇҐаҐ¬Ґ­­®©
4.4. TEQ

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

5.1. USING
5.2. SEG, DEFSEG
5.3. ЏҐаҐ¬Ґ­­лҐ
5.4. ђ §¬ҐйҐ­ЁҐ Їа®Ја ¬¬л ў ᥣ¬Ґ­вҐ CODE

6. END [¬ҐвЄ ]

7. Њ®¤г«м­®Ґ Їа®Ја ¬¬Ёа®ў ­ЁҐ.

7.1. Ћд®а¬«Ґ­ЁҐ Їа®жҐ¤га.
7.2. PUBLIC, EXTERN, GLOBAL
7.3. ЏаЁ¬Ґал ¬®¤г«м­®Ј® Їа®Ја ¬¬Ёа®ў ­Ёп.

8. Њ Єа®®ЇаҐ¤Ґ«Ґ­Ёп

9. „ЁаҐЄвЁў  INCLUDE <д ©«>

10. ђ Ў®в  б ¬ Єа®б ¬Ё Ё ЎЁЎ«Ё®вҐЄ ¬Ё

10.1. ЂбᥬЎ«Ґа - п§лЄ ®ЇЁб ­Ёп ўЁавг «м­®© ¬ иЁ­л
10.2. ‘Ёб⥬  Є®¬ ­¤, ЇаҐ¤бв ў«Ґ­­ п ЊЂЉђЋЉЋЊЂЌ„ЂЊ€ б ЇҐаҐ¬Ґ­­л¬Ё
Ї а ¬Ґва ¬Ё:
10.3. Љ®¬ ­¤л ЇаҐ¤бв ў«Ґ­л ЏЋ„ЏђЋѓђЂЊЊЂЊ€ б дЁЄбЁа®ў ­­л¬Ё Ї а ¬Ґва ¬Ё:
10.4. ЏаЁ¬Ґа а §а Ў®вЄЁ Їа®Ја ¬¬л ўлзЁб«Ґ­Ё©

11. ЃЁЎ«Ё®вҐЄЁ.


1. ‘Ё­в ЄбЁб ЋЇҐа в®а®ў-Є®¬ ­¤


ЋЇҐа в®ал: [¬ҐвЄ [:]] [¬­Ґ¬®Є®¤ Ё­бвагЄжЁЁ [®ЇҐа ­¤л...] [;Є®¬¬Ґ­в аЁЁ]

€¤Ґ­вЁдЁЄ в®ал Ё бЁ¬ў®«л б®бв®пв Ё§ ЎгЄў, жЁда, Ё«Ё $, ¤®«¦­л
­ зЁ­ вмбп б ЎгЄўл. ‘Ё¬ў®« Ї®¤зҐаЄЁў ­Ёп ЇаЁа ў­Ёў Ґвбп Є ЎгЄўҐ.
‘Ё¬ў®«ЁзҐбЄЁҐ Ё¬Ґ­  ¤®«¦­л ­ зЁ­ вмбп б  «д ўЁв­®Ј® бЁ¬ў®«  Ё ¬®Јгв
ўЄ«оз вм ў бҐЎп «оЎго Є®¬ЎЁ­ жЁо ЎгЄў, жЁда, §­ Є®ў ў®Їа®б  Ё Ї®¤зҐа-
ЄЁў ­Ё© ("_"). „«п ®зҐ­м ¤«Ё­­ле Ё¬Ґ­ ५Ґў ­в­л¬Ё пў«повбп в®«мЄ®
ЇҐаўлҐ 31 §­ Є . „®ЇгбЄ Ґвбп Їа®Ё§ў®«м­®Ґ ᬥ襭ЁҐ бва®з­ле Ё
Їа®ЇЁб­ле ЎгЄў, ўбҐ ®­Ё ў®бЇаЁ­Ё¬ овбп Є Є Їа®ЇЁб­лҐ.


2. ‘ Ё б в Ґ ¬   Є ® ¬   ­ ¤

------------------------------- -----------------------------
ЂpЁд¬ҐвЁЄ  Ё «®ЈЁЄ  ЏҐpҐбл«ЄЁ
------------------------------- ----------------------------
add a,{ri,@rj,#d,ad} mov a,{ri,@rj,#d,ad}
addc a,{ ...........} mov {ri,@rj},a
subb a,{............} mov {ri,@rj},ad
inc {ri,@rj,ad,dptr,a} mov ad,{ri,@rj,#d,ad,a}
dec {ri,@rj,ad,a} mov {ri,@rj},#d
mul ab mov dptr,#d16
div ab movc a,@a+dptr
movc a,@a+pc
anl a,{ri,@rj,#d,ad} movx a,{@rj,@dptr}
anl ad,{#d,a} movx {@rj,@dptr},a
push ad
orl a,{ri,@rj,#d,ad} pop ad
orl ad,{#d,a} xch a,{ri,@rj,ad}
xrl a,{ri,@rj,#d,ad} xchd a,@rj
xrl ad,{#d,a} swap a
clr a ---------------------------------------
cpl a Є®¬ ­¤л Ўг«ҐўбЄ®Ј® Їа®жҐбб®а 
rl a
rlc a mov bit,c mov c,bit
rr a clr {c,bit} anl c,{bit,/bit}
rrc a cpl c orl c,{........}
da a setb {c,bit}

---------------------------------------------------------------------
“Їp ў«Ґ­ЁҐ Їp®Јp ¬¬®© Ё ўҐвў«Ґ­Ёп

ljmp a16 jb bit,rel djnz {ri,ad},rel
ajmp a11 jnb bit,rel cjne {ri,@rj},#d,rel
sjmp rel jbc bit,rel lcall a16
jmp @a+dptr
jz rel acall a11
ret
jnz rel
jc rel reti
jnc rel nop

‘ЇҐжЁ «м­лҐ (SFR) ॣЁбвал sab515 Ё ЎЁвл.

7 6 5 4 3 2 1 0

acc . . . . . . . . *
b . . . . . . . . *
psw cy ac f0 rs1 rs0 ov f1 p *
sp . . . . . . . .

dph . . . . . . . .
dpl . . . . . . . .

p0 . . . . . . . . *
p1 в2 clkout в2ex int2' int6/cc3 int5/cc2 int4/cc1 int3'/cc0 *
p2 . . . . . . . . *
p3 rd' wr' в1 в0 int1' int0' txd rxd *
p4 . . . . . . . . *
p5 . . . . . . . . *
p6 . . . . . . . .

tmod gate1 c/t1 m1 m0 gate0 c/t0
m1 m0 89 0
tcon tf1 tr1 tf0 tr0 te1 it1 ie0 it0 *
th0 . . . . . . . .
tl0 . . . . . . . .
th1 . . . . . . . .
tl1 . . . . . . . .

pcon smod pds idls . gf1 gf0 pde idle

scon sm0 sm1 sm2 ren tb8 rb8 ti ri *
sbuf . . . . . . . .

ien0 eal wdt et2 es et1 ex1 et0 ex0 *
ien1 exen2 swdt ex6 ex5 ex4 ex3 ex2 eadc *
ip0 . wdts tf2+exf2 ri+ti tf1/ ie1/ tf0/ ie0/
ip1 . . iex6 iex5 iex4 iex3 iex2 iadc
ircon exf2 tf2 iex6 iex5 iex4 iex3 iex2 iadc *

cce cocah3 cocal3 cocah2 cocal2 cocah1 cocal1 cocah0 cocal0
ccl1 . . . . . . . .
cch1 . . . . . . . .
ccl2 . . . . . . . .
cch2 . . . . . . . .
ccl3 . . . . . . . .
cch3 . . . . . . . .

tl2 . . . . . . . .
th2 . . . . . . . .
t2con t2ps i3fr i2fr t2r1 t2r0 t2cm t2i1 t2i0 *

adcon bd clk . bsy adm mx2 mx1 mx0 *
addat . . . . . . . .
dapr . . . . . . . .

--------------------------------------------------------------------------------------
t2con:
t2ps=1¬Єб/2¬Єб i3fr=§ еў в \,/ t2r1-0=2-tf2/3-t2ex t2i1-0=-,tm2,1+,в2&1+
t2cm=mode comp 0/1

exf2=t2ex'& exen2

cocahi-cocali = -,§ еў в_int3',ба ў­Ґ­ЁҐ,§ еў в_Ї®_§ ЇЁбЁ
* - ЎЁвл ¤®бвгЇ­л Ї® Ё¬Ґ­ ¬ Ё  ¤аҐб ¬



3. ЋЇҐа ­¤л

1/ ЋЎ®§­ зҐ­Ёп ®ЇҐа ­¤®ў ў Є®¬ ­¤ е:

#xx - Є®­бв ­в 
ri= {r0,r1,...,r7},
@rj - Є®бўҐ­­ п  ¤аҐб жЁп Є ў­гв७­Ґ© RAM, rj={r0,r1}
ad - (00-ff)  ¤pҐб pҐЈЁбвp  Ё«Ё ў­гвpҐ­­ҐЈ® Ћ‡“(00-7f),
Ё¬п бЇҐжЁ «м­®Ј® pҐЈЁбвp  sfr (д ©« sfr515.txt)
bit - 00-7f  ¤pҐб ЎЁв  ў Ї®«Ґ ЎЁв®ў,
а §ап¤ бЇҐжЁ «м­®Ј® ॣЁбва  acc.5, psw.0, ... ,
Ё¬п ЎЁв  smod,sm0,.... бЇҐжЁ «м­®Ј® ॣЁбва 
/bit - Ё­ўҐpбЁп ЎЁв 
rel - ®в­®бЁвҐ«м­л©  ¤аҐб <¬ҐвЄ >
a16 - 16-а §ап¤­л©  ¤аҐб <¬ҐвЄ >
a11 - 11-а §ап¤­л©  ¤аҐб <¬ҐвЄ >

„«п ¤®бвгЇ  Є Ё¬Ґ­ ¬ ॣЁбва®ў Ё ЎЁв®ў ў SAB515 Ё«Ё i51GB
ў Їа®Ја ¬¬Ґ ўў®¤Ёвбп в Ў«Ёж  Ё¬Ґ­ sab515_.ini

2/ Љ®­бв ­вл :
Є®­бв ­вл ¬®Јгв Ўлвм ¤ўге вЁЇ®ў
- зЁб«Ґ­­лҐ, ў Є®¬ ­¤ е ®Ў®§­ з овбп Є Є ­ҐЇ®б।б⢥­­лҐ
®ЇҐа ­¤л #,
-  ¤аҐб­лҐ, ў Є®¬ ­¤ е ­Ґ Ё¬Ґов бЇҐжЁ «м­ле ®Ў®§­ зҐ­Ё©

Є®­бв ­вл ¬®Јгв Ўлвм ЇаҐ¤бв ў«Ґ­л пў­® - Є®­ЄаҐв­л¬Ё §­ зҐ­Ёп¬Ё Ё
­Ґпў­® - ўла ¦Ґ­Ёп¬Ё, ўлзЁб«пҐ¬лҐ Є®¬ЇЁ«пв®а®¬

ЏаЁ пў­®¬ § ¤ ­ЁЁ гЄ §лў Ґвбп бЁб⥬  бзЁб«Ґ­Ёп(бЇҐжЁдЁЄ жЁп):

Ќ з «м­л© Љ®­Ґз­л©
®б­®ў ­ЁҐ ‘ЇҐжЁдЁЄ в®а ‘ЇҐжЁдЁЄ в®а
---- --------- ---------
2 % B
8 @ O or Q
16 $ H

ЏаЁ¬Ґа:
mov a,#254
mov a,#%11111110
mov a,#@200
mov a,#$FE
mov a,#11111110b
mov a,#376Q
mov a,#0FEh
mov dptr,#0a5fh

‘Ё¬ў®«л ¬®Јгв Ўлвм § Є«озҐ­л ў ®¤Ё­®з­лҐ Є ўлзЄЁ ' Ё«Ё ¤ў®©­лҐ
Є ўлзЄЁ ".

mov a,#'C'


Љ®­бв ­в­лҐ ўла ¦Ґ­Ёп - ЇаҐ¤бв ў«Ґ­ЁҐ зЁб«Ґ­­ле
Є®­бв ­в Ё  ¤аҐб®ў. ‚ла ¦Ґ­Ёп ўлзЁб«повбп Є®¬ЇЁ«пв®а®¬ ў 16-а §ап¤­ле
д®а¬ в е, б®еа ­пҐвбп ¬« ¤иЁ© Ў ©в ¤«п Ў ©в®ўле д®а¬ в®ў ¤ ­­ле
ў Є®¬ ­¤ е.

ЋЇҐа в®а €бЇ®«м§®ў ­ЁҐ ђҐ§г«мв в
-------- ----- ------
+ x + y x + y
+ +x 0 + x
- x - y x - y
- -x 0 - x
* x * y г¬­®¦Ґ­ЁҐ x ­  y (ЎҐ§§­ Є®ў®Ґ)
/ x / y x / y (ЎҐ§§­ Є®ў®Ґ)
MOD x MOD y ®бв в®Є x/y (ЎҐ§§­ Є®ўл©)
SHL x SHL y x б¤ўЁ­гвл© ў«Ґў® ­  г а §а冷ў
SHR x SHR y x б¤ўЁ­гвл© ўЇа ў® ­  г а §а冷ў
HIGH HIGH x бв аиЁ© Ў ©в x
LOW LOW x ¬« ¤иЁ© Ў ©в x
. data.bit x гЄ § ­ЁҐ ­  ЎЁв bit
ў п祩ЄҐ Ї®  ¤аҐбг data
NOT NOT x ¤®Ї®«­Ґ­ЁҐ Є x
AND x AND y «®ЈЁзҐбЄ®Ґ € x Ё y
OR x OR y «®ЈЁзҐбЄ®Ґ €‹€ x Ё y
XOR x XOR y «®ЈЁзҐбЄ®Ґ ЁбЄ«оз о饥 €‹€ x Ё y

ЏаЁ®аЁвҐвл:

г­ а­л© +, г­ а­л© - ­ ЁўлбиЁ©
* / MOD SHR SHL
+ - .
NOT
AND
OR XOR ­ Ё­Ё§иЁ©

ЏаЁ¬Ґал: ўла ¦Ґ­Ёп ¤«п § ¤ ­Ёп Є®­бв ­в ў Є®¬ ­¤ е

mov a,#(55 - 3 )*2 + 6 ;mov a,#110
mov dptr,#( 77 / 5 + 1aah) - 5 ;mov dptr,#1c5h



4. „ЁаҐЄвЁўл  бᥬЎ«Ґа 

4.1. EQU - бЁ¬ў®«ЁзҐбЄ®Ґ ®ЇаҐ¤Ґ«Ґ­ЁҐ §­ зҐ­Ё©, бўп§лў Ґв
§­ зҐ­ЁҐ-Є®­бв ­вг б бЁ¬ў®«ЁзҐбЄЁ¬ ®Ў®§­ зҐ­ЁҐ¬,
в Єго Є®­бв ­вг ­Ґ«м§п ЇҐаҐ®ЇаҐ¤Ґ«пвм

Ё¬п EQU ўла ¦Ґ­ЁҐ


ЏаЁ¬Ґал:

VAR_0 equ 20H
VAR_1 equ 21H

MOV A,VAR_0 ;  ¤аҐб­ п Є®­бв ­в -п祩Є  ў­гв७­Ґ©
ADD A,VAR_1 ; Ї ¬пвЁ
MOV VAR_0,A

ЏаЁ¬Ґз ­ЁҐ: в®«мЄ® Є®¬ ­¤л ¤®ЇгбЄ ов ®вбвгЇ ®в ­ з «  бва®ЄЁ,
ЇаЁзҐ¬ ¤«п Є®¬ ­¤ в Є®© ®вбвгЇ ®Ўп§ вҐ«Ґ­; ­ Їа®вЁў, ¤«п ¬Ґв®Є
Ё Ё¬Ґ­, ®ЇаҐ¤Ґ«пҐ¬ле Ї®«м§®ў вҐ«Ґ¬, ®вбвгЇл Ќ… „ЋЏ“‘’€Њ›.
ЌҐб®Ў«о¤Ґ­ЁҐ нвЁе ¤®ў®«м­® бва ­­ле
гб«®ўЁ© Ўг¤Ґв ў®бЇаЁ­пв® ва ­б«пв®а®¬ Є Є ®иЁЎЄ .

‚лзЁб«пҐ¬лҐ Є®­бв ­вл:

rr equ ( 44 and 22 + 6 )

Љ®­бв ­в  - §­ зҐ­ЁҐ  ¤аҐб­®Ј® ўла ¦Ґ­Ёп

offs equ ( met1 + met2 - met3 ) Ј¤Ґ met1,met2,met3 - ¬ҐвЄЁ

mov dptr,#(met1-met2)



4.2. SET - ўаҐ¬Ґ­­®Ґ бўп§лў ­ЁҐ §­ зҐ­Ёп б Ё¬Ґ­Ґ¬,
ў ¤ «м­Ґ©иҐ¬ Ё¬п ¬®¦­® ЇҐаҐ®ЇаҐ¤Ґ«Ёвм,
Ё¬п ¬®¦­® а бб¬ ваЁў вм Є Є ЇҐаҐ¬Ґ­­го, §­ зҐ­ЁҐ Є®в®а®©
§ ўЁбЁв ®в нв Ї  Є®¬ЇЁ«пжЁЁ Ё ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў ­® ў
гб«®ў­®© Є®¬ЇЁ«пжЁЁ.

VAR_0 SET R0
VAR_1 SET R1
mem set 0a00h

SYMB_2 MOV A,VAR_0
ADD A,VAR_1
MOV VAR_0,A
mov dptr,#mem
.... ....
mem set 0c00h
mov dptr,#mem
.... .....

4.3. BIT бўп§лў Ґв  ¤аҐб ЎЁв  б Ё¬Ґ­Ґ¬ Ўг«ҐўбЄ®© ЇҐаҐ¬Ґ­­®©:

x1 bit p3.2
x2 bit 05
s bit acc.0

ЏаЁ¬Ґ­Ґ­ЁҐ ЇаЁ ўлзЁб«Ґ­ЁЁ §­ зҐ­Ёп Ўг«ҐўбЄ®© дг­ЄжЁЁ

S = x1&x2 V /x1&/x2

clr c
mov c,x1
anl c,x2
mov x2,c
setb c
anl c,/x1
anl c,/x2
mov s,c



4.4. TEQ

бЁ¬ў®« TEQ §­ зҐ­ЁҐ
бЁ¬ў®«_¤«п_ॣЁбва  TEQ r4

‚६Ґ­­® бўп§лў Ґв §­ зҐ­ЁҐ Ё«Ё Ё¬п ॣЁбва  б бЁ¬ў®«®¬.

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

Џ ¬пвм ¬ЁЄа®Є®­ва®««Ґа  а §¤Ґ«пҐвбп ­  ў­гв७­оо Ё ў­Ґи­оо.
‚­гв७­пп Ї ¬пвм - ॣЁбва®ў п
- Ї ¬пвм ¤ ­­ле
- б⥪®ў п
- ЎЁв®ў п
- ॣЁбвал бЇҐжЁ «м­ле дг­ЄжЁ©

‚­Ґи­пп Ї ¬пвм - ¤ ­­ле
- Їа®Ја ¬¬

‘।бвў ¬Ё  бᥬЎ«Ґа  ¤ ­­лҐ ®ЇаҐ¤Ґ«повбп ᥣ¬Ґ­в ¬Ё ў ®¤­®¬
Ё§ гЄ § ­­ле Є« бб®ў Ё ЇаЁ «Ё­ЄЁа®ў ­ЁЁ ®ЎкҐ¤Ё­повбп ў
­ҐЇаҐалў­лҐ Ё ­ҐЇҐаҐбҐЄ ойЁҐбп ®Ў« бвЁ.



5.1. USING

USING n (б ®вбвгЇ®¬ !)

USING 1,2 Ё«Ё 3
१ҐаўЁагҐв ᮮ⢥вбвўгойЁҐ п祩ЄЁ 8-f, 10-17, 18-1f ў® ў­гв७­Ґ©
Ї ¬пвЁ IRAM.
ЂбᥬЎ«Ґа Ї® 㬮«з ­Ёо ўбҐЈ¤  १ҐаўЁагҐв ­г«Ґў®© Ў ­Є
(¬®¦­® бзЁв вм, зв® USING 0
ўбв ў«Ґ­® ў ­ з «Ґ «оЎ®© Їа®Ја ¬¬л)
‘¬ҐйҐ­ЁҐ ¤ ­­ле ў IRAM б гзҐв®¬ USING ўлЇ®«­пҐвбп ­  нв ЇҐ
«Ё­ЄЁа®ў ­Ёп.

5.2. SEG, DEFSEG

SEG Є« бб/Ё¬п_ᥣ¬Ґ­в  (seg § ЇЁблў Ґвбп б ®вбвгЇ®¬ !)

SEG § ¤ Ґв ᥣ¬Ґ­в, ў Є®в®ал© ¤®«¦­л ва ­б«Ёа®ў вмбп Ї®б«Ґ¤гойЁҐ
Є®¤/¤ ­­лҐ. Љ« бб ®ЇаҐ¤Ґ«пҐвбп § аҐ§ҐаўЁа®ў ­­л¬
б«®ў®¬ CODE, DATA, BIT, XDATA, IDATA
Ё«Ё ¬®¦Ґв Ўлвм Ё¬Ґ­Ґ¬ ᥣ¬Ґ­в , а ­ҐҐ
®ЇаҐ¤Ґ«Ґ­­®Ј® ¤ЁаҐЄвЁў®© DEFSEG.

DEFSEG Ё¬п_ᥣ¬Ґ­в  [,START =  ¤аҐб] (defseg § ЇЁблў Ґвбп б ®вбвгЇ®¬ !)
[,ALIGN = ўла ў­Ёў ­ЁҐ]
[,BLOCK = а §¬Ґа]
[,OVERLAID]
[,ABSOLUTE]
[,PHANTOM]
[,CLASS = CODE or DATA or BIT or XDATA or IDATA]

seg Ё¬п_ᥣ¬Ґ­в 

DEFSEG ®Ўмпў«пҐв ­®ўл© ᥣ¬Ґ­в,
¤®Ї®«­ЁвҐ«м­® ®ЇаҐ¤Ґ«пп  Ўб®«ов­л©
 ¤аҐб ­ з « , ўла ў­Ёў ­ЁҐ (¤®«¦­® Ўлвм б⥯Ґ­мо ¤ў®©ЄЁ) ᥣ¬Ґ­в ,
а §¬Ґа ᥣ¬Ґ­в , ЇҐаҐЄалвЁҐ б ®¤­®Ё¬Ґ­­л¬Ё ᥣ¬Ґ­в ¬Ё,  Ўб®«ов­®Ґ
а §¬ҐйҐ­ЁҐ ᥣ¬Ґ­в .

’®«мЄ® зЁб«  а ў­лҐ б⥯Ґ­Ё 2 а §аҐиҐ­® ЁбЇ®«м§®ў вм ў  ваЁЎгв е
ALIGN Ё BLOCK.

‘ҐЈ¬Ґ­в б  ваЁЎг⮬ PHANTOM ­Ґ ¬®¦Ґв Ё¬Ґвм  ваЁЎгв  START= (б«Ґ¤гҐв
ЁбЇ®«м§®ў вм ORG). ЏаЁзЁ­  нв®Ј® ў ⮬, зв® ўбҐ ”ЂЌ’ЋЊЌ›… ᥣ¬Ґ­вл
а бб¬ ваЁў овбп Є Є ­ зЁ­ ойЁҐбп б 0000, б ­г«Ґў®© д ЄвЁзҐбЄ®© ¤«Ё­®©
(ў®в Ї®зҐ¬г ­ЁЄ®Ј¤  ­Ґ ў®§­ЁЄ ов ®иЁЎЄЁ ЇаЁ ­ «®¦Ґ­Ёп § ЇЁбҐ©,
ўЄ«оз ойЁе ”ЂЌ’ЋЊЌ›… ᥣ¬Ґ­вл), Ё а §аҐиҐ­® ЁбЇ®«м§®ў вм ®ЇҐа в®а ORG
¤«п «оЎ®Ј® Ї®«®¦Ґ­Ёп (???).

‘ҐЈ¬Ґ­в DATA ў  бᥬЎ«Ґа­®¬ ⥪б⥠᫥¤гҐв а §¬Ґй вм Ї®б«Ґ ᥣ¬Ґ­в  CODE.

ЏаЁ¬Ґал:

defseg c_text,class=CODE
seg c_text
...........

defseg r_data,class=DATA
seg r_data
v1 db 0,5,6
v2 dw 0

5.3. ЏҐаҐ¬Ґ­­лҐ

DS, DB, DW १ҐаўЁагҐв Ї ¬пвм ў ᥣ¬Ґ­вҐ ᮮ⢥вбўго饣®
Є« бб  (Їа ўЁ«  пў­®Ј® ®ЇаҐ¤Ґ«Ґ­Ёп ᥣ¬Ґ­в®ў ў 2.7,
Ї® 㬮«з ­Ёо class=CODE)

DS n ђҐ§ҐаўЁагҐв n Ў ©в Ї ¬пвЁ.

DB Ў ©в,Ў ©в ... Ќ  Є ¦¤л©  аЈг¬Ґ­в Ё«Ё бЁ¬ў®« ў бва®ЄҐ
१ҐаўЁагҐвбп ®¤Ё­ Ў ©в Ї ¬пвЁ, гЄ § ­­лҐ §­ зҐ­Ёп б®еа ­повбп
в®«мЄ® ў Ї ¬пвЁ Є« бб  CODE.

DW б«®ў®, б«®ў® ...

„«п Є ¦¤®Ј®  аЈг¬Ґ­в  १ҐаўЁагҐвбп ®¤­® б«®ў® Ї ¬пвЁ,
§­ зҐ­Ёп б®еа ­повбп в®«мЄ® ў Ї ¬пвЁ Є« бб  CODE.


5.4. ђ §¬ҐйҐ­ЁҐ Їа®Ја ¬¬л ў ᥣ¬Ґ­вҐ CODE


Љ®¬ ­¤л а §¬Ґй овбп Ї®б«Ґ¤®ў вҐ«м­® Ї® бзҐвзЁЄг Є®¬ ­¤ PC,
§­ зҐ­ЁҐ Є®в®а®Ј® Ї® 㬮«з ­Ёо ¬®¤ЁдЁжЁагҐвбп Є®¬ЇЁ«пв®а®¬  ўв®¬ вЁзҐбЄЁ.
Љ®¬ ­¤л ¬®Јгв Ўлвм ®Ў®§­ зҐ­л ¬ҐвЄ ¬Ё, зв® Ї®§ў®«пҐв ॠ«Ё§®ў вм
ўҐвў«Ґ­Ёп Ї® Є®¬ ­¤ ¬ гб«®ў­®Ј® jc,jnc,jz,jb,jnb,jbc,djnz - ЇҐаҐе®¤ ,
ЎҐ§гб«®ў­®Ј® ЇҐаҐе®¤  jmp, call.
Љ®¬ ­¤л Jmp, call Є®­ЄаҐвЁ§Ёаговбп Є®¬ЇЁ«пв®а®¬ ў ᮮ⢥вбўгойЁҐ Є®¬ ­¤л
ajmp, sjmp, ljmp, lcall, scall Ё«Ё jmp @a+dptr б гзҐв®¬ ¤«Ё­л  ¤аҐб­®Ј®
Ё­вҐаў «  ЇаЁ ЇҐаҐе®¤Ґ.


ЏаЁ¬Ґз ­ЁҐ: Ќ… ЋЃџ‡Ђ’…‹њЌЋ ¤ў®Ґв®зЁҐ Ї®б«Ґ Ё¬Ґ­Ё ¬ҐвЄЁ.


$ - ЇаЁ§­ Є  ¤аҐб  ЇҐаў®Ј® Ў ©в  Є®¤  Ё«Ё ¤ ­­ле, бЈҐ­ҐаЁа®ў ­­ле
⥪гйЁ¬ ®ЇҐа в®а®¬ (⥪г饥 §­ зҐ­ЁҐ Їа®Ја ¬¬­®Ј® бзҐвзЁЄ ), ­ ЇаЁ¬Ґа,

djnz r0, $ нЄўЁў «Ґ­в­® ЇҐаҐе®¤г б ¬ҐвЄ®©

m1: djnz r0,m1



Ќ §­ зҐ­ЁҐ Їа®Ја ¬¬­®Ј® бзҐвзЁЄ  ¤ЁаҐЄвЁў®© ORG

ORG  ¤аҐб­®Ґ ўла ¦Ґ­ЁҐ

‚ ЇҐаҐ¬Ґй Ґ¬®¬ ᥣ¬Ґ­вҐ ORG гбв ­ ў«Ёў Ґв  ¤аҐб ў PC ®в­®бЁвҐ«м­® ­ з « 
ᥣ¬Ґ­в . ‚  Ўб®«ов­®¬ ᥣ¬Ґ­вҐ ORG гбв ­ ў«Ёў Ґв ў PC  Ўб®«ов­л©  ¤аҐб.


6. END [¬ҐвЄ ]
¬ҐвЄ  - ­Ґ ®Ўп§ вҐ«м­л© Ї а ¬Ґва,

‡ ¤ Ґв Є®­Ґж ва ­б«Ёа㥬®Ј® ⥪бв 

7. Њ®¤г«м­®Ґ Їа®Ја ¬¬Ёа®ў ­ЁҐ.

Њ®¤г«Ё ®д®а¬«повбп Є Є ­Ґ§ ўЁбЁ¬лҐ Їа®жҐ¤гал б «®Є «м­л¬Ё
Ё Ј«®Ў «м­л¬Ё ббл«Є ¬Ё, Є®в®алҐ а §аҐи овбп ЇаЁ бЎ®аЄҐ
«Ё­ЄҐа®¬ AVL51.exe.


7.1. Ћд®а¬«Ґ­ЁҐ Їа®жҐ¤га.

Ё¬п PROC
......

[Ё¬п] ENDPROC

ЋЎмпў«пҐв ®Ў« бвм б «®Є «м­л¬Ё ¬ҐвЄ ¬Ё
‹®Є «м­лҐ ¬ҐвЄЁ ­ зЁ­ овбп б 'L?'

L?1

‹®Є «м­лҐ бЁ¬ў®«л ¬®Јгв Ўлвм ®ЇаҐ¤Ґ«Ґ­л в®«мЄ® ў­гваЁ PROC

€¬п ў ®ЇҐа в®аҐ ENDPROC ­Ґ вॡгҐвбп, ­® Ґб«Ё Ґбвм, в®
®­  ¤®«¦­  Ўлвм в®© ¦Ґ б ¬®©, зв® Ё ў ЇаҐ¤л¤г饬 ®ЇҐа в®аҐ PROC

‚«®¦Ґ­­лҐ Їа®жҐ¤гал ­Ґ а §аҐиҐ­л


7.2. PUBLIC, EXTERN, EXTRN, GLOBAL

PUBLIC бЁ¬ў®«

ђ §аҐи Ґв ббл«Єг ­  бЁ¬ў®« Ё§ ¤агЈЁе ¬®¤г«Ґ© ¤ЁаҐЄвЁў®© EXTERN.

EXTERN бЁ¬ў®«
Ё«Ё EXTRN бЁ¬ў®«

ЏаЁ¬Ґз ­Ёп:
1)  «мвҐа­ вЁў­ п ¤ЁаҐЄвЁў  global Ї®§ў®«пҐв б®зҐв вм ў®§¬®¦­®бвЁ
public/extern;
2) Ё¬Ґ­ , гЄ § ­­лҐ ў ¤ЁаҐЄвЁў е public Ё global, Ї®Ї ¤ ов ў sym-д ©«
Ё, б«Ґ¤®ў вҐ«м­®, ўЁ¤­л бЁ¬г«пв®аг avsim51.
3) ¬®¦­® ўбҐ Ё¬Ґ­  ᤥ« вм Ј«®Ў «м­л¬Ё, §  бзҐв ®ЇжЁЁ AP (ALLPUBLIC)
ЇаЁ § ЇгбЄҐ  бᥬЎ«Ґа , ­ ЇаЁ¬Ґа, ava51 file ap (ЇаЁ Є®¬Ї®­®ўЄҐ
ҐйҐ § ¤ вм ®ЇжЁо -sy, ­ ЇаЁ¬Ґа, avl51 file=file -sy, в® Ўг¤Ґв
бЈҐ­ҐаЁа®ў ­ sym-д ©«,   ЇаЁ § ЇгбЄҐ бЁ¬г«пв®а  б«Ґ¤гҐв § ¤ вм
Load Avocet <Ё¬п д ©«  ЎҐ§ а биЁаҐ­Ёп>)

ЏаЁ¬Ґа

extern area
global d0, d1
public d2

d0 db area
d1 db %11111110, @376, $FE
d2 db 11111110b, 376Q, 0FEh

7.3. ЏаЁ¬Ґал ¬®¤г«м­®Ј® Їа®Ја ¬¬Ёа®ў ­Ёп.

; ¬®¤г«м A.asm
seg code
org reset
ljmp _start_1234567890

extern d7
; global d0, d1, d2
public d0, d2

seg data
_start_1234567890_ db 0
d0 db 254
d1 db %11111110, @376, $FE
d2 db 11111110b, 376Q, 0FEh
d3 db '1"',"O'k"
d4 db 0

seg code
_start_1234567890:
mov r0, #d7
mov d1, r0
l1 djnz r0, l1
end

; ¬®¤г«м B.asm
global d7
seg data
d7 equ 0
end

; .bat д ©«
ava51 a.asm ap ;ap-ўбҐ Ё¬Ґ­  Ј«®Ў «м­лҐ
ava51 b.asm ap
avl51 ab=a,b -sy ;ᮧ¤ вм бЁ¬ў®«м­лҐ д ©« Ё
бўп§ вм ¬®¤г«Ё ў ab.hex
avsim51 alaab ; a-вЁЇ Їа®жҐбб®а ,l-load,
a-avocet(§ Јаг§Є  бЁ¬ў®«м­®Ј® д ©« ),
ab.hex-§ Јаг¦ Ґ¬л© д ©«.hex
Ѓ…‡ а §¤Ґ«ЁвҐ«Ґ© !


8. Њ Єа®®ЇаҐ¤Ґ«Ґ­Ёп

‘Ё­в ЄбЁб ¬ Єа®®ЇаҐ¤Ґ«Ґ­Ёп

Ё¬п %macro arg1,arg2,...
mov arg1,arg2
mov r&arg1,#arg2
[%exitm]
%endm

%exitm ЁбЇ®«м§гҐвбп ¤«п ­Ґ¬Ґ¤«Ґ­­®Ј® § ўҐа襭Ёп ЈҐ­Ґа жЁЁ
¬ Єа®а биЁаҐ­Ёп.

ЋЇҐа в®а &arg ЇаҐ¤бв ў«пҐв ⥪бв  аЈг¬Ґ­в 

ЋЇҐа в®ал гб«®ў­®© ва ­б«пжЁЁ ў ¬ Єа®®ЇаҐ¤Ґ«Ґ­Ёпе

%ifb arg  аЈг¬Ґ­в ­Ґ § ¤ ­
%ifnb arg  аЈг¬Ґ­в § ¤ ­
%ifeq arg1 arg2  аЈг¬Ґ­вл а ў­л
%ifne arg1 arg2  аЈг¬Ґ­вл ­Ґ а ў­л

ЏаЁ¬Ґал:

movr %macro dst,src
%ifb src
%exitm
%endif

%ifne dst src
mov a,r&src ; 'r' + бва®Є   аЈг¬Ґ­в  src
mov r&dst,a
%endif
%endm

movr 1,0
movr 7,7

‚ १г«мв вҐ Ўг¤Ґв бЈҐ­ҐаЁа®ў ­®

mov a,r1
mov r0,a

ЋЇҐа в®а % ЇаҐ¤бв ў«пҐв зЁб«®ў®Ґ §­ зҐ­ЁҐ  аЈг¬Ґ­в 

st %macro reg
mov r&reg,a
%endm

ldcmac %macro wreg
st %wreg+wreg
st %(wreg+1)*2
nop
%endm

ldcmac 0
ldcmac 2

Ѓг¤Ґв бЈҐ­ҐаЁа®ў ­®:

mov r0, a
mov r2, a
nop
mov r4, a
mov r6, a
nop

‚® Ё§ЎҐ¦ ­ЁҐ ¤гЎ«Ёа®ў ­Ёп ¬Ґв®Є ЇаЁ ¬­®Ј®Єа в­®¬ ¬ Єа®ўл§®ўҐ
ЇаҐ¤« Ј овбп «®Є «м­лҐ (ў ЇаҐ¤Ґ« е ¬ Єа®®ЇаҐ¤Ґ«Ґ­Ёп) ¬ҐвЄЁ:

%local бЇЁб®Є ¬Ґв®Є

ЏаЁ¬Ґа:

delay %macro count
%local loop
mov r0, #count
loop: djnz r0, loop
%endm

9. „ЁаҐЄвЁў  INCLUDE <д ©«>

- ЇаЁ®бв ­®ўЁвм Є®¬ЇЁ«пжЁо
⥪г饣® д ©« , Є®¬ЇЁ«Ёа®ў вм <д ©«>,
Їа®¤®«¦Ёвм Є®¬ЇЁ«пжЁо ⥪г饣® д ©« .

- а биЁаҐ­ЁҐ  бᥬЎ«Ґа  Ё¬Ґ­ ¬Ё ॣЁбва®ў Ё ЎЁв®ў
¤агЈЁе ¬ЁЄа®Є®­ва®««Ґа®ў б п¤а®¬ i51:
д ©«л 80c51gb.ini
sab515_.ini

<д ©«> ­Ґ ᮤҐа¦Ёв ¬ Єа®Є®¬ ­¤ Ё ббл«®Є ­  ¬ Єа®Є®¬ ­¤л

10. ђ Ў®в  б ¬ Єа®б ¬Ё Ё ЎЁЎ«Ё®вҐЄ ¬Ё

1/ ЂбᥬЎ«Ґа - п§лЄ ®ЇЁб ­Ёп ўЁавг «м­®© ¬ иЁ­л

ЂбᥬЎ«Ґа - бЁ¬ў®«ЁзҐбЄ®Ґ ®ЇЁб ­ЁҐ аҐбгаб®ў ¬ЁЄа®Є®¬ЇмовҐа 
Ё  «Ј®аЁв¬ЁзҐбЄЁ© п§лЄ (¬Ґв®¤ Ё вҐе­®«®ЈЁп  «Ј®аЁв¬Ё§ жЁЁ).
(д ©« AVC51\HELP\asm51.txt).
ЋЇЁб ­ЁҐ аҐбгаб®ў ў  бᥬЎ«ҐаҐ (бЁбвҐ¬л Є®¬ ­¤, ®аЈ ­Ё§ жЁЁ
Ї ¬пвЁ, ўў®¤ /ўлў®¤ ,бЁбвҐ¬л ЇаҐалў ­Ё© Ё ¤а ) ўЁавг «м­®Ґ.
ђҐ «м­®Ґ а бЇаҐ¤Ґ«Ґ­ЁҐ аҐбгаб®ў ®бгйҐбвў«пҐв Є®¬ЇЁ«пв®а.
‚Ёавг «м­®Ґ ®ЇЁб ­ЁҐ (ўЁавг «м­ п ¬ иЁ­ ) Ї®§ў®«пҐв  Ўбва -
ЈЁа®ў вмбп ®в ॠ«м­®Ј® ЁбЇ®«­Ґ­Ёп ¬ иЁ­л Ё
бЄ®­жҐ­ваЁа®ў вмбп ­  ў®Їа®б е  «Ј®аЁв¬Ё§ жЁЁ ЇаЁ
аҐиҐ­ЁЁ Є®­ЄаҐв­ле § ¤ з.

ђҐ «Ё§ жЁп ўЁавг «м­®© ¬ иЁ­л ¬®¦Ґв Ўлвм - Їа®Ја ¬¬­ п
(¬®¤Ґ«м ¬ЁЄа®Є®¬ЇмовҐа ) Ё«Ё  ЇЇ а в­ п (¬ЁЄа®б奬  ¬ЁЄа®Є®¬ЇмовҐа )
Џа®Ја ¬¬­ п ¬®¤Ґ«м - бЁ¬г«пв®а ®ЎҐбЇҐзЁў Ґв 㤮Ў­л© Ї®«м§®ў вҐ«м-
бЄЁ© Ё­вҐа䥩б, Ї®§ў®«пойЁ© Ё­вҐа ЄвЁў­® гЇа ў«пвм аҐбгаб ¬Ё ¬ иЁ­л.
ЌҐ¤®бв вЄ®¬ бЁ¬г«пв®а  пў«пҐвбп ­Ё§Є п бЄ®а®бвм ЁбЇ®«­Ґ­Ёп
(AVSIM51.exe - ў Єа®бб-бЁб⥬Ґ AVC51), ­Ґ ¤®бвгЇ­л нд䥪вл ЁбЇ®«­Ґ­Ёп
ў ॠ«м­®¬ ўаҐ¬Ґ­Ё.
ЂЇЇ а в­ п ॠ«Ё§ жЁп ўЁавг «м­®© ¬ иЁ­л - Є®­ва®««Ґа-Їа®в®вЁЇ ­ 
®б­®ўҐ SAB515 (LAB515.txt) б Їа®Ја ¬¬­®© Ї®¤¤Ґа¦Є®© ў ўЁ¤Ґ ¬®­Ёв®а-
­®© бЁб⥬л (rism51.asm Ё imon51.frt ў Є в «®ЈҐ LAB). ‚ Є®­ва®««ҐаҐ
Їа®Ја ¬¬л ўлзЁб«Ґ­Ёп Ё Ё§¬ҐаҐ­Ёп ¬®Јгв Ўлвм ўлЇ®«­Ґ­л ў ॠ«м­®¬
ўаҐ¬Ґ­Ё, १г«мв вл Ё­¤ЁжЁа®ў ­л ­  †Љ€, Ї®Є § ­л нд䥪вл гЇа ў«Ґ­Ёп
Є« ўЁ вга®©.

Њ Єа® бᥬЎ«Ґа -  бᥬЎ«Ґа б б।бвў ¬Ё а биЁаҐ­Ёп-¬ Єа®Є®¬ ­¤ ¬Ё,
Ї®§ў®«пойЁ¬Ё ᮧ¤ ў вм Ў®«ҐҐ нд䥪⨢­лҐ
( б в®зЄЁ §аҐ­Ёп ЁбЇ®«м§®ў ­Ёп)
ўЁавг «м­лҐ Є®¬ЇмовҐал Ў®«ҐҐ ўлб®Є®Ј® га®ў­п  Ўбва ЄжЁЁ.
„«п 8-а §ап¤­®© ¬ иЁ­л ҐбвҐб⢥­­л¬ а биЁаҐ­ЁҐ¬
пў«пҐвбп ЇҐаҐе®¤ Є 16/32-а §ап¤­®©  аеЁвҐЄвгаҐ, Ї®¤¤Ґа¦Ёў о饩
®Ўа Ў®вЄг ¤ ­­ле б।­Ґ© в®з­®бвЁ, Ё Є 32-а §ап¤­®©  аеЁвҐЄвгаҐ,
®ЎҐбЇҐзЁў о饩 ®Ўа Ў®вЄг ¤ ­­ле б ўлб®Є®© в®з­®бвмо.

‚Ёавг «м­ п ¬ иЁ­  (д ©« proc51.blk) ®вЄалв  ¤«п а биЁаҐ­Ёп
­®ўл¬Ё ¬ Єа®Є®¬ ­¤ ¬Ё Ё Ї®¤Їа®Ја ¬¬ ¬Ё.

ЋЇЁб ­ЁҐ ॣЁбва®ў Ё ¬ Єа®Є®¬ ­¤л ў д ©«Ґ proc51.asm :

16-а §ап¤­лҐ аҐЈЁбвал w0 w1 w2 w3 w4 w5 w6 w7 w8 w9
32-а §ап¤­лҐ аҐЈЁбвал d0 d1 d2 d3 d4 d5 d6

2/ ‘Ёб⥬  Є®¬ ­¤, ЇаҐ¤бв ў«Ґ­­ п ЊЂЉђЋЉЋЊЂЌ„ЂЊ€ б ЇҐаҐ¬Ґ­­л¬Ё
Ї а ¬Ґва ¬Ё:
addc_w y,x - б«®¦Ґ­ЁҐ б«®ў б ЇҐаҐ­®б®¬ wx+wy+б->wy,
‘-ўе®¤­®© ЇҐаҐ­®б
add_w y,#x - б«®¦Ґ­ЁҐ б«®ў  б Є®­бв ­в®© #x+wy->wy ,
ॠ«Ё§ жЁп зҐаҐ§ dptr
addc_d y,x - б«®¦Ґ­ЁҐ ¤ў®©­ле б«®ў б ЇҐаҐ­®б®¬ dx+dy+б->dy
mov_w y,x - wx->wy
mov_d y,x - dx->dy
mov_c y,#x - § ЇЁбм Є®­бв ­вл ў б«®ў® #x->wy зҐаҐ§ dptr
clr_w x - 0->wx
clr_d x - 0->dx
cpl_w x - ¤®Ї®«­Ґ­ЁҐ б«®ў  0-wx-c->wx
cpl_d x - ¤®Ї®«­Ґ­ЁҐ ¤ў®©­®Ј® б«®ў  0-dx-c->dx
subb_w y,x - ўлзЁв ­ЁҐ б«®ў б § Ґ¬®¬ wy-wx-c->wy
subb_d y,x - ўлзЁв ­ЁҐ ¤ў®©­ле б«®ў б § Ґ¬®¬ dy-dx-c->dy
rlc_w x - б¤ўЁЈ б«®ў  ў«Ґў® б ЇаЁ§­ Є®¬ ‘ rlc(wx)
rlc_d x - б¤ўЁЈ ¤ў®©­®Ј® б«®ў  ў«Ґў® б ЇаЁ§­ Є®¬ ‘ rlc(dx)
rrc_w x - б¤ўЁЈ б«®ў  ўЇа ў® б ЇаЁ§­ Є®¬ ‘ rrc(wx)
rrc_d x - б¤ўЁЈ ¤ў®©­®Ј® б«®ў  ўЇа ў® б ЇаЁ§­ Є®¬ ‘ rrc(dx)

3/ Љ®¬ ­¤л ЇаҐ¤бв ў«Ґ­л ЏЋ„ЏђЋѓђЂЊЊЂЊ€ б дЁЄбЁа®ў ­­л¬Ё Ї а ¬Ґва ¬Ё:

clrw4 0->w4
clrd1 0->d1
dopcod -w0
shr47 rrc_d d1 c=0
sh1l47 rlc_d d1 c=0
sm0145 W0+W2->W0 c=0
DELN d1/w0->w3 Ё«Ё r4567/r01 -> r67,
бЁ¬¬ҐваЁз­®Ґ ®ЄагЈ«Ґ­ЁҐ
ЁбЇ®«м§говбп w4,w5=08-0b Є Є а Ў®зЁҐ
DELO d1/w0->w3 ®ЄагЈ«Ґ­ЁҐ гбҐзҐ­ЁҐ¬
mult w0*w1->d1 Ё«Ё R 0,1*R 2,3 -> R 4-7,
ЁбЇ®«м§гҐвбп w5=0a,0b Є Є а Ў®зЁҐ
shr4 d1/16 Ё«Ё r47 б¤ўЁ­гвм ўЇа ў® ­  4 ЎЁв 
tr2d w0->w1 Ё«Ё R0,1 -> R2,3 r5-а Ў®зЁ©
trd2 w1->w0 Ё«Ё R 2,3 -> R 0,1 r4-7 а Ў®зЁҐ
sqrt32 Є®аҐ­м Ё§ d1 ў w0 Ё«Ё sqrt(r4-7)->r01
sqrt[r4-5] ->r01 а Ў®зЁҐ-r3,r7,0a,0b
SQRT16 SRQT[r4-5] ->r1 , бзҐвзЁЄ ў r7

4/ ЏаЁ¬Ґа а §а Ў®вЄЁ Їа®Ја ¬¬л ўлзЁб«Ґ­Ё©

sin=x - x^3/3! + x^5/5! = x(1-x^2/6(1-x^2/20)) ->
-> x/mx(mx-x^2/6/mx^2(mx-x^2/20/mx))

-----------б奬  ўлзЁб«Ґ­Ё© Ё ҐҐ ॠ«Ё§ жЁп ў ¬ Єа® бᥬЎ«ҐаҐ
---------------- а бЇаҐ¤Ґ«Ґ­ЁҐ Ї ¬пвЁ

w0-w5 d0-d2 а Ў®зЁҐ ॣЁбвал
x equ w6 w6=d3=¤ў®Ёз­®-¤ҐбпвЁз­л©  аЈг¬Ґ­в
mx equ w7 w7=d3+2=¬ бив Ў
xx equ d4 d4=w8-w9 = x^2
step1 equ d5 d5=mx-x^2/20/mx

¬ҐвЄЁ б奬  ўлзЁб«Ґ­Ё© ¬ Єа® бᥬЎ«Ґа

1 x^2 mov_w w0,x mov_w w2,x call mult mov_d xx,d1
2 20*mx mov_c w0,#20 mov_w w1,mx call mult mov_w w0,w3
3 [1]/[2] mov_d d1,xx call deln
4 mx-[3] mov_w w0,mx subb_w w0,w3 mov_w step1,w0
5 x^2
6 mx*6 mov_w w3,mx clr c rlc_w w3 add_w w3,mx rlc_w w3
7 [5]/[6] mov_w w0,w3 mov_d d1,xx call deln
8 [7]*[4] mov_w w0,w3 mov_w w1,step1 call mult
9 [8]/[7] mov_w w0,mx call deln
10 mx-[9] mov_w w0,mx subb_w w0,w3
11 [10]*x mov_w w1,x call mult
12 [11]/mx mov_w w0,mx call deln

11. ЃЁЎ«Ё®вҐЄЁ.

bibl_a.asm - ЎЁЎ«Ё®вҐЄ  Ї®¤Їа®Ја ¬¬ 楫®©  аЁд¬ҐвЁЄЁ б дЁЄбЁа®ў ­­л¬Ё
Ї а ¬Ґва ¬Ё-ॣЁбва ¬Ё r0-r7,08-0b, ¬®¦Ґв § Јаг¦ вмбп
ў ЇаЁЄ« ¤­го Їа®Ја ¬¬г
include <bibl_a.asm> (бЄ®ЎЄЁ ­Ґ ®Ўп§ вҐ«м­л)

bibl_f.asm - ¬ Єа®ЎЁЎ«Ё®вҐЄ  б Ї« ў о饩 в®зЄ®© ў Є®а®вЄ®¬ д®а¬ вҐ
ЇаЁ­жЁЇ а Ў®вл б ЎЁЎЁ«Ё®вҐЄ®© в Є®© ¦Ґ Є Є б bibl_i
Соседние файлы в папке описание ассемблера i51(51fx,51gb,52,sab515535)