А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix (1110582), страница 10
Текст из файла (страница 10)
Ðåãèñòðû ESI è EDIèñïîëüçóþòñÿ â êîìàíäàõ, ðàáîòàþùèõ ñ ìàññèâàìè äàííûõ, ïðè÷¼ì ESI õðàíèòàäðåñ òåêóùåé ïîçèöèè â ìàññèâå-èñòî÷íèêå (íàïðèìåð, â îáëàñòè ïàìÿòè, êîòîðóþ íóæíî êóäà-òî ñêîïèðîâàòü), à EDI õðàíèò àäðåñ òåêóùåé ïîçèöèè â ìàññèâåöåëè (â îáëàñòè ïàìÿòè, êóäà ïðîèçâîäèòñÿ êîïèðîâàíèå).Èìÿ ðåãèñòðà BP îáîçíà÷àåò ¾base pointer¿ (áàçîâûé óêàçàòåëü). Êàê ïðàâèëî,ðåãèñòð EBP èñïîëüçóåòñÿ äëÿ õðàíåíèÿ áàçîâîãî àäðåñà ñòåêîâîãî ôðåéìà ïðèâûçîâå ïîäïðîãðàìì, èìåþùèõ ïàðàìåòðû è ëîêàëüíûå ïåðåìåííûå.Íàêîíåö, èìÿ ðåãèñòðà SP îáîçíà÷àåò ¾stack pointer¿ (óêàçàòåëü ñòåêà).Íåñìîòðÿ íà ïðèíàäëåæíîñòü ðåãèñòðà ESP ê ãðóïïå ðåãèñòðîâ îáùåãî íàçíà÷åíèÿ,â ðåàëüíîñòè îí âñåãäà èñïîëüçóåòñÿ èìåííî â êà÷åñòâå óêàçàòåëÿ ñòåêà, òî åñòüõðàíèò àäðåñ òåêóùåé ïîçèöèè âåðøèíû àïïàðàòíîãî ñòåêà. Ïîñêîëüêó îáîéòèñüáåç ñòåêà òÿæåëî, à äðóãèå ðåãèñòðû äëÿ ýòîé öåëè íå ïîäõîäÿò, ìîæíî ñ÷èòàòü,÷òî ESP íèêîãäà íå âûñòóïàåò íè â êàêîé èíîé ðîëè.Ê ðåãèñòðàì ñïåöèàëüíîãî íàçíà÷åíèÿ ìû îòíåñ¼ìEIP è ðåãèñòð ôëàãîâ FLAGS.ðåãèñòð ñ÷¼ò-÷èêà êîìàíäÐåãèñòð EIP, èìÿ êîòîðîãî îáðàçîâàíî îò ñëîâ ¾extended instructionpointer¿, õðàíèò â ñåáå àäðåñ â îïåðàòèâíîé ïàìÿòè, ïî êîòîðîìó ïðî-öåññîðó ñëåäóåò èçâëå÷ü ñëåäóþùóþ ìàøèííóþ èíñòðóêöèþ, ïðåäíàçíà÷åííóþ ê âûïîëíåíèþ.
Ïîñëå èçâëå÷åíèÿ èíñòðóêöèè èç ïàìÿòè çíà÷åíèåâ ðåãèñòðå EIP àâòîìàòè÷åñêè óâåëè÷èâàåòñÿ íà äëèíó ïðî÷èòàííîé èíñòðóêöèè (îòìåòèì, ÷òî èíñòðóêöèÿ ìîæåò çàíèìàòü â ïàìÿòè îò îäíîéäî îäèííàäöàòè èäóùèõ ïîäðÿä ÿ÷ååê), òàê ÷òî ðåãèñòð ñíîâà ñîäåðæèòàäðåñ êîìàíäû, êîòîðóþ íóæíî âûïîëíèòü ñëåäóþùåé. Êàê è äëÿ ðåãèñòðîâ îáùåãî íàçíà÷åíèÿ, ìëàäøàÿ ïîëîâèíà ðåãèñòðà EIP èìååò èìÿ IP,îäíàêî èñïîëüçîâàòü åãî, ðàáîòàÿ ïîä óïðàâëåíèåì 32-áèòíîé îïåðàöèîííîé ñèñòåìû, ìû âñ¼ ðàâíî íèêàê íå ñìîæåì.Ðåãèñòð ôëàãîâ FLAGS åäèíñòâåííûé èç ðàññìàòðèâàåìûõ íàìè ðåãèñòðîâ, êîòîðûé î÷åíü ðåäêî èñïîëüçóåòñÿ êàê åäèíîå öåëîå, è âîâñåíèêîãäà íå ðàññìàòðèâàåòñÿ êàê ÷èñëî.
Âìåñòî ýòîãî êàæäûé äâîè÷íûéðàçðÿä (áèò) ýòîãî ðåãèñòðà ïðåäñòàâëÿåò ñîáîé ôëàã , èìåþùèé ñîáñòâåííîå èìÿ. Íåêîòîðûå èç ýòèõ ôëàãîâ ïðîöåññîð ñàì óñòàíàâëèâàåò âíîëü èëè åäèíèöó â çàâèñèìîñòè îò ðåçóëüòàòà î÷åðåäíîé âûïîëíåííîéêîìàíäû; äðóãèå ôëàãè óñòàíàâëèâàþòñÿ â ÿâíîì âèäå ñîîòâåòñòâóþùèìè èíñòðóêöèÿìè è â äàëüíåéøåì âëèÿþò íà õîä âûïîëíåíèÿ íåêîòîðûõêîìàíä.  ÷àñòíîñòè, ôëàãè èñïîëüçóþòñÿ äëÿ âûïîëíåíèÿ óñëîâíûõïåðåõîäîâ : íåêîòîðàÿ êîìàíäà âûïîëíÿåò àðèôìåòè÷åñêóþ èëè äðóãóþîïåðàöèþ, à ñëåäóþùàÿ ïðÿìî çà íåé êîìàíäà ïåðåäà¼ò óïðàâëåíèå âäðóãîå ìåñòî ïðîãðàììû, íî òîëüêî â ñëó÷àå, åñëè ðåçóëüòàò ïðåäûäó35ùåé îïåðàöèè óäîâëåòâîðÿåò òåì èëè èíûì óñëîâèÿì; óñëîâèÿ êàê ðàç èïðîâåðÿþòñÿ ïî óñòàíîâëåííûì ôëàãàì.
Ïåðå÷èñëèì íåêîòîðûå ôëàãè:• ZF ôëàã íóëåâîãî ðåçóëüòàòà (zero ag). Ýòîò ôëàã óñòàíàâëèâàåòñÿ â õîäå âûïîëíåíèÿ àðèôìåòè÷åñêèõ îïåðàöèé è îïåðàöèéñðàâíåíèÿ: åñëè â ðåçóëüòàòå îïåðàöèè ïîëó÷èëñÿ íîëü, ZF óñòàíàâëèâàåòñÿ â åäèíèöó.• CF ôëàã ïåðåíîñà (carry ag). Ïîñëå âûïîëíåíèÿ àðèôìåòè÷åñêîé îïåðàöèè íàä áåççíàêîâûìè ÷èñëàìè ýòîò ôëàã âûñòàâëÿåòñÿ â åäèíèöó, åñëè ïîòðåáîâàëñÿ ïåðåíîñ èç ñòàðøåãî ðàçðÿäà, òîåñòü ðåçóëüòàò íå ïîìåñòèëñÿ â ðåãèñòð, ëèáî ïîòðåáîâàëñÿ çà¼ì èçíåñóùåñòâóþùåãî ðàçðÿäà ïðè âû÷èòàíèè, òî åñòü âû÷èòàåìîå îêàçàëîñü áîëüøå, ÷åì óìåíüøàåìîå (ñì. 1.3.1).  ïðîòèâíîì ñëó÷àåôëàã âûñòàâëÿåòñÿ â íîëü.• SF ôëàã çíàêà (sign ag). Óñòàíàâëèâàåòñÿ ðàâíûì ñòàðøåìó áèòóðåçóëüòàòà, êîòîðûé äëÿ çíàêîâûõ ÷èñåë ñîîòâåòñòâóåò çíàêó ÷èñëà(ñì. ñòð.
21).• OF ôëàã ïåðåïîëíåíèÿ (overow ag). Âûñòàâëÿåòñÿ â åäèíèöó,åñëè ïðè ðàáîòå ñî çíàêîâûìè ÷èñëàìè ïðîèçîøëî ïåðåïîëíåíèå(ñì. ñòð. 21).• DF ôëàã íàïðàâëåíèÿ (direction ag). Ýòîò ôëàã ìîæíî óñòàíîâèòü êîìàíäîé STD è îáíóëèòü êîìàíäîé CLD; â çàâèñèìîñòè îò åãîçíà÷åíèÿ ñòðîêîâûå îïåðàöèè, êîòîðûå ìû áóäåì ðàññìàòðèâàòüíåñêîëüêî ïîçæå, âûïîëíÿþòñÿ â ïðÿìîì èëè â îáðàòíîì íàïðàâëåíèè.• PF è AF ôëàã ÷¼òíîñòè (parity ag) è ôëàã ïîëóïåðåíîñà (auxiliarycarry ag). Íàì ýòè ôëàãè íå ïîòðåáóþòñÿ.• IF è TF ôëàãè ðàçðåøåíèÿ ïðåðûâàíèé (interrupt ag) è ëîâóøêè(trap ag).
Ýòè ôëàãè íàì íåäîñòóïíû, èõ ìîæíî èçìåíÿòü òîëüêîâ ïðèâèëåãèðîâàííîì ðåæèìå.Íà ñàìîì äåëå òàêîé íàáîð ôëàãîâ ñóùåñòâîâàë äî ïðîöåññîðà i386; ïðè ïåðåõîäåê ïðîöåññîðó i386 ðåãèñòð ôëàãîâ, êàê è âñå îñòàëüíûå ðåãèñòðû, óâåëè÷èëñÿ âðàçìåðàõ è ïðåâðàòèëñÿ â ðåãèñòð EFLAGS, íî âñå íîâûå ôëàãè íàì â îãðàíè÷åííîìðåæèìå íåäîñòóïíû, òàê ÷òî ðàññìàòðèâàòü èõ ìû íå áóäåì.36 2.2. Ïàìÿòü, ðåãèñòðû è êîìàíäàmov 2.2.1. Ïàìÿòü ïîëüçîâàòåëüñêîé çàäà÷è. Ñåêöèèßñíî, ÷òî ðåãèñòðîâ öåíòðàëüíîãî ïðîöåññîðà çàâåäîìî íå õâàòèò äëÿõðàíåíèÿ âñåé èíôîðìàöèè, íóæíîé â ëþáîé áîëåå-ìåíåå ñëîæíîé ïðîãðàììå.
Ïîýòîìó ðåãèñòðû èñïîëüçóþòñÿ ëèøü äëÿ êðàòêîñðî÷íîãî õðàíåíèÿ ïðîìåæóòî÷íûõ ðåçóëüòàòîâ, êîòîðûå âîò-âîò ïîíàäîáÿòñÿ ñíîâà.Êðîìå ðåãèñòðîâ, ïðîãðàììà ìîæåò âîñïîëüçîâàòüñÿ äëÿ õðàíåíèÿ èíôîðìàöèè îïåðàòèâíîé ïàìÿòüþ.Îäèí èç îñíîâîïîëàãàþùèõ ïðèíöèïîâ, îïðåäåëÿþùèõ àðõèòåêòóðóôîí Íåéìàíà, ñîñòîèò â îäíîðîäíîñòè ïàìÿòè : è ñàìà ïðîãðàììà(òî åñòü ñîñòàâëÿþùèå å¼ ìàøèííûå êîìàíäû), è âñå äàííûå, ñ êîòîðûìè îíà ðàáîòàåò, ðàñïîëàãàþòñÿ â ÿ÷åéêàõ ïàìÿòè, îäèíàêîâûõ ïî ñâîåìóóñòðîéñòâó è èìåþùèõ àäðåñà èç åäèíîãî àäðåñíîãî ïðîñòðàíñòâà.
 íàøåì ñëó÷àå êàæäàÿ ÿ÷åéêà ïàìÿòè ñïîñîáíà õðàíèòü ðîâíî îäèí áàéò èèìååò ñâîé óíèêàëüíûé àäðåñ ÷èñëî èç 32 áèò (ðå÷ü èä¼ò, åñòåñòâåííî,î âèðòóàëüíûõ àäðåñàõ, êîòîðûå ìû îáñóæäàëè íà ñòð. 16).Íåñìîòðÿ íà òî, ÷òî ôèçè÷åñêè âñå ÿ÷åéêè ïàìÿòè àáñîëþòíî îäèíàêîâû, îïåðàöèîííàÿ ñèñòåìà ìîæåò óñòàíîâèòü äëÿ ïîëüçîâàòåëüñêîéçàäà÷è ðàçíûå âîçìîæíîñòè ïî äîñòóïó ê ðàçëè÷íûì îáëàñòÿì ïàìÿòè.Ýòî äîñòèãàåòñÿ ñðåäñòâàìè àïïàðàòíîé çàùèòû ïàìÿòè, êîòîðûå ìûóæå óïîìèíàëè.
 ÷àñòíîñòè, íåêîòîðûå îáëàñòè ïàìÿòè ìîãóò áûòü äîñòóïíû çàäà÷å òîëüêî äëÿ ÷òåíèÿ, íî íå äëÿ èçìåíåíèÿ íàõîäÿùåéñÿ òàìèíôîðìàöèè; êðîìå òîãî, íå âñÿêóþ îáëàñòü ïàìÿòè ðàçðåøàåòñÿ ðàññìàòðèâàòü êàê ìàøèííûé êîä (òî åñòü çàíîñèòü àäðåñà ÿ÷ååê èç ýòîéîáëàñòè â ðåãèñòð ñ÷¼ò÷èêà êîìàíä). Åñëè çàäà÷å ïîçâîëåíî ðàññìàòðèâàòü ñîäåðæèìîå îáëàñòè ïàìÿòè êàê ôðàãìåíò èñïîëíÿåìîé ìàøèííîéïðîãðàììû, ãîâîðÿò, ÷òî îáëàñòü ïàìÿòè äîñòóïíà íà èñïîëíåíèå ;îáëàñòü ïàìÿòè, ñîäåðæèìîå êîòîðîé çàäà÷à ìîæåò ìîäèôèöèðîâàòü, íàçûâàþò äîñòóïíîé íà çàïèñü .
