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

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

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

Текст из файла (страница 40)

Ôëàã C3 îêàçûâàåòñÿ, òàêèìîáðàçîì, ïî ñìûñëó àíàëîãè÷íûì ôëàãó ZF, à ôëàã C0 ôëàãó CF (ïðèñðàâíåíèè áåççíàêîâûõ öåëûõ).Íà ñàìîì äåëå êîìàíäû ñðàâíåíèÿ óñòàíàâëèâàþò åù¼ è ôëàã C2, ïðè÷¼ì åñëèâñ¼ â ïîðÿäêå òî îí ñáðàñûâàåòñÿ â íîëü, åñëè æå ÷èñëà íåñðàâíèìû (íàïðèìåð,îáà ÷èñëà ¾ïëþñ áåñêîíå÷íîñòè¿, èëè îäíî èç íèõ ¾íå-÷èñëî¿) è ñîïðîöåññîðïðè ýòîì íàñòðîåí òàê, ÷òîáû íå èíèöèèðîâàòü ïðåðûâàíèÿ â ýòèõ ñèòóàöèÿõ òî C2 óñòàíàâëèâàåòñÿ â åäèíèöó.×òîáû ðåçóëüòàòîì ñðàâíåíèÿ ìîæíî áûëî âîñïîëüçîâàòüñÿ äëÿóñëîâíîãî ïåðåõîäà, íåîáõîäèìî ñêîïèðîâàòü ôëàãè èç CR â ðåãèñòð FLAGSîñíîâíîãî ïðîöåññîðà. Ýòî äåëàåòñÿ êîìàíäàìèfstsw axsahfÏåðâàÿ èç íèõ êîïèðóåò SR â ðåãèñòð AX, à âòîðàÿ çàãðóæàåò íåêîòîðûå(íå âñå!) ôëàãè â FLAGS èç AH.

 ÷àñòíîñòè, ïîñëå âûïîëíåíèÿ ýòèõ äâóõêîìàíä çíà÷åíèå ôëàãà C3 êîïèðóåòñÿ â ZF, à çíà÷åíèå C0 â CF3 , ÷òîïîëíîñòüþ ñîîòâåòñòâóåò íàøèì ïîòðåáíîñòÿì: òåïåðü ìû ìîæåì âîñïîëüçîâàòüñÿ äëÿ óñëîâíîãî ïåðåõîäà ëþáîé èç êîìàíä, ïðåäóñìîòðåííûõäëÿ áåççíàêîâûõ öåëûõ ÷èñåë: ja, jb, jae, jbe, jna è ò. ä. (ñì. òàáë. 2.3íà ñòð. 62). Ïîä÷åðêí¼ì åù¼ ðàç, ÷òî èñïîëüçîâàíèå èìåííî ýòèõ êîìàíäîáóñëîâëåíî òîëüêî òåì, ÷òî ðåçóëüòàò ñðàâíåíèÿ îêàçàëñÿ âî ôëàãàõ CFè ZF, áîëüøå íè÷åãî îáùåãî ìåæäó ÷èñëàìè ñ ïëàâàþùåé òî÷êîé è áåççíàêîâûìè öåëûìè, âîîáùå ãîâîðÿ, íåò.3 Îòìåòèì íà âñÿêèé ñëó÷àé, ÷òî ôëàã C2 ïðè ýòîì êîïèðóåòñÿ â PF.175Ïóñòü, íàïðèìåð, ó íàñ åñòü ïåðåìåííûå a, b è m ðàçìåðà qword, ñîäåðæàùèå ÷èñëà ñ ïëàâàþùåé òî÷êîé, è ìû õîòèì çàíåñòè â m íàèìåíüøååèç a è b.

