Скачиваний:
19
Добавлен:
01.05.2014
Размер:
17.7 Кб
Скачать
я_я2ђ §¤Ґ« 2. ЊҐе ­Ё§¬л Ї®б«Ґ¤®ў вҐ«м­®Ј® ўлЇ®«­Ґ­Ёп Їа®Ја ¬¬

Њл Ўг¤Ґ¬ а бб¬ ваЁў вм ¬Ґе ­Ё§¬л ўлЇ®«­Ґ­Ёп Їа®Ја ¬¬ б в®зЄЁ
§аҐ­Ёп 3-Ј® Ё 4-Ј® га®ў­Ґ© ®ЇҐа жЁ®­­®© б।л, в.Ґ. б в®зЄЁ
§аҐ­Ёп Їа®жҐ¤га Ё ЇаҐалў ­Ё©.
–Ґ«мо нв®Ј® а бᬮв७Ёп пў«пҐвбп ЇҐаҐе®¤ Є §­ Є®¬бвўг б
¬Ґе ­Ё§¬ ¬Ё Ї а ««Ґ«м­®Ј® ўлЇ®«­Ґ­Ёп Їа®Ја ¬¬, в.Ґ. б ¬Ґе ­Ё§¬ ¬Ё
га®ў­п 5.

Ѓг¤Ґ¬ а бб¬ ваЁў вм ўлЇ®«­Ґ­ЁҐ Їа®Ја ¬¬л Є Є
Ї®б«Ґ¤®ў вҐ«м­®бвм ўл§®ў®ў Їа®жҐ¤га а §«Ёз­®Ј® ўЁ¤ . ЏҐаҐе®¤ ®в
®¤­®© Їа®жҐ¤гал Є ¤агЈ®© Їа®Ёб室Ёв б Ї®¬®ймо ¬Ґе ­Ё§¬®ў ‚›‡Ћ‚Ђ Ё
‚Ћ‡‚ђЂ’Ђ. ЏаЁ н⮬ Їа®Ёб室Ёв ‡ЂЊ…ЌЂ Ё ‚Ћ‘‘’ЂЌЋ‚‹…Ќ€… ЉЋЌ’…Љ‘’Ђ
Їа®жҐ¤гал.

Љ®­вҐЄб⮬ Їа®жҐ¤гал ­ §лў ов б®ў®ЄгЇ­®бвм ¤ ­­ле, ¤®бвгЇ­ле
Їа®жҐбб®аг ў® ўаҐ¬п ўлЇ®«­Ґ­Ёп нв®© Їа®жҐ¤гал. Љ®­вҐЄбв ўЄ«оз Ґв,
Є Є Їа ўЁ«®, б®бв®п­ЁҐ Їа®жҐбб®а  (ॣЁбвал) Ё Є®­вҐЄбв Ї ¬пвЁ.

‘гйҐбвўгҐв жҐ«л© ап¤ ¬Ґе ­Ё§¬®ў § ¬Ґ­л Є®­вҐЄбв ,
а §«Ёз ойЁебп ў § ўЁбЁ¬®бвЁ ®в Ј«гЎЁ­л § ¬Ґ­л Ё ¬®¬Ґ­в®ў ўаҐ¬Ґ­Ё
­  Ї®в®ЄҐ ўлЇ®«­Ґ­Ёп Ё­бвагЄжЁ© Їа®Ја ¬¬л. Љ« ббЁдЁЄ жЁп ¬Ґв®¤®ў
§ ¬Ґ­л Є®­вҐЄбв  ЇаЁўҐ¤Ґ­  ­Ё¦Ґ:

ЪДДДДДДДДДДДДДДДДДДДДДДДДї
іЊҐв®¤л § ¬Ґ­л Є®­вҐЄбв  і
АДДДДДДВДДДДДДВДДДДДДДДДДЩ
ЪДДДДДДДДДДДї і і ЪДДДДДДДДДДДї
і‘Ё­еа®­­лҐ ГДДДЩ АДДДґЂбЁ­еа®­­лҐі
АДВДДДДДДДДДЩ АДВДДДДДДДДДЩ
і ЪДДДДДДДДДДї і ЪДДДДДДДДДДї
ГДґЏа®жҐ¤гал і ГДґЏаҐалў ­Ёпі
і АДДДДДДДДДДЩ і АДДДДДДДДДДЩ
і ЪДДДДДДДДДДДї і ЪДДДДДДДДДДї
ГДґ‘®Їа®Ја ¬¬лі АДґ€бЄ«о祭Ёпі
і АДДДДДДДДДДДЩ АДДДДДДДДДДЩ
і ЪДДДДДДДДДДДДДДДДДДДДДДДї
АДґЋЎа йҐ­Ёп Є бгЇҐаўЁ§®агі
АДДДДДДДДДДДДДДДДДДДДДДДЩ

‚ бЁ­еа®­­ле ¬Ґв®¤ е ®ЇаҐ¤Ґ«Ґ­ ¬®¬Ґ­в § ¬Ґ­л Є®­вҐЄбв  б
в®зЄЁ §аҐ­Ёп ¬Ґбв  ў Їа®Ја ¬¬Ґ, в.Є. Їа®Ја ¬¬Ёбв б ¬ ЇЁиҐв ўл§®ў
ᮮ⢥вбвўго饣® б।бвў  ў Їа®Ја ¬¬Ґ.
‚  бЁ­еа®­­ле ¬Ґв®¤ е в Є®© ¬®¬Ґ­в § ¬Ґ­л Є®­вҐЄбв 
­ҐЁ§ўҐб⥭ Ё ¬®¦Ґв ­ бвгЇЁвм ў «оЎ®© в®зЄҐ Їа®Ја ¬¬л.
“ ўбҐе ¬Ґв®¤®ў Ґбвм ­ҐЄ®в®алҐ ®ЎйЁҐ бў®©бвў . Ѓ §®ўл¬ ¤«п
ўбҐе пў«пҐвбп ЏђЋ–…„“ђЂ. „«п ­ иЁе § ¤ з Ў §®ўл¬ б।бвў®¬
пў«повбп ‘ЋЏђЋѓђЂЊЊ›, Є®в®алҐ в®¦Ґ ®б­®ў ­л ­  ¬Ґе ­Ё§¬ е
Їа®жҐ¤га. Џ®н⮬г зв®Ўл г­ЁдЁжЁа®ў вм ­ иЁ б ў ¬Ё §­ ­Ёп ®
Їа®жҐ¤га е, Єа вЄ® а бᬮваЁ¬ Ё Ёе.

я22.1. Џа®жҐ¤гал Є Є бЁ­еа®­­лҐ ¬Ґв®¤л § ¬Ґ­л Є®­вҐЄбв 

Џа®жҐ¤га®© Ўг¤Ґ¬ ­ §лў вм бЁ­еа®­­®Ґ б।бвў® § ¬Ґ­л
Є®­вҐЄбв , ­  Є®в®а®¬ ®ЇаҐ¤Ґ«Ґ­® ®в­®иҐ­ЁҐ ў«®¦Ґ­­®бвЁ.
Ѓг¤Ґ¬ Ј®ў®аЁвм, зв® Ґб«Ё Їа®жҐ¤га  ўлЇ®«­пҐвбп ў ¤ ­­л©
¬®¬Ґ­в, в® нв® §­ зЁв, зв® ®­  ­ е®¤Ёвбп ў  ЄвЁў­®¬ б®бв®п­ЁЁ.
’.®. ўлЇ®«­Ґ­ЁҐ Їа®Ја ¬¬л - нв® ЇҐаҐе®¤ Ё§ ®¤­®Ј®  ЄвЁў­®Ј®
б®бв®п­Ёп ў ¤агЈ®Ґ. ќв®в ЇҐаҐе®¤ ®бгйҐбвў«пҐвбп Ё­бвагЄжЁп¬Ё
‚›‡Ћ‚ Ё ‚Ћ‡‚ђЂ’. ЏаЁ н⮬ Їа®Ёб室Ёв § ¬Ґ­  Є®­вҐЄбв  ®¤­®Ј®
 ЄвЁў­®Ј® б®бв®п­Ёп ­  Є®­вҐЄбв ¤агЈ®Ј®  ЄвЁў­®Ј® б®бв®п­Ёп.
‚맮ў Ё ў®§ўа в ®бгйҐбвў«повбп ў ­ҐбЄ®«мЄ® нв Ї®ў:
‚맮ў:
- Ї®¤Ј®в®ўЄ  ¤ ­­ле, ЇҐаҐ¤ ў Ґ¬ле Ё§ ўл§лў о饩 Їа®жҐ¤гал ў
ўл§лў Ґ¬го;
- б®еа ­Ґ­ЁҐ Є®­вҐЄбв  ўл§лў о饩 Їа®жҐ¤гал;
- гбв ­®ў«Ґ­ЁҐ Є®­вҐЄбв  ўл§лў Ґ¬®© Їа®жҐ¤гал;
- ᮧ¤ ­ЁҐ «®Є «м­®© баҐ¤л ўл§лў Ґ¬®© Їа®жҐ¤гал.
‚®§ўа в:
- Ї®¤Ј®в®ўЄ  १г«мв в®ў, ЇҐаҐ¤ ў Ґ¬ле Ё§ ўл§лў Ґ¬®©
Їа®жҐ¤гал ў ўл§лў ойго;
- гбв ­®ў«Ґ­ЁҐ Є®­вҐЄбв  ўл§лў о饩 Їа®жҐ¤гал.
‚ ¦­®, зв® «®Є «м­ п б।  Ё Є®­вҐЄбв ўл§лў Ґ¬®© Їа®жҐ¤гал
­Ґ б®еа ­повбп,   а §аги овбп.

‘вагЄвга  ¤ ­­ле, ЁбЇ®«м§гҐ¬ п ¤«п ॠ«Ё§ жЁЁ ¬Ґе ­Ё§¬®ў
ўл§®ў  Ё ў®§ўа в  - нв® б⥪.
Ќ Ї®¬­о Ё­бвагЄжЁЁ а Ў®вл б® б⥪®¬:
push ax sp := sp-2; pop ax ax := ss:[sp];
ss:[sp] := ax; sp := sp + 2;

call Q push cs; ret pop ip
push ip; pop cs
cs := seg(Q);
ip := ofs(Q);

int pushf iret ret
call popf

