Главная » Просмотр файлов » А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix

А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix (1110582), страница 10

Файл №1110582 А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix (А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix) 10 страницаА.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix (1110582) страница 102019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 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).

Характеристики

Тип файла
PDF-файл
Размер
1,1 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее