Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
- 8 -
3. ‘ҐЈ¬Ґв жЁп Їа®Ја ¬¬л.
Џа®Ја ¬¬ п§лЄҐ бᥬЎ«Ґа б®бв®Ёв Ё§
Ї®б«Ґ¤®ў ⥫м®бвЁ Їа®Ја ¬¬ле ᥣ¬Ґв®ў, § Є зЁў о饩бп
¤ЁаҐЄвЁў®© END. Ќ з «® Є ¦¤®Ј® ᥣ¬Ґв ®Ў®§ з Ґвбп
¤ЁаҐЄвЁў®© SEGMENT, Є®Ґж - ¤ЁаҐЄвЁў®© ENDS.
‚ Є ¦¤®¬ ᥣ¬ҐвҐ ЇаЁ Ї®¬®йЁ ¤ЁаҐЄвЁўл ASSUME ¬®Јгв
Ўлвм ®ЇаҐ¤Ґ«Ґл ЁбЇ®«м§гҐ¬лҐ Ї® 㬮«з Ёо ¤«п ¤аҐб жЁЁ
н«Ґ¬Ґв®ў Їа®Ја ¬¬л ॣЁбвал ᥣ¬Ґв .
‚ Є ¦¤®¬ ᥣ¬ҐвҐ ¬®Јгв Ўлвм ўл¤Ґ«Ґл бЇҐжЁ «млҐ
Їа®Ја ¬¬лҐ Ґ¤ЁЁжл (Їа®жҐ¤гал), Ї®§ў®«пойЁҐ ЁбЇ®«м§®ў вм
з бвм Їа®Ја ¬¬®Ј® Є®¤ ¬®Ј®Єа в® ЎҐ§ ҐЈ® ¤гЎ«Ёа®ў Ёп ў
а §ле з бвпе Їа®Ја ¬¬л. Џа®жҐ¤гал ®Ўлз® ўЄ«озҐл ў бЁб⥬г
¤аҐб жЁЁ ᥣ¬Ґв . Ќ з «® Ё Є®Ґж Їа®жҐ¤гал ®ЇаҐ¤Ґ«повбп
¤ЁаҐЄвЁў ¬Ё PROC Ё ENDP ᮮ⢥вб⢥®.
‘ҐЈ¬Ґвл ¬®Јгв Ўлвм ®ЎкҐ¤ЁҐл ў ЈагЇЇг ЇаЁ Ї®¬®йЁ
¤ЁаҐЄвЁўл GROUP.
„ЁаҐЄвЁўл ORG Ё EVEN Ї®§ў®«пов гЇа ў«пвм ¤аҐб ¬Ё
а §¬ҐйҐЁп ЁбвагЄжЁ© Їа®жҐбб®а .
ќвЁ ¤ЁаҐЄвЁўл Ї®¤а®ЎҐҐ ®ЇЁб л ў б«Ґ¤гойЁе а §¤Ґ« е.
3.1. „ЁаҐЄвЁўл SEGMENT Ё ENDS.
‘Ёв ЄбЁб:
Ё¬п SEGMENT [[ўла ўЁў ЁҐ]] [[Є®¬ЎЁ жЁп]] [['Є« бб']]
Ё¬п ENDS
„ЁаҐЄвЁўл SEGMENT Ё ENDS ®в¬Ґз ов ᮮ⢥вб⢥®
з «® Ё Є®Ґж Їа®Ја ¬¬®Ј® ᥣ¬Ґв Ё ¤®«¦л Ўлвм Ї®¬ҐзҐл
®¤Ё¬ Ё ⥬ ¦Ґ Ё¬ҐҐ¬, Є®в®а®Ґ Ё бзЁв Ґвбп Ё¬ҐҐ¬ ᥣ¬Ґв .
Џа®Ја ¬¬л© ᥣ¬Ґв ЇаҐ¤бв ў«пҐв б®Ў®© Ї®б«Ґ¤®ў ⥫м®бвм
ЁбвагЄжЁ© Ё/Ё«Ё Ї®«Ґ© ¤ ле, ¤аҐб㥬ле ®в®бЁвҐ«м®
®¤®Ј® ॣЁбва ᥣ¬Ґв . €¬п ᥣ¬Ґв ¤®«¦® Ўлвм
гЁЄ «мл¬ Ё ¬®¦Ґв Ї®пў«пвмбп ў Ї®«Ґ ¬ҐвЄЁ в®«мЄ® «Ёим ў
¤агЈ®¬ ЇаҐ¤«®¦ҐЁЁ SEGMENT. ‚ᥠ¤ЁаҐЄвЁўл SEGMENT б ®¤Ё¬ Ё
⥬ ¦Ґ Ё¬ҐҐ¬ ®Ў®§ з о⠯த®«¦ҐЁҐ ®¤®Ј® Ё в®Ј® ¦Ґ
ᥣ¬Ґв . ЏаЁ н⮬ б«Ґ¤гҐв Ї®¬Ёвм, зв® Ї а ¬Ґвал ўбҐе
¤ЁаҐЄвЁў SEGMENT, ®ЇаҐ¤Ґ«пойЁе ®¤Ё Ё в®в ¦Ґ Їа®Ја ¬¬л©
ᥣ¬Ґв, Ґ ¤®«¦л Їа®вЁў®аҐзЁвм ¤агЈ ¤агЈг.
Џ а ¬Ґвал ўла ўЁў ЁҐ, Є®¬ЎЁ жЁп Ё Є« бб ¤ЁаҐЄвЁўл
- 9 -
SEGMENT § ¤ ов Ёд®а¬ жЁо ¤«п «ЁЄҐа . ЋЁ ¤®«¦л
Є®¤Ёа®ў вмбп ў гЄ § ®© Ї®б«Ґ¤®ў ⥫м®бвЁ, ® ¬®Јгв Ўлвм
®ЇгйҐл ў Їа®Ё§ў®«м®© Є®¬ЎЁ жЁЁ.
‚ла ўЁў ЁҐ ®ЇаҐ¤Ґ«пҐв Ја Ёжг ¤аҐб , зЁ п
б Є®в®а®© ᥣ¬Ґв Ўг¤Ґв § Јаг¦ вмбп ў Ї ¬пвм. Њ®Јгв Ўлвм
§ ¤ л б«Ґ¤гойЁҐ § 票п:
BYTE - ЁбЇ®«м§®ў вм «оЎго Ја Ёжг
WORD - Ја Ёж б«®ў (2 Ў ©в )
PARA - Ја Ёж Ї а Ја д (16 Ў ©в®ў)
PAGE - Ја Ёж бва Ёжл (256 Ў ©в®ў)
…б«Ё ўла ўЁў ЁҐ Ґ гЄ § ®, ЇаҐ¤Ї®« Ј Ґвбп PARA.
‘«Ґ¤гҐв Ї®¬Ёвм, зв® в®зл© ¤аҐб з « ᥣ¬Ґв ¤®
ҐЈ® § Јаг§ЄЁ ў Ї ¬пвм ҐЁ§ўҐбвҐ. ’ЁЇ ўла ўЁў Ёп в®«мЄ®
Є« ¤лў Ґв ҐЈ® ®Ја ЁзҐЁҐ.
’ЁЇ Є®¬ЎЁ жЁЁ ®ЇаҐ¤Ґ«пҐв ў®§¬®¦®бвм Ё бЇ®б®Ўл
®ЎкҐ¤ЁҐЁп Їа®Ја ¬¬ле ᥣ¬Ґв®ў, Ё¬ҐойЁе ®¤® Ё¬п. Њ®Јгв
Ўлвм гЄ § л б«Ґ¤гойЁҐ § 票п:
PUBLIC - ‚ᥠᥣ¬Ґвл б ®¤Ё¬ Ё ⥬ ¦Ґ Ё¬ҐҐ¬ ®ЎкҐ¤Ёповбп
ў ®¤Ё ҐЇаҐалўл© ᥣ¬Ґв. ‚ᥠЁбвагЄжЁЁ Ё Ї®«п
¤ ле ®ў®Ј® ᥣ¬Ґв Ўг¤гв ¤аҐб®ў вмбп
®в®бЁвҐ«м® ®¤®Ј® ॣЁбва ᥣ¬Ґв , ўбҐ
б¬ҐйҐЁп Ўг¤гв ўлзЁб«пвмбп ®в®бЁвҐ«м® з «
нв®Ј® ᥣ¬Ґв .
STACK - ‚ᥠᥣ¬Ґвл б ®¤Ё¬ Ё ⥬ ¦Ґ Ё¬ҐҐ¬ ®ЎкҐ¤Ёповбп
ў ®¤Ё ҐЇаҐалўл© ᥣ¬Ґв. ќв®в вЁЇ Є®¬ЎЁ жЁЁ
®в«Ёз Ґвбп ®в PUBLIC «Ёим ⥬, зв® ¤аҐб жЁп ў
®ў®¬ ᥣ¬ҐвҐ Ўг¤Ґв ўҐбвЁбм ®в®бЁвҐ«м®
ॣЁбва SS; ॣЁбва SP ЇаЁ н⮬ гбв ў«Ёў Ґвбп
Є®Ґж ᥣ¬Ґв . ’ Є®© вЁЇ Є®¬ЎЁ жЁЁ ®Ўлз®
Ё¬Ґов ᥣ¬Ґвл б⥪ . ’ЁЇ Є®¬ЎЁ ©ЁЁ STACK
ўв®¬ вЁзҐбЄЁ ®ЎҐбЇҐзЁў Ґв ЁЁжЁ «Ё§ жЁо
ॣЁбва®ў SS Ё SP, Ё Ї®«м§®ў вҐ«о Ґ®Ўп§ ⥫м®
ўЄ«оз вм ў бў®о Їа®Ја ¬¬г ЁбвагЄжЁЁ ¤«п
гбв ®ўЄЁ нвЁе ॣЁбва®ў.
COMMON - ‚ᥠ®¤®Ё¬ҐлҐ ᥣ¬Ґвл нв®Ј® Є« бб Ўг¤гв
§ Јаг¦ вмбп ў Ї ¬пвм, зЁ п б ®¤®Ј® ¤аҐб .
’ ЄЁ¬ бЇ®б®Ў®¬ ¬®¦® д®а¬Ёа®ў вм ®ўҐа«Ґ©лҐ
Їа®Ја ¬¬л. „«Ё ®Ў« бвЁ § Јаг§ЄЁ а ў ¤«ЁҐ
¬ ЄбЁ¬ «м®Ј® Ї® ®ЎкҐ¬г ᥣ¬Ґв . ‚ᥠ¤аҐб ў
нвЁе ᥣ¬Ґв е ўлзЁб«повбп ®в®бЁвҐ«м® ®¤®Ј®
Ў §®ў®Ј® ¤аҐб . …б«Ё ҐЄ®в®алҐ ¤ лҐ ®Ўкпў«Ґл
ў Ў®«ҐҐ, 祬 ®¤®¬, ᥣ¬ҐвҐ б Є®ЄаҐвл¬ Ё¬ҐҐ¬
Ё вЁЇ®¬ Є®¬ЎЁ жЁЁ COMMON, ¤ лҐ, ®Ўкпў«ҐлҐ
Ї®б«Ґ¤Ё¬Ё, § ¬Ґй о⠢ᥠЇаҐ¤л¤гйЁҐ.
MEMORY - „«п Microsoft 8086 Object Linker (LINK) Ї®«®бвмо
б®ўЇ ¤ Ґв б вЁЇ®¬ PUBLIC. MASM ®ЎҐбЇҐзЁў Ґв
®в¤Ґ«мл© вЁЇ Є®¬ЎЁ жЁЁ MEMORY ¤«п б®ў¬ҐбвЁ¬®бвЁ
б Їа®Ја ¬¬ ¬Ё LINK, а §«Ёз ойЁ¬Ё нвЁ вЁЇл
Є®¬ЎЁ жЁЁ.
AT ¤аҐб - ‚ᥠ¬ҐвЄЁ Ё ¤аҐблҐ ЇҐаҐ¬ҐлҐ ᥣ¬Ґв ¤®«¦л
Ўлвм ўлзЁб«Ґл ®в®бЁвҐ«м® гЄ § ®Ј® ¤аҐб .
Ђ¤аҐб ¬®¦Ґв Ўлвм ЇаҐ¤бв ў«Ґ «оЎл¬ ¤®ЇгбвЁ¬л¬
- 10 -
ўла ¦ҐЁҐ¬, Ґ ᮤҐа¦ йЁ¬ ббл«®Є ўЇҐаҐ¤. ‘ҐЈ¬Ґв
б нвЁ¬ вЁЇ®¬ Є®¬ЎЁ жЁЁ ®Ўлз® Ґ ᮤҐа¦Ёв
Їа®Ја ¬¬®Ј® Є®¤ Ё«Ё ЁЁжЁ «Ё§Ёа㥬ле ¤ ле,
ўЄ«оз Ґв ў бҐЎп ¤аҐблҐ § 票п, дЁЄбЁа®ў лҐ
¤«п ўлзЁб«ЁвҐ«м®© ¬ иЁл ( ЇаЁ¬Ґа, ¤аҐб ЎгдҐа
нЄа ).
…б«Ё вЁЇ Є®¬ЎЁ жЁЁ Ґ гЄ § , ᥣ¬Ґв Ё б 祬 Ґ
®ЎкҐ¤ЁпҐвбп Ё а бб¬ ваЁў Ґвбп Є Є ®в¤Ґ«м п Їа®Ја ¬¬ п
Ґ¤ЁЁж .
Љ« бб ᥣ¬Ґв ®ЇаҐ¤Ґ«пҐв Ї®а冷Є б«Ґ¤®ў Ёп ᥣ¬Ґв®ў
ў Ї ¬пвЁ. ‘ҐЈ¬Ґвл ®¤®Ј® Є« бб § Јаг¦ овбп ў Ї ¬пвм ®¤Ё
Ї®б«Ґ ¤агЈ®Ј® ¤® в®Ј®, Є Є згв § Јаг¦ вмбп ᥣ¬Ґвл
¤агЈ®Ј® Є« бб .
‚ Є зҐб⢥ Є« бб ᥣ¬Ґв ¬®¦Ґв Ўлвм гЄ § «оЎ®©
Ё¤ҐвЁдЁЄ в®а, Є®в®ал© а бЇа®бва повбп ўбҐ вॡ®ў Ёп Ё
®Ја ЁзҐЁп п§лЄ бᥬЎ«Ґа (ў ⮬ зЁб«Ґ гб«®ўЁп
згўб⢨⥫м®бвЁ Є ॣЁбваг). Џ®бЄ®«мЄг Є« бб ᥣ¬Ґв
а бб¬ ваЁў Ґвбп Є Є Ё¤ҐвЁдЁЄ в®а, ® Ґ ¬®¦Ґв Ўлвм
®ЇаҐ¤Ґ«Ґ Ј¤Ґ-«ЁЎ® ҐйҐ ў Їа®Ја ¬¬Ґ.
…б«Ё Є« бб Ґ гЄ § , LINK Є®ЇЁагҐв ᥣ¬Ґвл ў
ЁбЇ®«ЁвҐ«мл© д ©« ў в®© Ї®б«Ґ¤®ў ⥫м®бвЁ, ў Є®в®а®© ®Ё
а бЇ®«®¦Ґл ў ®ЎкҐЄв®¬ д ©«Ґ. ќв Ї®б«Ґ¤®ў ⥫м®бвм
б®еа пҐвбп ¤® вҐе Ї®а, Ї®Є LINK Ґ ®Ў аг¦Ёв 2 Ё«Ё Ў®«ҐҐ
ᥣ¬Ґв ®¤®Ј® Є« бб , Ї®б«Ґ 祣® LINK зЁ Ґв ®ЎкҐ¤ЁҐЁҐ
ᥣ¬Ґв®ў. ‘ҐЈ¬Ґвл ®¤®Ј® Є« бб Є®ЇЁаговбп ў
Ї®б«Ґ¤®ў ⥫млҐ Ў«®ЄЁ ЁбЇ®«ЁвҐ«м®Ј® д ©« .
‚ᥠᥣ¬Ґвл Ё¬Ґов Є« бб. ‘ҐЈ¬Ґвл, ¤«п Є®в®але Є« бб
Ґ гЄ § , бзЁв овбп ЇаЁ ¤«Ґ¦ йЁ¬Ё Є Є« ббг б Їгбвл¬ Ё¬ҐҐ¬
Ё Є®ЇЁаговбп ў Ї®б«Ґ¤®ў ⥫млҐ Ў«®ЄЁ Ї ¬пвЁ ў¬Ґб⥠б в ЄЁ¬Ё
¦Ґ ᥣ¬Ґв ¬Ё.
—Ёб«® ᥣ¬Ґв®ў, ЇаЁ ¤«Ґ¦ йЁе Є ®¤®¬г Є« ббг,
Ґ®Ја ЁзҐ®, ® Ёе б㬬 ал© ®ЎкҐ¬ Ґ ¤®«¦Ґ ЇаҐўли вм 64Љ.
…б«Ё ўе®¤ Їа®Ја ¬¬л LINK Ї®¤ Ґвбп ҐбЄ®«мЄ®
®ЎкҐЄвле д ©«®ў, Їа ўЁ«м®Ґ Є®¤Ёа®ў ЁҐ Є« бб®ў ᥣ¬Ґв®ў
ў®®ЎйҐ Ј®ў®ап Ґ ®ЎҐбЇҐзЁў Ґв Їа ўЁ«мго Ї®б«Ґ¤®ў ⥫м®бвм
ᥣ¬Ґв®ў ў ЁбЇ®«ЁвҐ«м®¬ д ©«Ґ, в.Є. нв
Ї®б«Ґ¤®ў ⥫м®бвм ў н⮬ б«гз Ґ § ўЁбЁв ҐйҐ Ё ®в
Ї®б«Ґ¤®ў ⥫м®бвЁ ®ЎкҐЄвле д ©«®ў ў Є®¬ ¤®© бва®ЄҐ.
Џгбвм, ЇаЁ¬Ґа, LINK ®Ўа Ў влў Ґв 2 ®ЎкҐЄвле д ©« , 1-© Ё§
Є®в®але ᮤҐа¦Ёв 2 ᥣ¬Ґв б Є« бб ¬Ё CODE Ё STACK, 2-© -
®¤Ё ᥣ¬Ґв Є« бб DATA. ‚ ЁбЇ®«ЁвҐ«м®¬ д ©«Ґ ᥣ¬Ґвл
ўбҐЈ¤ Ўг¤гв а бЇ®«®¦Ґл ў Ї®б«Ґ¤®ў ⥫м®бвЁ CODE, STACK,
DATA. …б«Ё, ЇаЁ¬Ґа, Їа®Ја ¬¬Ёбвг Ґ®Ўе®¤Ё¬®, зв®Ўл
ᥣ¬Ґвл а бЇ®« Ј «Ёбм ў Ї®б«Ґ¤®ў ⥫м®бвЁ CODE, DATA,
STACK, Ґ¬г б«Ґ¤гҐв ᮧ¤ вм ®ЎкҐЄвл© д ©«, ᮤҐа¦ йЁ©
дЁЄвЁўлҐ бҐЈ¬Ґвл б ⥬Ё ¦Ґ Ё¬Ґ ¬Ё Ё ⥬Ё ¦Ґ Є« бб ¬Ё, ®
а бЇ®«®¦ҐлҐ ў 㦮¬ Ґ¬г Ї®ап¤ЄҐ, Ё ў Є®¬ ¤®© бва®ЄҐ
§ ЇгбЄ LINK гЄ § вм ҐЈ® ЇҐаўл¬. €б室 п Їа®Ја ¬¬ ,
ᮮ⢥вбвўгой п в Є®¬г ®ЎкҐЄв®¬г д ©«г ¬®¦Ґв Ё¬Ґвм
б«Ґ¤гойЁ© ўЁ¤:
code SEGMENT PARA PUBLIC 'CODE'
code ENDS
- 11 -
data SEGMENT PARA PUBLIC 'DATA'
data ENDS
stack SEGMENT PARA STACK 'STACK'
stack ENDS
ќв®в ЇаЁҐ¬ Ґ ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў ¤«п Їа®Ја ¬¬
п§лЄ е C, FORTRAN, PASCAL Ё BASIC, в.Є. Є®¬ЇЁ«пв®ал нвЁе
п§лЄ®ў б«Ґ¤гов ®ЇаҐ¤Ґ«Ґл¬ б®Ј« иҐЁп¬ ® Ї®ап¤ЄҐ ᥣ¬Ґв®ў,
Є®в®ал© Ґ б«Ґ¤гҐв аги вм.
„агЈЁ¬ бЇ®б®Ў®¬ гЇа ў«ҐЁп Ї®б«Ґ¤®ў ⥫м®бвмо
ᥣ¬Ґв®ў пў«пҐвбп Є®¤Ёа®ў ЁҐ ®ЇжЁЁ /A MASM, Є®в®а п
ЇаҐ¤ЇЁблў Ґв MASM а бЇ®« Ј вм ᥣ¬Ґвл ў ®ЎкҐЄв®¬ д ©«Ґ ў
«д ўЁв®¬ Ї®ап¤ЄҐ. ‘®зҐв ЁҐ ®ЇжЁЁ /A б д®а¬Ёа®ў ЁҐ¬
Ї®б«Ґ¤®ў вҐм®бвЁ дЁЄвЁўле ᥣ¬Ґв®ў Ї®§ў®«пҐв
ॠ«Ё§®ўлў вм ¤®ў®«м® б«®¦лҐ бва ⥣ЁЁ гЇа ў«ҐЁп
бвагЄвга®© ЁбЇ®«ЁвҐ«м®Ј® д ©« .
‚ ҐЄ®в®але а Ёе ўҐабЁпе MASM ®ЇжЁп /A ўЄ«озҐ Ї®
㬮«з Ёо.
„®Ї®«ЁвҐ«м п Ёд®а¬ жЁп ® ўла ўЁў ЁЁ Ё ®ЎкҐ¤ЁҐЁЁ
ᥣ¬Ґв®ў Їа®Ја ¬¬®© LINK ᮤҐа¦Ёвбп ў агЄ®ў®¤б⢥ "‘Ёб⥬
Їа®Ја ¬Ёа®ў Ёп ¬ Єа® бᥬЎ«ҐаҐ MS-DOS. — бвм 1. Џ ЄҐв
¬ Єа® бᥬЎ«Ґа MS-DOS", Ї.Ї. 3.4.1 Ё 3.4.3.
3.2. „ЁаҐЄвЁўл PROC Ё ENDP.
„ЁаҐЄвЁўл PROC Ё ENDP б«г¦ в ¤«п ®ЇаҐ¤Ґ«ҐЁп
Їа®жҐ¤гал. Џа®жҐ¤га ЇаҐ¤бв ў«пҐв б®Ў®© Ў®а ЁбвагЄжЁ© Ё
¤ЁаҐЄвЁў, ®Ўа §гойЁе ҐЄ®в®аго Ї®¤Їа®Ја ¬¬г ў а ¬Є е
Є Є®Ј®-«ЁЎ® ᥣ¬Ґв .
Џа®жҐ¤га Ё¬ҐҐв б«Ґ¤гойЁ© ўЁ¤:
Ё¬п PROC [[а ббв®пЁҐ]]
...
ЇаҐ¤«®¦ҐЁп
...
Ё¬п ENDP
„ЁаҐЄвЁўл PROC Ё ENDP ®Ў®§ з ов ᮮ⢥вб⢥® з «®
Ё Є®Ґж Їа®жҐ¤гал Ё ¤®«¦л Ўлвм Ї®¬ҐзҐл ®¤Ё¬ Ё ⥬ ¦Ґ
Ё¬ҐҐ¬, Є®в®а®Ґ бзЁв Ґвбп Ё¬ҐҐ¬ Їа®жҐ¤гал.
ЌҐ®Ўп§ ⥫쮥 а ббв®пЁҐ ¬®¦Ґв ЇаЁЁ¬ вм § 票п FAR
Ё NEAR. …б«Ё нв®в Ї а ¬Ґва ®ЇгйҐ, ЇаҐ¤Ї®« Ј Ґвбп NEAR.
€¬п Їа®жҐ¤гал Ё¬ҐҐв ваЁЎгвл ¬ҐвЄЁ Ё ¬®¦Ґв Ўлвм
ЁбЇ®«м§®ў ® Є Є ®ЇҐа ¤ ў ЁбвагЄжЁпе ЇҐаҐе®¤ , ўл§®ў е Ё«Ё
жЁЄ« е.
‚®§ўа в Ё§ Їа®жҐ¤гал ¤®«¦Ґ Ўлвм ўлЇ®«Ґ ЁбвагЄжЁҐ©
RET. ЏаЁ н⮬ б«Ґ¤гҐв Ї®¬Ёвм, зв® ¤аҐб ў®§ўа в ўлЎЁа Ґвбп
Ё§ б⥪ (ў ᮮ⢥вбвўЁЁ б® § 票ﬨ ॣЁбва®ў SS Ё SP).
„«п Їа®жҐ¤га б а ббв®пЁҐ¬ NEAR ¤аҐб ў®§ўа в б®бв®Ёв
- 12 -
в®«мЄ® Ё§ б¬ҐйҐЁп Ё § Ё¬ Ґв ў б⥪Ґ 2 Ў ©в . „«п
FAR-Їа®жҐ¤га ® § Ё¬ Ґв 4 Ў ©в б⥪ , ўЄ«оз п ў ᥡп
Ў §®ўл© ¤аҐб (ᮤҐа¦Ё¬®Ґ ॣЁбва ᥣ¬Ґв ) Ё ᬥ饨Ґ.
„®ЇгбЄ Ґвбп ў«®¦Ґ®бвм Їа®жҐ¤га.
Џа®жҐ¤гॠ¬®Јгв Ўлвм ЇҐаҐ¤ л Ї а ¬Ґвал. ‚®®ЎйҐ
Ј®ў®ап, ЇҐаҐ¤ з Ї а ¬Ґва®ў Ё Ёе а бЇ®§ ў ЁҐ ў Їа®жҐ¤гаҐ
ў®§« Ј Ґвбп Їа®Ја ¬¬Ёбв . Ќ® ЇаЁ б®Ў«о¤ҐЁЁ бв ¤ авле
б®Ј« 襨©, ЇаЁпвле ў п§лЄ е ўлб®Є®Ј® га®ўп, Ї а ¬Ґвал
Їа®жҐ¤гал ¬®Јгв Ўлвм ®вб«Ґ¦Ґл Є®¬ ¤®© ва ббЁа®ўЄЁ б⥪ K
SYMDEB ("‘Ёб⥬ Їа®Ја ¬¬Ёа®ў Ёп ¬ Єа® бᥬЎ«ҐаҐ MS-DOS.
— бвм 1. Џ ЄҐв ¬ Єа® бᥬЎ«Ґа ", Ї.4.5.28).
‘®Ј« б® бв ¤ авл¬ б®Ј« иҐЁп¬ Ї а ¬Ґвал а §¬Ґй овбп
ў б⥪Ґ, ўҐае Є®в®а®Ј® ®ЇаҐ¤Ґ«пҐвбп ᮤҐа¦Ё¬л¬ ॣЁбва®ў SP
Ё SS.
ЏаЁ¬Ґа ЇҐаҐ¤ зЁ Ї а ¬Ґва®ў:
...
PUSH AX ; 2-© Ї а ¬Ґва
PUSH BX ; 1-© Ї а ¬Ґва
CALL addup
ADD SP,4 ; гЁз⮦ҐЁҐ Ї а ¬Ґва®ў
...
addup PROC NEAR ; ¤аҐб ў®§ўа в ¤«п NEAR - 2 Ў ©в
PUSH BP ; б®еа ҐЁҐ Ў §®ў®Ј® гЄ § ⥫п
MOV BP,SP ; § Јаг§Є Ў §®ў®Ј® ॣЁбва
MOV BX,[BP+4] ; ¤аҐб 1-Ј® Ї а ¬Ґва
MOV AX,[BP+6] ; ¤аҐб 2-Ј® Ї а ¬Ґва
...
POP BP
RET
addup ENDP
€§ нв®Ј® ЇаЁ¬Ґа пб®, зв® ¤аҐб ў®§ўа в § Ї®¬Ё Ґвбп
ў ўҐаегиЄҐ б⥪ ЇҐаҐ¤ Ї а ¬Ґва ¬Ё (б⥪ "а бвҐв" ®в Ў®«миЁе
¤аҐб®ў Є ¬ «л¬).
…б«Ё Ўл Їа®жҐ¤га бЇҐжЁдЁжЁа®ў « а ббв®пЁҐ FAR,
¤аҐб ў®§ўа в § п« Ўл 4 Ў ©в , ᬥ饨Ґ ¤«п 1-Ј®
Ї а ¬Ґва б®бв ўЁ«® Ўл 6 Ў ©в®ў.
3.3. „ЁаҐЄвЁў ASSUME.
‘Ёв ЄбЁб:
ASSUME ॣЁбва-ᥣ¬Ґв :Ё¬п-ᥣ¬Ґв ...
ASSUME NOTHING
„ЁаҐЄвЁў ASSUME гбв ў«Ёў Ґв ॣЁбва ᥣ¬Ґв ў
Є зҐб⢥ г¬ «зЁў Ґ¬®Ј® ॣЁбва ᥣ¬Ґв ¤«п ¤аҐб жЁЁ ¬Ґв®Є
Ё ЇҐаҐ¬Ґле ў гЄ § ®¬ ᥣ¬ҐвҐ Ё«Ё ЈагЇЇҐ. Џ®б«Ґ¤гойЁҐ
ббл«ЄЁ Є ¬ҐвЄҐ Ё«Ё ЇҐаҐ¬Ґ®© ЇаЁ ®вбгвбвўЁЁ пўле гЄ § Ё©
- 13 -
а §аҐи овбп ®в®бЁвҐ«м® ¤ ®Ј® ॣЁбва ᥣ¬Ґв .
‚ Є зҐб⢥ ॣЁбва ᥣ¬Ґв ¬®Јгв Ўлвм гЄ § л CS,
DS, SS Ё«Ё ES.
‚ Є зҐб⢥ Ё¬ҐЁ ᥣ¬Ґв ¬®¦Ґв Ўлвм бЇҐжЁдЁжЁа®ў ®:
1. €¬п ᥣ¬Ґв , ЇаҐ¤ў аЁвҐ«м® ®ЇаҐ¤Ґ«Ґ®Ґ
¤ЁаҐЄвЁў®© SEGMENT.
2. €¬п ЈагЇЇл, ЇаҐ¤ў аЁвҐ«м® ®ЇаҐ¤Ґ«Ґ®Ґ ¤ЁаҐЄвЁў®©
GROUP.
3. Љ«о祢®Ґ б«®ў® NOTHING.
Ќ «ЁзЁҐ Є«о祢®Ј® б«®ў NOTHING ®в¬ҐпҐв ⥪гйЁ© ўлЎ®а
Є®ЄаҐв®Ј® ॣЁбва ᥣ¬Ґв Ё«Ё ⥪гйЁ© ўлЎ®а ўбҐе
ॣЁбва®ў ᥣ¬Ґв (¤«п ўв®а®© д®а¬л ¤ЁаҐЄвЁўл).
‚лЎ®а ॣЁбва ᥣ¬Ґв Ї® 㬮«з Ёо ў ®в¤Ґ«м®¬
ЇаҐ¤«®¦ҐЁЁ п§лЄ бᥬЎ«Ґа ¬®¦Ґв Ўлвм ®в¬ҐҐ ЇаЁ Ї®¬®йЁ
®ЇҐа в®а ЇҐаҐЄ«о票п ᥣ¬Ґв (:) ("‘Ёб⥬
Їа®Ја ¬¬Ёа®ў Ёп ¬ Єа® бᥬЎ«ҐаҐ MS-DOS. — бвм 2.
‚ўҐ¤ҐЁҐ ў п§лЄ бᥬЎ«Ґа ", Ї.4.2).
3.4. „ЁаҐЄвЁў GROUP.
‘Ёв ЄбЁб:
Ё¬п GROUP Ё¬п-ᥣ¬Ґв ,...
„ЁаҐЄвЁў GROUP ®Ў®§ з Ґв, зв® ®¤Ё Ё«Ё ҐбЄ®«мЄ®
ᥣ¬Ґв®ў б гЄ § л¬Ё Ё¬Ґ ¬Ё «®ЈЁзҐбЄЁ ®ЎкҐ¤Ёповбп ў
ЈагЇЇг б ¤ л¬ Ё¬ҐҐ¬, зв® Ї®§ў®«пҐв ¤аҐб®ў вм ўбҐ ¬ҐвЄЁ Ё
ЇҐаҐ¬ҐлҐ ў нвЁе ᥣ¬Ґв е ®в®бЁвҐ«м® з « ЈагЇЇл, Ґ
з « ᮤҐа¦ 饣® Ёе ᥣ¬Ґв . €¬п-ᥣ¬Ґв ¤®«¦® Ўлвм
Ё¬ҐҐ¬ ᥣ¬Ґв , ®ЇаҐ¤Ґ«Ґ®Ј® ¤ЁаҐЄвЁў®© SEGMENT, Ё«Ё
SEG-ўла ¦ҐЁҐ¬ ("‘Ёб⥬ Їа®Ја ¬¬Ёа®ў Ёп ¬ Єа® бᥬЎ«ҐаҐ
MS-DOS. — бвм 2. ‚ўҐ¤ҐЁҐ ў п§лЄ бᥬЎ«Ґа ", Ї.4.2). Ћ®
¤®«¦® Ўлвм гЁЄ «мл¬.
„ЁаҐЄвЁў GROUP Ґ ў«ЁпҐв Ї®а冷Є § Јаг§ЄЁ
ᥣ¬Ґв®ў, Є®в®ал© § ўЁбЁв ®в Є« бб®ў ᥣ¬Ґв®ў Ё Ёе
а бЇ®«®¦ҐЁп ў ®ЎкҐЄв®¬ д ©«Ґ.
‘ҐЈ¬Ґвл ®¤®© ЈагЇЇл Ґ ®Ўп§ вҐ«м® Ўг¤гв § Ё¬ вм
ҐЇаҐалўго ®Ў« бвм Ї ¬пвЁ. ЋЁ ¬®Јгв Ўлвм ЇҐаҐ¬Ґи л б
ᥣ¬Ґв ¬Ё, Ґ ЇаЁ ¤«Ґ¦ йЁ¬Ё нв®© ЈагЇЇҐ. Ћ¤ Є®,
а ббв®пЁҐ ў Ў ©в е ¬Ґ¦¤г ЇҐаўл¬ Ў ©в®¬ ЇҐаў®Ј® ᥣ¬Ґв
ЈагЇЇл Ё Ї®б«Ґ¤Ё¬ Ў ©в®¬ Ї®б«Ґ¤ҐЈ® ᥣ¬Ґв ЈагЇЇл Ґ
¤®«¦® ЇаҐўли вм 64Љ. ’ ЄЁ¬ ®Ўа §®¬, Ґб«Ё ᥣ¬Ґвл ЈагЇЇл
а бЇ®«®¦Ґл Ї®б«Ґ¤®ў ⥫м®, ЈагЇЇ ¬®¦Ґв § Ё¬ вм ¤® 64Љ
®ЇҐа вЁў®© Ї ¬пвЁ.
€¬Ґ ЈагЇЇ ¬®Јгв ЁбЇ®«м§®ў вмбп ў ¤ЁаҐЄвЁўҐ ASSUME
(Ї.3.3) Ё ў Є зҐб⢥ ЇаҐдЁЄб ®ЇҐа ¤ ®ЇҐа в®а
ЇҐаҐЄ«о票п ᥣ¬Ґв (:).
€¬п ЈагЇЇл ¬®¦Ґв Ї®пўЁвмбп в®«мЄ® ў ®¤®© ¤ЁаҐЄвЁўҐ
GROUP ў Ёб室®¬ д ©«Ґ. …б«Ё Є ЈагЇЇҐ ЇаЁ ¤«Ґ¦ в ҐбЄ®«мЄ®
- 14 -
ᥣ¬Ґв®ў ў Ёб室®¬ д ©«Ґ, ўбҐ Ёе Ё¬Ґ ¤®«¦л Ўлвм гЄ § л
ў ®¤®© ¤ЁаҐЄвЁўҐ GROUP.
3.5. „ЁаҐЄвЁў END.
‘Ёв ЄбЁб:
END [[ўла ¦ҐЁҐ]]
„ЁаҐЄвЁў END ®Ў®§ з Ґв Є®Ґж ¬®¤г«п. ЂбᥬЎ«Ґа
ЁЈ®аЁагҐв ўбҐ ЇаҐ¤«®¦ҐЁп, б«Ґ¤гойЁҐ ў Ёб室®¬ д ©«Ґ §
нв®© ¤ЁаҐЄвЁў®©.
ЌҐ®Ўп§ ⥫쮥 ўла ¦ҐЁҐ ®ЇаҐ¤Ґ«пҐв в®зЄг ўе®¤
Їа®Ја ¬¬л, ў Є®в®аго Ўг¤Ґв ЇҐаҐ¤ ® гЇа ў«ҐЁҐ ЇаЁ § ЇгбЄҐ
Їа®Ја ¬¬л бзҐв. ‡ 票Ґ¬ нв®Ј® ўла ¦ҐЁп ¤®«¦Ґ Ўлвм
¤аҐб ў ®¤®¬ Ё§ Їа®Ја ¬¬ле ᥣ¬Ґв®ў ¤ ®Ј® Ёб室®Ј®
д ©« .
…б«Ё ўла ¦ҐЁҐ ®Їг饮, в®зЄ ўе®¤ Ґ ®ЇаҐ¤Ґ«пҐвбп.
ЏаЁ Ї®ЇлвЄҐ ўлЇ®«ҐЁп Їа®Ја ¬¬л б Ґ§ ¤ ®© в®зЄ®© ўе®¤
¬®Јгв ў®§ЁЄ вм ®иЁЎЄЁ, Ї®н⮬㠤ЁаҐЄвЁўг END ЎҐ§ Ї а ¬Ґва®ў
४®¬Ґ¤гҐвбп Є®¤Ёа®ў вм «Ёим б ᥣ¬Ґв ¬Ё, ᮤҐа¦ йЁ¬Ё
в®«мЄ® Ї®«п ¤ ле.
‚ Ёб室®¬ д ©«Ґ ¬®¦Ґв Ўлвм ®ЇаҐ¤Ґ«Ґ в®«мЄ® ®¤
в®зЄ ўе®¤ .
3.6. „ЁаҐЄвЁўл ORG Ё EVEN.
„ЁаҐЄвЁўл ORG Ё EVEN Ї®§ў®«пов § ¤ ў вм ¤аҐб Ї ¬пвЁ,
зЁ п б Є®в®а®Ј® Ўг¤гв а бЇ®« Ј вмбп Ї®б«Ґ¤гойЁҐ
ЁбвагЄжЁЁ Їа®жҐбб®а .
„ЁаҐЄвЁў ORG Ё¬ҐҐв б«Ґ¤гойЁ© д®а¬ в:
ORG ўла ¦ҐЁҐ
‡ 票Ґ гЄ § ®Ј® ўла ¦ҐЁп ЇаЁбў Ёў Ґвбп гЄ § ⥫о
Ї®§ЁжЁЁ, Ё ¤аҐб Ї®б«Ґ¤гойЁе ЁбвагЄжЁ© Ё ¤ ле Ўг¤гв
зЁ вмбп б ®ў®Ј® § 票п.
‡ 票Ґ¬ ўла ¦ҐЁп ¤®«¦® Ўлвм Ўб®«о⮥ зЁб«®,
в®зҐҐ, ўбҐ ЁбЇ®«м§гҐ¬лҐ ў Ґ¬ Ё¬Ґ ¤®«¦л Ўлвм Ё§ўҐбвл
1-¬ Їа®е®¤Ґ бᥬЎ«Ґа . ‚ Є зҐб⢥ н«Ґ¬Ґв ўла ¦ҐЁп ¬®¦Ґв
Ўлвм ЁбЇ®«м§®ў § Є гЄ § вҐ«п Ї®§ЁжЁЁ ($), ®Ў®§ з ойЁ©
ҐЈ® ⥪г饥 § 票Ґ.
- 15 -
ЏаЁ¬Ґа:
ORG 120h
MOV AX,BX
‚ н⮬ ЇаЁ¬ҐаҐ ЁбвагЄжЁп MOV Ўг¤Ґв зЁ вмбп б Ў ©в
120h ⥪г饣® ᥣ¬Ґв .
„ЁаҐЄвЁў EVEN Ё¬ҐҐв б«Ґ¤гойЁ© д®а¬ в:
EVEN
„ЁаҐЄвЁў EVEN ўла ўЁў Ґв б«Ґ¤го饥 § Ґ© Ї®«Ґ
¤ ле Ё«Ё ЁбвагЄжЁо Ї® Ја ЁжҐ б«®ў , в.Ґ. Ї® зҐв®¬г
¤аҐбг. …б«Ё ⥪г饥Ґ § 票Ґ гЄ § вҐ«п Ї®§ЁжЁЁ ҐзҐв®,
¤ЁаҐЄвЁў 㢥«ЁзЁў Ґв ҐЈ® § 票Ґ 1 Ё ЈҐҐаЁагҐв
ЁбвагЄжЁо NOP (Ґв ®ЇҐа жЁЁ). …б«Ё ⥪г饥 § 票Ґ
гЄ § вҐ«п Ї®§ЁжЁЁ 㦥 зҐв®, ЁЄ ЄЁе ¤Ґ©бвўЁ© Ґ
Їа®Ё§ў®¤Ёвбп.
„ЁаҐЄвЁў EVEN Ґ ¤®«¦ ЁбЇ®«м§®ў вмбп ў ᥣ¬Ґв е б
вЁЇ®¬ ўла ўЁў Ёп BYTE.
Соседние файлы в папке cистема программирования на макроассемблере ms-dos, cправочное руководство