‚ б ¬®¬ ®ЎйҐ¬ ўЁ¤Ґ б奬  ўл§®ў  Ё ў®§ўа в  ўлЈ«п¤Ёв
б«Ґ¤гойЁ¬ ®Ўа §®¬:
ЪДДДДДДДДДДДї
і б⥪ і
‚ҐаиЁ­  б⥪  ->ГДДДДДДДДДДДґ
і‹®Є.б।  ‘і
‚ҐаиЁ­  б⥪  ->ГДДДДДДДДДДДґ <- Ѓ §  б⥪ 
і‹®Є.б।  ‚і
‚ҐаиЁ­  б⥪  ->ГДДДДДДДДДДДґ <- Ѓ §  б⥪ 
і‹®Є.б।  Ђі
ГДДДДДДДДДДДґ <- Ѓ §  б⥪ 
і Є®¤ Ђ і
і і
і ўл§®ў ‚>ДЕДДДї
ЪДДЕД> і і
і ГДДДДДДДДДДДЕ<ДДЩ
і і Є®¤ ‚ і
і і і
і і ўл§®ў ‘>ДЕДДДї
іЪДЕД> і і
‚®§ўа в АЕДЕДДДДДДДДДДДЕ<ДДЩ
і і Є®¤ ‘ і
‚®§ўа в АДБДДДДДДДДДДДЩ

Љ®Ј¤  ўлЇ®«­пҐвбп Є®¤ Їа®жҐ¤гал Ђ, бгйҐбвўгҐв «®Є «м­ п баҐ-
¤  Ђ нв®© Їа®жҐ¤гал. Љ®Ј¤  Їа®Ёб室Ёв ўл§®ў Їа®жҐ¤гал ‚ ў б⥪
­ ¤ «®Є «м­®© б।®© Ђ ЇЁигвбп ЇҐаҐ¤ ў Ґ¬лҐ Ї а ¬Ґвал Ё  ¤аҐб
ў®§ўа в  ў Ђ. ‡ вҐ¬ ўл¤Ґ«пҐвбп ¬Ґбв® ¤«п «®Є «м­ле Ї а ¬Ґва®ў ‚ Ё
нв® ўбҐ ­ §лў Ґвбп «®Є «м­®© б।®© ‚. Ђ­ «®ЈЁз­® Їа®Ёб室Ёв Ё б
ўл§®ў®¬ ‘. ЏаЁ ў®§ўа вҐ Ё§ ‘ «®Є «м­ п б।  ‘ а §аги Ґвбп Їа®б-
вл¬ б¬ҐйҐ­ЁҐ¬ ў­Ё§ ўҐаиЁ­л б⥪ . Ђ­ «®ЈЁз­® Їа®Ёб室Ёв Ё б ў®§ў-
а в®¬ Ё§ ‚.
’ҐЄгй п б।  ў б⥪Ґ ®ЇЁблў Ґвбп ¤ўг¬п Ї а ¬Ґва ¬Ё: Ѓ § 
б⥪  Ё ‚ҐаиЁ­  б⥪ .
ЏаЁ ўл§®ўҐ:
Ѓ §  б⥪  (бв а п) -> ў б⥪;
Ѓ §  б⥪  (­®ў п) := ‚ҐаиЁ­  б⥪  (бв а п);
‚ҐаиЁ­  б⥪  (­®ў п) := ‚ҐаиЁ­  б⥪  (бв а п) + ђ §¬Ґа б।л;

ЏаЁ ў®§ўа вҐ:
‚ҐаиЁ­  б⥪  (­®ў п) := Ѓ §  б⥪  (бв а п);
€§ б⥪  -> Ѓ §  б⥪  (­®ў п);

Љ®­ЄаҐв­ п ॠ«Ё§ жЁп ¤ ­­®© беҐ¬л § ўЁбЁв ®в  аеЁвҐЄвгал
¬ иЁ­л Ё  «Ј®аЁв¬®ў Є®¬ЇЁ«пв®а .
ђ бᬮваЁ¬ ЇаЁ¬Ґа, Є®в®ал© Ўг¤Ґв ­Ґ®Ўе®¤Ё¬ ¤«п ॠ«Ё§ жЁЁ
« Ў®а в®а­ле а Ў®в. ђ бЇЁиҐ¬ Ї® и Ј ¬ б®бв®п­ЁҐ б⥪  ЇаЁ ўл§®ўҐ
Їа®жҐ¤гал Џ бЄ «п, Ё¬Ґо饩 б«Ґ¤го饥 ®ЇЁб ­ЁҐ:
Procedure Name(A, B : Word);
Var
i, k : Word;
Begin
...
End {Name};

‚맮ў Їа®жҐ¤гал Є®¬ЇЁ«ЁагҐвбп ў б«Ґ¤гойго ЇаЁ¬Ґа­го
Ї®б«Ґ¤®ў вҐ«м­®бвм Ё­бвагЄжЁ©:
push A
push B {нв Ї 1 - Ї®¤Ј®в®ўЄ  ЇҐаҐ¤ ў Ґ¬ле Ї а ¬Ґва®ў}
{----------------------------------------------------------------}
push cs {з бвм ¤Ґ©бвўЁ© Ё§ call Name, ў«ЁпойЁе ­  б⥪}
push ip {ќв Їл 2 Ё 3 - б®еа ­Ґ­ЁҐ Є®­вҐЄбв  ўл§лў о饩
push bp Їа®жҐ¤гал; б®еа ­Ґ­ЁҐ бв а®© Ў §л ў б⥪Ґ}
{----------------------------------------------------------------}
mov bp,sp {­®ў п Ў §  = бв а п ўҐаиЁ­ }
sub sp,4 {­®ў п ўҐаиЁ­  = бв а п ўҐаиЁ­  + а §¬Ґа б।л}
{ќв Ї 4 - ᮧ¤ ­ЁҐ «®Є «м­®© б।л}
{----------------------------------------------------------------}