Ýòî ìîæíî ñäåëàòü òàê:lpa:fld qword [b]; b íà âåðøèíó ñòåêà (â ST0)fld qword [a]; òåïåðü à â ST0, b â ST1fcom; ñðàâíèâàåì èõfstsw ax; êîïèðóåì ôëàãè â AXsahf;è îòòóäà - â FLAGSja lpa; åñëè a>b - ïðûãàåìfxcn; èíà÷å ìåíÿåì ÷èñëà ìåñòàìè; òåïåðü áîëüøåå â ST0, ìåíüøåå â ST1fstp st0; ëèêâèäèðóåì íåíóæíîå áîëüøååfstp qword [m] ; çàïèñûâàåì â ïàìÿòü ìåíüøåå¾Íåíóæíîå¿ ÷èñëî ìîæíî áûëî áû óáðàòü èç ñòåêà è èíà÷å.

Âìåñòî ïðåäïîñëåäíåé êîìàíäû ìîæíî áûëî áû äàòü äâå êîìàíäû: ñíà÷àëà ffree st0, êîòîðàÿïîìåòèò ðåãèñòð ST0 êàê ñâîáîäíûé, ïîòîì fincstp, êîòîðàÿ óâåëè÷èò çíà÷åíèåTOP íà åäèíèöó. Ýòè êîìàíäû ðàññìàòðèâàþòñÿ ⠟ 6.7.3. ðÿäå ñëó÷àåâ ìîãóò îêàçàòüñÿ ïîëåçíû òàêæå êîìàíäû ficom èficomp, âñåãäà èìåþùèå îäèí îïåðàíä òèïà ¾ïàìÿòü¿ ðàçìåðà word èëèdword è ðàññìàòðèâàþùèå ýòîò îïåðàíä êàê öåëîå ÷èñëî.  îñòàëüíîìîíè àíàëîãè÷íû êîìàíäàì fcom è fcomp: ïåðâûì îïåðàíäîì ñðàâíåíèÿâûñòóïàåò ST0, ïî ðåçóëüòàòàì ñðàâíåíèÿ óñòàíàâëèâàþòñÿ ôëàãè C3, C2è C0.