×àñòî ìîæíî âñòðåòèòü òàêæå òåðìèíäîñòóï íà ÷òåíèå , íî â ïðèìåíåíèè ê îïåðàòèâíîé ïàìÿòè îòñóòñòâèåýòîãî âèäà äîñòóïà îáû÷íî îçíà÷àåò îòñóòñòâèå êàêîãî-ëèáî äîñòóïà âîîáùå.Îáû÷íî ñîâðåìåííûå îïåðàöèîííûå ñèñòåìû âûñòðàèâàþò âèðòóàëüíîå àäðåñíîå ïðîñòðàíñòâî ïîëüçîâàòåëüñêîé çàäà÷è, ðàçäåëèâ åãî íà ÷åòûðå îñíîâíûå ñåêöèè . Ïåðâàÿ èç ýòèõ ñåêöèé, íàçûâàåìàÿ ñåêöèåéêîäà , ñîçäà¼òñÿ äëÿ õðàíåíèÿ èñïîëíÿåìîãî ìàøèííîãî êîäà, èç êîòîðîãî, ñîáñòâåííî ãîâîðÿ, è ñîñòîèò èñïîëíÿåìàÿ ïðîãðàììà. Åñòåñòâåííî,îáëàñòü ïàìÿòè, âûäåëåííàÿ ïîä ñåêöèþ êîäà, äîñòóïíà çàäà÷å íà èñïîëíåíèå.
Ñ äðóãîé ñòîðîíû, îïåðàöèîííàÿ ñèñòåìà íå ïîçâîëÿåò ïîëü-çîâàòåëüñêèì çàäà÷àì ìîäèôèöèðîâàòü ñîäåðæèìîå ñåêöèè êîäà; ïîïûòêà çàäà÷è ñäåëàòü òàêóþ ìîäèôèêàöèþ ðàññìàòðèâàåòñÿ êàê37íàðóøåíèå çàùèòû ïàìÿòè. Ñäåëàíî ýòî ïî äîñòàòî÷íî ïðîñòîé ïðè÷èíå:åñëè â ñèñòåìå îäíîâðåìåííî çàïóùåíî â âèäå çàäà÷ íåñêîëüêî ýêçåìïëÿðîâ îäíîé è òîé æå ïðîãðàììû, îïåðàöèîííàÿ ñèñòåìà îáû÷íî õðàíèò âôèçè÷åñêîé ïàìÿòè òîëüêî îäèí ýêçåìïëÿð ìàøèííîãî êîäà òàêîé ïðîãðàììû. Ýòî âåðíî äàæå â ñëó÷àå, åñëè çàïóùåííûå çàäà÷è ïðèíàäëåæàòðàçíûì ïîëüçîâàòåëÿì è èìåþò ðàçíûå ïîëíîìî÷èÿ â ñèñòåìå.
Åñëè îäíàèç òàêèõ çàäà÷ ìîäèôèöèðóåò ¾ñâîþ¿ ñåêöèþ êîäà, î÷åâèäíî, ÷òî ýòî ïîìåøàåò ðàáîòàòü îñòàëüíûì âåäü îíè èñïîëüçóþò (ôèçè÷åñêè) òó æåñàìóþ ñåêöèþ êîäà. Îäíàêî íà ÷òåíèå ñåêöèÿ êîäà äîñòóïíà, òàê ÷òî å¼ìîæíî èñïîëüçîâàòü íå òîëüêî äëÿ êîäà êàê òàêîâîãî, íî è äëÿ õðàíåíèÿêîíñòàíòíûõ äàííûõ òàêîé èíôîðìàöèè, êîòîðàÿ íå èçìåíÿåòñÿ âîâðåìÿ âûïîëíåíèÿ ïðîãðàììû.  ïðîãðàììàõ ñåêöèÿ êîäà îáîçíà÷àåòñÿ¾.text¿ (òî÷êà ïåðåä íàçâàíèåì ñåêöèè îáÿçàòåëüíà è ÿâëÿåòñÿ ÷àñòüþíàçâàíèÿ).Âòîðàÿ è òðåòüÿ ñåêöèè, èìåþùèå ñîáèðàòåëüíîå íàçâàíèå ñåãìåíòäàííûõ , ïðåäíàçíà÷åíû äëÿ õðàíåíèÿ ãëîáàëüíûõ è äèíàìè÷åñêèõ ïåðåìåííûõ. Îáå ýòè ñåêöèè äîñòóïíû çàäà÷å êàê íà ÷òåíèå, òàê è íà çàïèñü; ñ äðóãîé ñòîðîíû, îïåðàöèîííàÿ ñèñòåìà îáû÷íî çàïðåùàåò ïåðåäà÷ó óïðàâëåíèÿ âíóòðü ýòèõ ñåêöèé, ÷òîáû íåñêîëüêî çàòðóäíèòü ¾âçëîì¿êîìïüþòåðíûõ ïðîãðàìì.
Ïåðâàÿ èç äâóõ ñåêöèé íàçûâàåòñÿ ñîáñòâåííî ñåêöèåé äàííûõ , â ïðîãðàììàõ îáîçíà÷àåòñÿ ¾.data2 ¿ è ñîäåðæèòèíèöèàëèçèðîâàííûå äàííûå, òî åñòü òàêèå ãëîáàëüíûå ïåðåìåííûå, äëÿêîòîðûõ â ïðîãðàììå çàäàíî íà÷àëüíîå çíà÷åíèå. Âòîðàÿ ñåêöèÿ èç ñåãìåíòà äàííûõ íàçûâàåòñÿ ñåêöèåé íåèíèöèàëèçèðîâàííûõ äàííûõèëè ñåêöèåé BSS 3 è îáîçíà÷àåòñÿ ¾.bss¿; êàê ÿñíî èç íàçâàíèÿ, ýòàñåêöèÿ ïðåäíàçíà÷åíà äëÿ ïåðåìåííûõ, äëÿ êîòîðûõ íà÷àëüíîå çíà÷åíèåíå çàäàíî.
Ñåêöèÿ BSS îòëè÷àåòñÿ îò ñåêöèè äàííûõ äâóìÿ îñîáåííîñòÿìè. Âî-ïåðâûõ, ïîñêîëüêó ñîäåðæèìîå ñåêöèè äàííûõ íà ìîìåíò ñòàðòàïðîãðàììû äîëæíî áûòü òàêèì, êàê ýòî çàäàíî ïðîãðàììîé, å¼ îáðàçíåîáõîäèìî õðàíèòü â èñïîëíÿåìîì ôàéëå ïðîãðàììû; äëÿ ñåêöèè BSS âèñïîëíÿåìîì ôàéëå äîñòàòî÷íî õðàíèòü òîëüêî ðàçìåð.
Âî-âòîðûõ, ñåêöèÿ BSS ìîæåò âî âðåìÿ ðàáîòû ïðîãðàììû óâåëè÷èâàòüñÿ â ðàçìåðàõ,÷òî ïîçâîëÿåò ñîçäàâàòü íîâûå ïåðåìåííûå íà ýòàïå âûïîëíåíèÿ.Ïàìÿòü, ïîëó÷àåìóþ âî âðåìÿ ðàáîòû ïðîãðàììû, îáû÷íî íàçûâàþò äèíàìèèëè êó÷åé (heap).  íàøåì êóðñå ìû íå áóäåì ðàññìàòðèâàòüðàáîòó ñ äèíàìè÷åñêîé ïàìÿòüþ, íî äëÿ ëþáîçíàòåëüíûõ ÷èòàòåëåé ñîîáùèì, ÷òîâ ÎÑ Linux âûäåëåíèå äîïîëíèòåëüíîé ïàìÿòè ïðîèçâîäèòñÿ ñèñòåìíûì âûçîâîìbrk, î êîòîðîì ìîæíî óçíàòü èç òåõíè÷åñêîé äîêóìåíòàöèè ïî ÿäðó. Âûäåëåíèåäîïîëíèòåëüíîé ïàìÿòè â ÎÑ FreeBSD ïðîèçâîäèòñÿ ñðåäñòâàìè ñèñòåìíîãî âû÷åñêîé ïàìÿòüþ2 Data (àíãë.) äàííûå; ÷èòàåòñÿ ¾äýéòà¿.3 Èñòîðè÷åñêè àááðåâèàòóðà BSS îáîçíà÷àëà Block Started by Symbol, ÷òî áûëî îáó-ñëîâëåíî îñîáåííîñòÿìè îäíîãî ñòàðîãî àññåìáëåðà.
 íàñòîÿùåå âðåìÿ ïðîãðàììèñòûïðåäïî÷èòàþò ðàñøèôðîâûâòü BSS êàê Blank Static Storage.38çîâà mmap, êîòîðûé, ê ñîæàëåíèþ, ãîðàçäî ñëîæíåå, îñîáåííî äëÿ èñïîëüçîâàíèÿâ ïðîãðàììàõ íà ÿçûêå àññåìáëåðà.×åòâ¼ðòàÿ îñíîâíàÿ ñåêöèÿ ýòî òàê íàçûâàåìàÿ ñåêöèÿ ñòåêà ; îíàíóæíà äëÿ õðàíåíèÿ ëîêàëüíûõ ïåðåìåííûõ â ïîäïðîãðàììàõ è àäðåñîââîçâðàòà èç ïîäïðîãðàìì. Ïîäðîáíûé ðàññêàç î ñòåêå ó íàñ åù¼ âïåðåäè, ïîêà ìû òîëüêî îòìåòèì, ÷òî ýòà ñåêöèÿ òàêæå äîñòóïíà íà çàïèñü;äîñòóïíîñòü å¼ íà èñïîëíåíèå çàâèñèò îò êîíêðåòíîé îïåðàöèîííîé ñèñòåìû è äàæå îò êîíêðåòíîé âåðñèè ÿäðà: íàïðèìåð, â áîëüøèíñòâå âåðñèé Linux â ñåêöèþ ñòåêà ìîæíî ïåðåäàâàòü óïðàâëåíèå, íî ñïåöèàëüíûé¾ïàò÷¿ ê èñõîäíûì òåêñòàì ÿäðà ýòó âîçìîæíîñòü óñòðàíÿåò. Ýòà ñåêöèÿòàêæå ìîæåò óâåëè÷èâàòüñÿ â ðàçìåðàõ ïî ìåðå íåîáõîäèìîñòè, ïðè÷¼ìýòî ïðîèñõîäèò àâòîìàòè÷åñêè (â îòëè÷èå îò óâåëè÷åíèÿ ñåêöèè BSS, êîòîðîå íåîáõîäèìî çàòðåáîâàòü îò îïåðàöèîííîé ñèñòåìû ÿâíî).