ГДДДДДДДДДДґ
‹®Є «м­лҐ і k і <- ‚ҐаиЁ­  б⥪ 
ГДДДДДДДДДДґ
ЇҐаҐ¬Ґ­­лҐ і i і
------------------ ГДДДДДДДДДДґ
‘в а п Ў §  Ё і bp і <- Єг¤  гЄ §лў Ґв sp Ї®б«Ґ
ГДДДДДДДДДДґ push bp, нв® ¦Ґ
 ¤аҐб і ip і §­ зҐ­ЁҐ sp
ГДДДДДДДДДДґ cЁ¤Ёв Ё ў bp
ў®§ўа в  і cs і
------------------ ГДДДДДДДДДДґ
ЏҐаҐ¤ ў Ґ¬лҐ і B і
ГДДДДДДДДДДґ
Ї а ¬Ґвал і A і
------------------ ГДДДДДДДДДДґ
‘⥪ ¤® ўл§®ў  -> і і

„®бвгЇ Є «®Є «м­л¬ ЇҐаҐ¬Ґ­­л¬ i Ё k ®бгйҐбвў«пҐвбп зҐаҐ§
Є®бўҐ­­го  ¤аҐб жЁо:
i - [bp - 2]
k - [bp - 4]
’ Є¦Ґ ®бгйҐбвў«пҐвбп ¤®бвгЇ Є ЇҐаҐ¤ ў Ґ¬л¬ Ї а ¬Ґва ¬:
B - [bp + 6]
A - [bp + 8]
‚®§ўа в Ё§ Їа®жҐ¤гал Є®¬ЇЁ«ЁагҐвбп ў б«Ґ¤гойго
Ї®б«Ґ¤®ў вҐ«м­®бвм Ё­бвагЄжЁ©:
mov sp,bp {ўҐаиЁ­  б⥪  ­®ў п = Ў §  б⥪  бв а п}
pop bp {Ў §  б⥪  ­®ў п Ё§ў«ҐЄ Ґвбп Ё§ б⥪ }
ret 4 {¤®Ї®«­ЁвҐ«м­л© б¤ўЁЈ sp ­  4 Ё§-§  2-ге б«®ў
ЇҐаҐ¤ ­­ле Ї а ¬Ґва®ў - Ђ Ё ‚}
Џ®б«Ґ Ї®б«Ґ¤­Ґ© Ё­бвагЄжЁЁ б⥪ ЇҐаҐе®¤Ёв ў б®бв®п­ЁҐ ¤®
ўл§®ў  Їа®жҐ¤гал Name.
я2‚лў®¤л

1. …б«Ё Їа®Ја ¬¬  ЇЁиҐвбп ­  п§лЄҐ ўлб®Є®Ј® га®ў­п ®Ў® ўбҐ¬
а ббЄ § ­­®¬ ¬®¦­® Ё ­Ґ §­ вм, е®вп ўбҐ а ў­® Ї®«Ґ§­® ®жҐ­Ёвм, ў®
зв® ®Ўе®¤Ёвбп ўл§®ў Їа®жҐ¤гал б ЇҐаҐ¤ зҐ© Ў®«ми®Ј® зЁб« 
Ї а ¬Ґва®ў Ё ᮧ¤ ­ЁҐ¬ Ў®«ми®Ј® зЁб«  «®Є «м­ле ЇҐаҐ¬Ґ­­ле. Ќ®
Ґб«Ё ў ⥪бв Їа®Ја ¬¬л ­  п§лЄҐ ўлб®Є®Ј® га®ў­п ўЄ«оз Ґвбп
Їа®жҐ¤га , ­ ЇЁб ­­ п ­   бᥬЎ«ҐаҐ, в® §­ ­ЁҐ ¬Ґе ­Ё§¬®ў
ЇҐаҐ¤ зЁ Ї а ¬Ґва®ў ­Ґ®Ўе®¤Ё¬®, в.Є. § в «ЄЁў ­ЁҐ Ї а ¬Ґва®ў
¤Ґ« Ґв Є®¬ЇЁ«пв®а,   Ё§ў«ҐЄ вм Ё­д®а¬ жЁо ЇаЁе®¤Ёвбп
Їа®Ја ¬¬Ёбвг. —в® ¬л Ё Ўг¤Ґ¬ ¤Ґ« вм ЇаЁ Ё§г祭ЁЁ б®Їа®Ја ¬¬.
2. Љ®¬ЇЁ«пв®а ўбҐЈ¤  ॠ«Ё§гҐв ­ҐЄ®в®ал© Їа®в®Є®« ®ЇҐа жЁ©
ўл§®ў  Ё ў®§ўа в . ”а Ј¬Ґ­в в Є®Ј® Їа®в®Є®«  ЇаЁўҐ¤Ґ­ ­Ё¦Ґ:
- ¤«п Var-Ї а ¬Ґва®ў ў б⥪ § в «ЄЁў Ґвбп ¤ў  б«®ў  -  ¤аҐб
ᮮ⢥вбвўго饩 ЇҐаҐ¬Ґ­­®©;
- ®зҐаҐ¤­®бвм § в «ЄЁў ­Ёп Ї а ¬Ґва®ў ў б⥪ ᮮ⢥вбвўгҐв
Ёе ЇҐаҐзЁб«Ґ­Ёо б бЇЁбЄҐ д®а¬ «м­ле Ї а ¬Ґва®ў (ў Џ бЄ «Ґ, ў ‘Ё -
­ ®Ў®а®в);
- ¤«п дг­ЄжЁЁ Ў ©в­л© १г«мв в ў®§ўа й Ґвбп ў AL,
б«®ў® - ў AX;
¤ў®©­®Ґ б«®ў® - ў DX:AX.
- ¬Ґ­миҐ, 祬 б«®ў® ў б⥪ ­Ґ § в «ЄЁў Ґвбп.
3. ’ Є Є Є ўбҐ «®Є «м­лҐ б।л ᮧ¤ овбп ­  ®¤­®¬ б⥪Ґ,
е а ЄвҐа­®© зҐав®© Їа®жҐ¤га пў«пҐвбп ў«®¦Ґ­­®бвм ўл§®ў®ў -
ў®§ўа в Їа®Ёб室Ёв ў в®зЄг ўл§®ў  ўбҐЈ¤  Ё б Ї®вҐаҐ© Є®­вҐЄбв 
ўлЇ®«­Ґ­­®© Їа®жҐ¤гал. ‘гйҐбвўгҐв ¤агЈ п б奬  ᬥ­л Є®­вҐЄбв®ў,
ЇаЁ Є®в®а®© ®в­®иҐ­ЁҐ ў«®¦Ґ­­®бвЁ ¬Ґ¦¤г Їа®жҐ¤га ¬Ё ®вбгвбвўгҐв Ё
ў®§ўа в ­Ґ Ґбвм § ўҐа襭ЁҐ ўлЇ®«­Ґ­Ёп Їа®жҐ¤гал,   в®«мЄ® ҐҐ
ЇаЁ®бв ­®ў б б®еа ­Ґ­ЁҐ¬ Є®­вҐЄбв , в Є зв® ҐҐ ўлЇ®«­Ґ­ЁҐ ¬®¦Ґв
Ўлвм Їа®¤®«¦Ґ­® б в®зЄЁ ЇаЁ®бв ­®ў . ќв® б।бвў® ­ §лў Ґвбп
б®Їа®Ја ¬¬®©, Є §­ Є®¬бвўг б ­Ё¬Ё ¬л Ё ЇҐаҐе®¤Ё¬.

я22.2. ‘®Їа®Ја ¬¬л

Џ®­пвЁҐ "б®Їа®Ја ¬¬ " ­Ґ ­ бв®«мЄ® иЁа®Є® Ё§ўҐбв­®, Є Є
"Ї®¤Їа®Ја ¬¬ ". ‘®Їа®Ја ¬¬л ЇаҐ¤бв ў«пов б®Ў®© б।бвў® ¬®¤Ґ«Ёа®-
ў ­Ёп Ё ॠ«Ё§ жЁЁ Ї а ««Ґ«Ё§¬ .
‘гвм б®Їа®Ја ¬¬ «гзиҐ ўбҐЈ® ўлпў«пҐвбп ЇаЁ Ёе б®Ї®бв ў«Ґ­ЁЁ
б Їа®жҐ¤га ¬Ё. ‚ Їа®жҐ¤га е ®ЇаҐ¤Ґ«Ґ­л ®в­®иҐ­ЁҐ ў«®¦Ґ­­®бвЁ Ё
Ї а  ­ҐбЁ¬¬ҐваЁз­ле ®ЇҐа жЁ© ‚›‡Ћ‚ Ё ‚Ћ‡‚ђЂ’. ‘®Їа®Ја ¬¬л в Є ¦Ґ
Є Є Ё Їа®жҐ¤гал ¬®Јгв ўл§лў вм ¤агЈ ¤агЈ , ­® ¬Ґ¦¤г ­Ё¬Ё ­Ґв ®в-
­®иҐ­Ёп ў«®¦Ґ­­®бвЁ,   ў¬Ґбв® ­ҐбЁ¬¬ҐваЁз­®© Ї ал ®ЇҐа жЁ© ‚›‡Ћ‚Ђ
Ё ‚Ћ‡‚ђЂ’Ђ бгйҐбвўгҐв ®¤­  ®ЇҐа жЁп, Є®в®аго з йҐ ўбҐЈ® ­ §лў ов
Џ…ђ…„Ђ’њ “ЏђЂ‚‹…Ќ€…. ’.Ґ., Ґб«Ё ®ЇаҐ¤Ґ«Ґ­л б®Їа®Ја ¬¬л а1 Ё а2,
в® ®ЇаҐ¤Ґ«Ґ­  ®ЇҐа жЁп Џ…ђ…„Ђ’њ “ЏђЂ‚‹Ќ€…(®в Є®Ј®, Є®¬г). ЏаЁ
ЇҐаҐ¤ зҐ гЇа ў«Ґ­Ёп ®в ®¤­®© б®Їа®Ја ¬¬л Є ¤агЈ®©, ўлЇ®«­Ґ­ЁҐ
ЇҐаў®© б®Їа®Ја ¬¬л ЇаЁ®бв ­ ў«Ёў Ґвбп,   ҐҐ б®бв®п­ЁҐ § Ї®¬Ё­ Ґв-
бп, в ЄЁ¬ ®Ўа §®¬, зв® Є®Ј¤  ЇаЁ®бв ­®ў«Ґ­­®© б®Їа®Ја ¬¬Ґ б­®ў 
ЇҐаҐ¤ Ґвбп гЇа ў«Ґ­ЁҐ, ®­  Їа®¤®«¦ Ґв бў®Ґ ўлЇ®«­Ґ­ЁҐ Ё¬Ґ­­® б
в®© в®зЄЁ, ­  Є®в®а®© Ўл«  ЇаЁ®бв ­®ў«Ґ­ .
‚ а §«Ёз­®© «ЁвҐа вгॠбгйҐбвўгов а §­лҐ ­®в жЁЁ ¤«п ®ЇЁб -
­Ёп б®Їа®Ја ¬¬. ‘гйҐбвўгҐв вҐа¬Ё­ "restart p" (Ља Є®ўпЄ), бгйҐбв-
ўгҐв вҐа¬Ё­ "resume p" (®г). Њл ў ¤ «м­Ґ©иҐ¬ Ўг¤Ґ¬ Ї®«м§®ў вмбп
®Ў®§­ зҐ­ЁҐ Transfer(®в Є®Ј®, Є®¬г), Є®в®а®Ґ ЁбЇ®«м§гҐвбп ЇаЁ аҐ-
 «Ё§ жЁЁ б®Їа®Ја ¬¬ ў п§лЄҐ Њ®¤г« -2, Ё Є®в®а®Ґ ¬л ЁбЇ®«м§®ў «Ё ў