Êîìàíäà ficomp, â îòëè÷èå îò ficom, âûòàëêèâàåò ST0 èç ñòåêà. Íàêîíåö, êîìàíäà ftst, íå èìåþùàÿ îïåðàíäîâ, ñðàâíèâàåò âåðøèíó ñòåêàñ íóë¼ì.Ÿ 6.7. Óïðàâëåíèå ñîïðîöåññîðîìŸ 6.7.1. Èñêëþ÷èòåëüíûå ñèòóàöèè è èõ îáðàáîòêà ðåçóëüòàòå âûïîëíåíèÿ âû÷èñëåíèé ñ ïëàâàþùåé òî÷êîé ìîãóò âîçíèêàòü èñêëþ÷èòåëüíûå ñèòóàöèè , ÷òî â íåêîòîðûõ ñëó÷àÿõ ñâèäåòåëüñòâóåò îá îøèáêå â ïðîãðàììå èëè âõîäíûõ äàííûõ, à â äðóãèõñëó÷àÿõ ìîæåò îòðàæàòü âïîëíå øòàòíûå îñîáåííîñòè õîäà âû÷èñëåíèé.Ðàçëè÷àþò øåñòü òàêèõ ñèòóàöèé:1. Íåäîïóñòèìàÿ îïåðàöèÿ (Invalid Operation, #I) ïîïûòêà èñïîëüçîâàíèÿ ¾íå-÷èñåë¿ â êà÷åñòâå îïåðàíäîâ, ïîïûòêà èçâëå÷ü êâàäðàòíûé êîðåíü èëè ëîãàðèôì èç îòðèöàòåëüíîãî ÷èñëà è ò. ï.

Òàêæåýòî ìîæåò îçíà÷àòü îøèáêó ñòåêà: ïîïûòêó çàïèñàòü íîâîå ÷èñëî âçàïîëíåííûé ñòåê (òî åñòü êîãäà âñå âîñåìü ðåãèñòðîâ çàíÿòû), ëèáî ïîïûòêó âûòîëêíóòü ÷èñëî èç ñòåêà, êîãäà â ñòåêå íåò íè îäíîãî176÷èñëà, ëèáî ïîïûòêó èñïîëüçîâàòü â êà÷åñòâå îïåðàíäà ðåãèñòð, êîòîðûé â íàñòîÿùåå âðåìÿ ïóñò.2. Äåíîðìàëèçàöèÿ (Denormalized, #D) ïîïûòêà âûïîëíåíèÿ îïåðàöèè íàä äåíîðìàëèçîâàííûì ÷èñëîì, ëèáî ðåçóëüòàò î÷åðåäíîé îïåðàöèè ñòîëü ìàë ïî ìîäóëþ, ÷òî íå ìîæåò áûòü ïðåñòàâëåí èíà÷åêàê â âèäå äåíîðìàëèçîâàííîãî ÷èñëà.3.

Äåëåíèå íà íîëü (Zero divider, #Z) ïîïûòêà äåëåíèÿ íà íîëü.4. Ïåðåïîëíåíèå (Overow, #O) ðåçóëüòàò î÷åðåäíîé îïåðàöèè ñòîëüâåëèê, ÷òî íå ìîæåò áûòü ïðåäñòàâëåí â âèäå ÷èñëà ñ ïëàâàþùåéòî÷êîé èìåþùèõñÿ ðàçìåðîâ (÷àñòíûì ñëó÷àåì ýòîé ñèòóàöèè ÿâëÿåòñÿ ïåðåâîä ÷èñëà èç âíóòðåííåãî äåñÿòèáàéòíîãî ïðåäñòàâëåíèÿâ ÷åòûð¼õ- èëè âîñüìèáàéòíîå ïðåäñòàâëåíèå ñ ïîìîùüþ, íàïðèìåð, êîìàíäû fst â ñëó÷àå, åñëè â íîâîå ïðåäñòàâëåíèå ÷èñëî ¾íåâëåçàåò¿).5. Àíòèïåðåïîëíåíèå (Underow, #U) ðåçóëüòàò ñòîëü ìàë ïî ìîäóëþ, ÷òî íå ìîæåò áûòü ïðåäñòàâëåí â âèäå ÷èñëà ñ ïëàâàþùåéòî÷êîé íóæíîãî ðàçìåðà (â òîì ÷èñëå ïðè âûïîëíåíèè êîìàíäûfst, ñì. âûøå).6. Ïîòåðÿ òî÷íîñòè (Precision, #P) ðåçóëüòàò îïåðàöèè íå ìîæåòáûòü ïðåäñòàâëåí òî÷íî èìåþùèìèñÿ ñðåäñòâàìè; â áîëüøèíñòâåñëó÷àåâ ýòî àáñîëþòíî íîðìàëüíî. êàæäîì èç ðåãèñòðîâ CR è SR ìëàäøèå øåñòü áèò ñîîòâåòñòâóþòïåðå÷èñëåííûì ñèòóàöèÿì â òîì ïîðÿäêå, â êîòîðîì îíè ïåðå÷èñëåíû:áèò  0 ñîîòâåòñòâóåò íåäîïóñòèìîé îïåðàöèè, áèò  1 äåíîðìàëèçàöèè, è ò.

ä.; áèò  5 ñîîòâåòñòâóåò ïîòåðå òî÷íîñòè. Êðîìå òîãî, â ðåãèñòðå SR áèò  6 ñîîòâåòñòâóåò îøèáêå ñòåêà. Ïðè ýòîì áèòû ðåãèñòðàCR óïðàâëÿþò òåì, ÷òî ïðîöåññîð äîëæåí ñäåëàòü ïðè âîçíèêíîâåíèèèñêëþ÷èòåëüíîé ñèòóàöèè. Åñëè ñîîòâåòñòâóþùèé áèò ñáðîøåí, òî ïðèâîçíèêíîâåíèè èñêëþ÷åíèÿ áóäåò èíèöèèðîâàíî âíóòðåííåå ïðåðûâàíèå(ñì.

Ÿ 4.2.2). Åñëè æå áèò óñòàíîâëåí, èñêëþ÷èòåëüíàÿ ñèòóàöèÿ ñ÷èòàåòñÿ çàìàñêèðîâàííîé è ïðîöåññîð ïðè å¼ âîçíèêíîâåíèè íèêàêèõ ïðåðûâàíèé èíèöèèðîâàòü íå áóäåò; âìåñòî ýòîãî îí ïîñòàðàåòñÿ ñèíòåçèðîâàòü,íàñêîëüêî ýòî âîçìîæíî, ðåëåâàíòíûé ðåçóëüòàò (íàïðèìåð, ïðè äåëåíèèíà íîëü ðåçóëüòàòîì áóäåò ¾áåñêîíå÷íîñòü¿ ñîîòâåòñòâóþùåãî çíàêà; ïðèïîòåðå òî÷íîñòè ðåçóëüòàò îêðóãëèòñÿ äî ìàøèííî-ïðåäñòàâèìîãî ÷èñëàâ ñîîòâåòñòâèè ñ óñòàíîâëåííûì ðåæèìîì îêðóãëåíèÿ, è ò.

ä.)Ïðè âîçíèêíîâåíèè ëþáîé èñêëþ÷èòåëüíîé ñèòóàöèè ñîïðîöåññîðóñòàíàâëèâàåò â åäèíèöó ñîîòâåòñòâóþùèé áèò (ôëàã) â ðåãèñòðå SR. Åñëè ñèòóàöèÿ íå çàìàñêèðîâàíà, ýòîò áèò ïðèãîäèòñÿ îïåðàöèîííîé ñèñòåìå â îáðàáîò÷èêå ïðåðûâàíèÿ, ÷òîáû ïîíÿòü, ÷òî ïðîèçîøëî; åñëè177æå ñèòóàöèÿ çàìàñêèðîâàíà è ïðåðûâàíèÿ íå ïðîèçîéä¼ò, óñòàíîâëåííûåôëàãè ìîæíî èñïîëüçîâàòü â ïðîãðàììå, ÷òîáû îòñëåäèòü âîçíèêøèå èñêëþ÷åíèÿ. Ñëåäóåò ó÷èòûâàòü, ÷òî ýòè ôëàãè ñàìè ïî ñåáå íèêîãäà íåñáðàñûâàþòñÿ, èõ ìîæíî ñáðîñèòü òîëüêî ÿâíî, è ýòî äåëàåòñÿ êîìàíäîéfclex.

Êîìàíäû äëÿ âçàèìîäåéñòâèÿ ñ ðåãèñòðàìè CR è SR ìû ïîäðîáíîðàññìîòðèì ⠟ 6.7.3.Ÿ 6.7.2. Ïàðàëëåëüíîå âûïîëíåíèå è êîìàíäà waitÑîïðîöåññîð, ÿâëÿÿñü ëîãè÷åñêè îáîñîáëåííîé ÷àñòüþ ïðîöåññîðà, íåèìååò äîñòóïà ê ìàøèííûì êîìàíäàì, íàõîäÿùèìñÿ â ïàìÿòè, è íå óìååòèõ äåêîäèðîâàòü; äåêîäèðîâàíèå êîìàíä îñóùåñòâëÿåò îñíîâíîé ïðîöåññîð, îí æå âûäà¼ò ñîïðîöåññîðó óêàçàíèÿ ê äåéñòâèþ. Ïðè ýòîì ñîïðîöåññîð âûïîëíÿåò êîìàíäû àñèíõðîííî, òî åñòü îñíîâíîé ïðîöåññîð ìîæåòïðîäîëæàòü âûïîëíåíèå ¾ñâîèõ¿ êîìàíä (òàêèõ, ÷üè èìåíà íå íà÷èíàþòñÿ ñ F), íå äîæèäàÿñü ðåçóëüòàòà ðàáîòû ñîïðîöåññîðà.

Ñ îäíîé ñòîðîíû,ýòî ïîçâîëÿåò ïîâûñèòü ýôôåêòèâíîñòü ðàáîòû ïðîãðàìì; ñ äðóãîé ñòîðîíû, òàêàÿ ïàðàëëåëüíàÿ ðàáîòà ìîæåò ñîçäàòü îïðåäåë¼ííûå ïðîáëåìû â äâóõ ñëó÷àÿõ: âî-ïåðâûõ, êîãäà ïîñëåäíàÿ F-êîìàíäà çàïèñûâàåò÷òî-òî â îïåðàòèâíóþ ïàìÿòü, à î÷åðåäíàÿ êîìàíäà îñíîâíîãî ïðîöåññîðà äîëæíà ýòîò ðåçóëüòàò èñïîëüçîâàòü; è, âî-âòîðûõ, êîãäà î÷åðåäíàÿîïåðàöèÿ ñîïðîöåññîðà ïðèâîäèò ê âîçíèêíîâåíèþ èñêëþ÷èòåëüíîé ñèòóàöèè ïðè ýòîì äàëüíåéøàÿ ðàáîòà îñíîâíîé ïðîãðàììû ìîæåò áûòüáåññìûñëåííîé, íî èç-çà àñèíõðîííîãî âûïîëíåíèÿ F-êîìàíä ïðåðûâàíèåìîæåò âîçíèêíóòü, êîãäà îñíîâíàÿ ïðîãðàììà óæå óñïåëà âûïîëíèòü ðÿäèíñòðóêöèé.Äëÿ ñèíõðîíèçàöèè ðàáîòû îñíîâíîãî ïðîöåññîðà ñ àðèôìåòè÷åñêèìñîïðîöåññîðîì èñïîëüçóåòñÿ êîìàíäà fwait èëè ïðîñòî wait (íà ñàìîìäåëå ýòî äâà îáîçíà÷åíèÿ îäíîé è òîé æå ìàøèííîé êîìàíäû).

Ýòà êîìàíäà äîæèäàåòñÿ çàâåðøåíèÿ âñåõ äåéñòâèé, êîòîðûå áûëè àðèôìåòè÷åñêîìó ñîïðîöåññîðó çàäàíû; â òîì ÷èñëå, åñëè â ðåçóëüòàòå ýòèõ äåéñòâèé áûëî èíèöèèðîâàíî ïðåðûâàíèå, òî âûïîëíåíèå êîìàíä ïîñëå waitïðîäîëæèòñÿ óæå ïîñëå âîçâðàòà èç ïðåðûâàíèÿ, åñëè, êîíå÷íî, òàêîâîéâîîáùå ñîñòîèòñÿ (îáû÷íî â ÎÑ Unix ïðåðûâàíèå, èíèöèèðîâàííîå ñîïðîöåññîðîì, ïðèâîäèò ê îòïðàâêå ñèãíàëà SIGFPE òåêóùåìó ïðîöåññó, âðåçóëüòàòå ÷åãî ïðîöåññ çàâåðøàåòñÿ).Èíòåðåñíî, ÷òî ìíîãèå ìíåìîíè÷åñêèå îáîçíà÷åíèÿ êîìàíä ñîïðîöåññîðà íà ñàìîì äåëå ñîîòâåòñòâóþò äâóì ìàøèííûì êîìàíäàì: ñíà÷àëàèä¼ò êîìàíäà wait, çàòåì êîìàíäà, âûïîëíÿþùàÿ íóæíîå äåéñòâèå.Ïðèìåðîì òàêîé ìíåìîíèêè ÿâëÿåòñÿ óæå çíàêîìàÿ íàì fstsw: íà ñàìîì äåëå, ýòî äâå êîìàíäû wait è fnstsw; ïðè íåîáõîäèìîñòè ìîæíîèñïîëüçîâàòü fnstsw îòäåëüíî, áåç îæèäàíèÿ, íî äëÿ ýòîãî íåîáõîäèìîòâ¼ðäî ïîíèìàòü, ÷òî èìåííî âû äåëàåòå. Òî÷íî òàê æå óñòðîåíà êîìàíäà178151413CR15SR1413B C315TW12IC14tag7121111TOP1312tag6109RC108PC976IEM87543210PM UM OM ZM DM IM6543210C2 C1 C0 IR SF PE UE OE ZE DE IE1110tag598tag476tag354tag232tag110tag0Ðèñ.

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

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

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

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