Ñåêöèÿñòåêà ïðèñóòñòâóåò â ïîëüçîâàòåëüñêîé çàäà÷å âñåãäà, å¼ èñõîäíîå ñîäåðæèìîå çàâèñèò òîëüêî îò ïàðàìåòðîâ çàïóñêà ïðîãðàììû, à äàëüøå îíàèçìåíÿåòñÿ ïî ìåðå íåîáõîäèìîñòè. Íèêàêîé èíôîðìàöèè î ñåêöèè ñòåêà èñïîëíÿåìûé ôàéë íå ñîäåðæèò. Âî âðåìÿ íàïèñàíèÿ ïðîãðàììû ìûíå ìîæåì íèêàê ïîâëèÿòü íà ñåêöèþ ñòåêà, òàê ÷òî àññåìáëåð íå èìååòíèêàêîãî ñïåöèàëüíîãî îáîçíà÷åíèÿ äëÿ íå¼. 2.2.2. Äèðåêòèâû äëÿ îòâåäåíèÿ ïàìÿòèÑîäåðæèìîå ýòîãî ïàðàãðàôà íå èìååò ïðÿìîãî îòíîøåíèÿ ê àðõèòåêòóðå ïðîöåññîðà i386; çäåñü ìû ðàññìîòðèì äèðåêòèâû, ÿâëÿþùèåñÿ îñîáåííîñòüþ êîíêðåòíîãî àññåìáëåðà.
Äåëî, îäíàêî, â òîì, ÷òî íàì î÷åíü ñëîæíî áóäåò îáîéòèñüáåç íèõ ïðè èçó÷åíèè äàëüíåéøåãî ìàòåðèàëà.Íàïèñàííûå íàìè óñëîâíûå îáîçíà÷åíèÿ ìàøèííûõ êîìàíä àññåìáëåð òðàíñëèðóåò â íåêèé îáðàç îáëàñòè ïàìÿòè ìàññèâ ÷èñåë (äàííûõ), êîòîðûå íóæíî áóäåò çàïèñàòü â ñìåæíûå ÿ÷åéêè îïåðàòèâíîé ïàìÿòè. Çàòåì ïðè çàïóñêå ïðîãðàììû â ýòó îáëàñòü ïàìÿòè áóäåò ïåðåäàíî óïðàâëåíèå (òî åñòü, ïîïðîñòó ãîâîðÿ, àäðåñ êàêîé-òî èç ýòèõ ÿ÷ååêáóäåò çàïèñàí â ðåãèñòð EIP) è öåíòðàëüíûé ïðîöåññîð íà÷í¼ò âûïîëíåíèå íàøåé ïðîãðàììû, èñïîëüçóÿ ÷èñëà èç ñîçäàííîãî àññåìáëåðîìîáðàçà â êà÷åñòâå êîäîâ êîìàíä.
Åñëè ìû ïèøåì ïðîãðàììó, êîòîðàÿáóäåò ïîòîì âûïîëíÿòüñÿ â êà÷åñòâå çàäà÷è ïîä óïðàâëåíèåì ìíîãîçàäà÷íîé îïåðàöèîííîé ñèñòåìû, òî ïðè çàãðóçêå èñïîëíÿåìîãî ôàéëà âïàìÿòü îïåðàöèîííàÿ ñèñòåìà ñôîðìèðóåò ñåêöèþ êîäà (ñåêöèþ .text)ñîîòâåòñòâóþùåãî ðàçìåðà è èìåííî â íåé ðàñïîëîæèò ìàøèííûé êîäíàøåé ïðîãðàììû, òî åñòü, ïîïðîñòó, ñêîïèðóåò â íå¼ çàïèñàííûé â èñïîëíÿåìîì ôàéëå îáðàç ïàìÿòè.Àíàëîãè÷íî ìîæíî èñïîëüçîâàòü àññåìáëåð è äëÿ ñîçäàíèÿ îáðàçàîáëàñòè ïàìÿòè, ñîäåðæàùåé äàííûå, à íå êîìàíäû. Äëÿ ýòîãî íóæíîñîîáùèòü àññåìáëåðó, ñêîëüêî ïàìÿòè íàì íåîáõîäèìî ïîä òå èëè èíûå39íóæäû, è ïðè ýòîì, âîçìîæíî, çàäàòü òå çíà÷åíèÿ, êîòîðûå â ýòó ïàìÿòüáóäóò ïîìåùåíû ïåðåä ñòàðòîì ïðîãðàììû.Ïîëüçóÿñü íàøèìè óêàçàíèÿìè, àññåìáëåð ñîîòâåòñòâóþùèì îáðàçîìñôîðìèðóåò îòäåëüíî îáðàç ïàìÿòè, ñîäåðæàùèé êîìàíäû (îáðàç ñåêöèè.text), è îòäåëüíî îáðàç ïàìÿòè, ñîäåðæàùèé èíèöèàëèçèðîâàííûå äàííûå (îáðàç ñåêöèè .data), à êðîìå òîãî, ñîñ÷èòàåò, ñêîëüêî íàì íóæíîòàêîé ïàìÿòè, î íà÷àëüíîì çíà÷åíèè êîòîðîé ìû íå áåñïîêîèìñÿ è äëÿêîòîðîé, ñîîòâåòñòâåííî, íå íóæíî ôîðìèðîâàòü îáðàç, à íóæíî ëèøüóêàçàòü å¼ êîëè÷åñòâî (ðàçìåð ñåêöèè .bss).