ЎЁЎ«Ё®вҐз­®¬ ¬®¤г«Ґ, ЇаЁ« Ј Ґ¬®¬ Є ¬ вҐаЁ « ¬ Ї® « Ў®а в®а­л¬ а -
Ў®в ¬.
‚­Ґи­Ґ ў§ Ё¬®¤Ґ©бвўЁҐ ¤ўге б®Їа®Ја ¬¬ ¬®¦Ґв Ўлвм ®ЇЁб ­®
б«Ґ¤го饩 б奬®©:

Coroutine p1; Coroutine p2;
Begin ЪДДДДДДДДДДД>Begin
... і ...
Transfer(p1,p2);ДДДДДЩ ЪДДДДДДДДДДTransfer(p2,p1);
... <ДДДДДДДДЩ ЪДДДДДД>...
Transfer(p1,p2);ДДДДДДДДДДДДЩ ЪДДДДДTransfer(p2,p1);
... <ДДДДДДДДДДДДДЩ ...
End; End;

…б«Ё ¬л нвг б奬㠯८Ўа §гҐ¬ ў® ўаҐ¬Ґ­­го ¤Ё Ја ¬¬г ў§ Ё¬®-
¤Ґ©бвўЁп б®Їа®Ја ¬¬, в® нв  ¤Ё Ја ¬¬  Ўг¤Ґв ўлЈ«п¤Ґвм б«г¤гойЁ¬
®Ўа §®¬:

Transfer(p1,p2); Transfer(p1,p2);
Coroutine p1 ДДДДДДї ЪДДДДДДДДДДДДДДДДДДї
і ^ і
v і v
Coroutine p2 АДДДДДДДДДДДДДДДДДДЩ АДДД
Transfer(p2,p1);

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

ЏаЁ ЇҐаҐ¤ зҐ гЇа ў«Ґ­Ёп ўлЇ®«­Ґ­ЁҐ б®Їа®Ја ¬¬л ­Ґ § ўҐаи Ґв-
бп,   в®«мЄ® ЇаЁ®бв ­ ў«Ёў Ґвбп, Ё ўЇ®б«Ґ¤бвўЁЁ ¬®¦Ґв Ўлвм ў®§®Ў-
«Ґ­® б в®зЄЁ ЇаЁ®бв ­®ў . Џ®н⮬㠤«п ॠ«Ё§ жЁЁ б®Їа®Ја ¬¬ ­г¦­л
б।бвў  б®еа ­Ґ­Ёп Ё ў®ббв ­®ў«Ґ­Ёп Є®­вҐЄбв .
ђ ­ҐҐ ¬л Ј®ў®аЁ«Ё, зв® ЁбЇ®«м§®ў ­ЁҐ ®¤­®Ј® б⥪  пў«пҐвбп
ЇаЁзЁ­®© ў«®¦Ґ­­®бвЁ Їа®жҐ¤га, Ї®н⮬г б®Їа®Ја ¬¬л ॠ«Ё§говбп
Їг⥬ ЇаҐ¤®бв ў«Ґ­Ёп бў®ҐЈ® б⥪  Є ¦¤®© Ё§ ­Ёе.
‘гйҐбвўгҐв ⥪гйЁ© б⥪, в.Ґ. б⥪, ­  Є®в®ал© гЄ §лў ов аҐ-
ЈЁбвал ss:sp. ќв® б⥪ в®© б®Їа®Ја ¬¬л, Є®в®а п ўлЇ®«­пҐвбп ў
¤ ­­л© ¬®¬Ґ­в. ЏҐаҐ¤ з  гЇа ў«Ґ­Ёп б Ї®¬®ймо ®ЇҐа жЁЁ Trans-
fer(p1,p2) - нв® Ї® бгвЁ § ¬Ґ­  б⥪ .

‘ўп¦Ґ¬ б Є ¦¤®© Ё§ б®Їа®Ја ¬¬ б®Ўб⢥­­л© б⥪.

Coroutine p1; Coroutine p2;

ГДДДДДДДґ ГДДДДДДДґ
ss:sp ДДД> і ip і ss:sp ДДД> і ip і
Ї®б«Ґ ўл§. ГДДДДДДДґ ЇҐаҐ¤ ўле. ГДДДДДДДґ
Transfer і cs і Ё§ Transferі cs і
ГДДДДДДДґ ГДДДДДДДґ
ss:sp ДДД> і і ss:sp ДДД> і і
¤® ўл§®ў  Ї®б«Ґ ўле.
Transfer Ё§ Transfer

ЋЇҐа жЁп Transfer - нв® ўл§®ў Їа®жҐ¤гал, Є®в®ал© Їа®Ёб室Ёв
­  ⥪г饬 б⥪Ґ. ‚맮ў ®бгйҐбвў«пҐвбп Ё­бвагЄжЁҐ© call. ЏаЁ ўл-
§®ўҐ, ў б⥪ § ЇЁблў овбп cs Ё ip. ќв® в®зЄ  ў б®Їа®Ја ¬¬Ґ, ­ е®-
¤пй пбп ба §г ¦Ґ §  ўл§®ў®¬ Transfer. ’ҐЇҐам ў­гваЁ Їа®жҐ¤гал
Transfer ЇҐаҐЄ«озЁ¬ б⥪ ­  ¤агЈго ®Ў« бвм Ї ¬пвЁ - ­  б⥪ ¤аг-
Ј®© б®Їа®Ја ¬¬л. Ѓг¤Ґ¬ бзЁв вм, зв® ®­ ­ е®¤Ёвбп ў б®бв®п­ЁЁ, Ї®-
宦Ґ¬ ­  б⥪ ЇҐаў®© б®Їа®Ја ¬¬л. ’.Ґ. ў ­Ґ¬ ­ е®¤Ёвбп  ¤аҐб в®©
в®зЄЁ б®Їа®Ја ¬¬л, Є®в®а п ­ е®¤Ёвбп §  ўл§®ў®¬ Transfer, ЇаЁ®б-
в ­®ўЁўиЁ¬ ўлЇ®«­Ґ­ЁҐ б®Їа®Ја ¬¬л Є®Ј¤ -в® а ­миҐ. ‚®§ўа в Ё§
Їа®жҐ¤гал Transfer ®бгйҐбвў«пҐвбп Ё­бвагЄжЁҐ© ret, ­® ўлЇ®«­пҐвбп
®­ 㦥 ­  б⥪Ґ ­®ў®© б®Їа®Ја ¬¬л. €­бвагЄжЁп ret ўлв «ЄЁў Ґв Ё§
нв®Ј® ­®ў®Ј® б⥪  ў ॣЁбвал cs Ё ip  ¤аҐб в®© в®зЄЁ б®Їа®Ја ¬-
¬л, б Є®в®а®© Ё ­ ¤® Їа®¤®«¦Ёвм ўлЇ®«­Ґ­ЁҐ.
’.Є. ў­гваЁ Їа®жҐ¤гал Transfer ¬л гбв ­ ў«Ёў Ґ¬ ­®ўлҐ
§­ зҐ­Ёп ॣЁбва®ў ss:sp, гЄ §лў ойЁҐ ­  ®Ў« бвм Ї ¬пвЁ - ўҐаиЁ­г
б⥪  ў®§®Ў­®ў«по饩 ўлЇ®«­Ґ­ЁҐ б®Їа®Ја ¬¬л, в®, ў®-ЇҐаўле,
­Ґ®Ўе®¤Ё¬® ®вЄг¤ -в® Ўа вм нвЁ ­®ўлҐ §­ зҐ­Ёп,  , ў®-ўв®але, ­ ¬
­Ґ®Ўе®¤Ё¬® Ј¤Ґ-в® § Ї®¬Ё­ вм б®бв®п­ЁҐ ®Ў« бвЁ Ї ¬пвЁ - ўҐаиЁ­л
б⥪  ЇаЁ®бв ­ ў«Ёў Ґ¬®© б®Їа®Ја ¬¬л. Ћвбо¤  Ї®пў«пҐвбп бвагЄвга 
¤ ­­ле, Є®в®аго ­ §®ўҐ¬ „…‘Љђ€Џ’Ћђ б®Їа®Ја ¬¬л, Ё Є®в®а п ¤®«¦­ 
еа ­Ёвм  ¤аҐб ўҐаиЁ­л б⥪  б®Їа®Ја ¬¬л, Є®Ј¤  ®­ 
ЇаЁ®бв ­ ў«Ёў Ґвбп.
’Ґа¬Ё­ „…‘Љђ€Џ’Ћђ ®зҐ­м а бЇа®бва ­Ґ­ ў ­ гЄ е ®Ў ®ЇҐа жЁ®­-
­ле б। е. ’ ЄЁ¬ вҐа¬Ё­®¬ ®ЇЁблў ов бвагЄвгал ¤ ­­ле, еа ­пйЁҐ
Ё­д®а¬ жЁо ®Ў ®ЎкҐЄв е б।л. Љ Є Їа ўЁ«®, зҐаҐ§ ¤ҐбЄаЁЇв®ал ®бг-
йҐбвў«пҐвбп ¤®бвгЇ Є ®ЎкҐЄв ¬.
‚ ­ иҐ¬ ¬Ё­Ё¬ «м­®¬ ў аЁ ­вҐ ¤ҐбЄаЁЇв®а еа ­Ёв  ¤аҐб п祩ЄЁ
Ї ¬пвЁ, пў«по饩бп ўҐаиЁ­®© б⥪  ᮮ⢥вбвўго饩 б®Їа®Ја ¬¬л.
’®Ј¤  пб­л¬ бв ­®ўЁвбп б«Ґ¤го饥 ®ЇЁб ­ЁҐ ¤ҐбЄаЁЇв®а :

Type
TDescriptor = Record
ssreg : Word;
spreg : Word;
End {TDescriptor};

‚ ¤ «м­Ґ©иҐ¬ ¬л Ўг¤Ґ¬ гб«®¦­пвм ®ЇЁб ­ЁҐ ¤ҐбЄаЁЇв®а , ¤®Ї®«-
­пп ҐЈ® ¤ ­­л¬Ё ЇаЁ гб«®¦­Ґ­ЁЁ Ї®­пвЁп б®Їа®Ја ¬¬л.
’ ЄЁ¬ ®Ўа §®¬ Їа®жҐ¤га  Transfer ¤®«¦­  ЇЁб вм б®бв®п­ЁҐ аҐ-
ЈЁбва®ў ss:sp ў ¤ҐбЄаЁЇв®а ЇаЁ®бв ­ ў«Ёў Ґ¬®© б®Їа®Ја ¬¬л,   гб-
в ­ ў«Ёў вм ­®ўлҐ §­ зҐ­Ёп ॣЁбва®ў ss:sp Ё§ ¤ҐбЄаЁЇв®а  ў®§®Ў-
­®ў«пҐ¬®© б®Їа®Ја ¬¬л. ’.Ґ. Їа®жҐ¤гॠTransfer ¤®«¦­л Ўлвм ЇҐаҐ-
¤ ­л  ¤аҐб  ¤ўге ¤ҐбЄаЁЇв®а®ў - ¤ҐбЄаЁЇв®а  ЇаЁ®бв ­ ў«Ёў Ґ¬®©
б®Їа®Ја ¬¬л Ё ¤ҐбЄаЁЇв®а  ў®§®Ў­®ў«пҐ¬®© б®Їа®Ја ¬¬л.
‘ гзҐв®¬ ¬Ґе ­Ё§¬  ЇҐаҐ¤ зЁ Ї а ¬Ґва®ў ў Їа®жҐ¤гаг зҐаҐ§
б⥪, Є авЁ­Є  б® б⥪ ¬Ё б®Їа®Ја ¬¬ ­Ґ¬­®Ј® гб«®¦­Ёвбп:

ГДДДДДДДґ ГДДДДДДДґ
ss:sp ДДД> і bp і ss:sp ДДД> і bp і
Ї®б«Ґ ўл§. ГДДДДДДДґ ЇҐаҐ¤ ўле. ГДДДДДДДґ
Transfer і ip і Ё§ Transferі ip і
ГДДДДДДДґ ГДДДДДДДґ
і cs і і cs і
ГДДДДДДДґ ГДДДДДДДґ
іofs D2 і і і
ГДДДДДДДґ ГДДДДДДДґ
іseg D2 і і і
ГДДДДДДДґ ГДДДДДДДґ
іofs D1 і і і
ГДДДДДДДґ ГДДДДДДДґ
іseg D1 і і і
ГДДДДДДДґ ГДДДДДДДґ
ss:sp ДДД> і і ss:sp ДДД> і і
¤® ўл§®ў  Transfer Ї®б«Ґ ўле. Ё§ Transfer

‡¤Ґбм зҐаҐ§ D1 Ё D2 ®Ў®§­ зҐ­л ¤ҐбЄаЁЇв®ал б®Їа®Ја ¬¬ а1 Ё а2.
’ ЄЁ¬ ®Ўа §®¬ б®Їа®Ја ¬¬  Ї®¬Ё¬® б®Ўб⢥­­®Ј® б⥪  е а ЄвҐаЁ§г-
Ґвбп ҐйҐ Ё ­ «ЁзЁҐ¬ ¤ҐбЄаЁЇв®а , еа ­п饣® б®бв®п­ЁҐ нв®Ј® б⥪ .
Соседние файлы в папке Операционные среды АСОИУ