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

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

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

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

×èñëî îáû÷íîé òî÷íîñòè çàíèìàåò â ïàìÿòè 32áèòà, èç êîòîðûõ îäèí èñïîëüçóåòñÿ äëÿ õðàíåíèÿ çíàêà ÷èñëà, âîñåìü äëÿ õðàíåíèÿ ñìåù¼ííîãî ìàøèííîãî ïîðÿäêà (âåëè÷èíà ñìåùåíèÿ 127) è îñòàâøèåñÿ 23 äëÿ õðàíåíèÿ ìàíòèññû. ×èñëî äâîéíîé òî÷íîñòè çàíèìàåò 64 áèòà, ïðè÷¼ì íà ìàøèííûé ïîðÿäîê îòâîäèòñÿ 11 áèò, àíà ìàíòèññó 52, è ñìåùåíèå ìàøèííîãî ïîðÿäêà ñîñòàâëÿåò 1023. Íàêîíåö, ÷èñëî ïîâûøåííîé òî÷íîñòè çàíèìàåò 80 áèò, èç íèõ 15 áèò îòâåäåíîíà ìàøèííûé ïîðÿäîê ñî ñìåùåíèåì 16383, à îñòàâøèåñÿ 64 ñîñòàâëÿþòìàíòèññó, ïðè÷¼ì â ýòîì ôîðìàòå ïðèñóòñòâóåò îäíîáèòîâàÿ öåëàÿ ÷àñòüìàíòèññû (îáû÷íî åäèíèöà).1 Çà èñêëþ÷åíèåì íåñêîëüêèõ îñîáûõ ñëó÷àåâ, î êîòîðûõ ðå÷ü ïîéä¼ò äàëüøå.2 Ñîîòâåòñòâóþùèå àíãëîÿçû÷íûå òåðìèíû single precision, double precision èextended precision167Ìàøèííûé ïîðÿäîê, ñîñòîÿùèé èç îäíèõ íóëåé èëè, íàîáîðîò, èç îäíèõ åäèíèö, ïðåäñòàâëÿåò ñîáîé ïðèçíàê îñîáîãî ñëó÷àÿ.

Ïîðÿäîê, ñîñòîÿùèé èç îäíèõ íóëåé, îçíà÷àåò:• ïðè ìàíòèññå, ñîñòîÿùåé èç îäíèõ íóëåé â çàâèñèìîñòè îò çíàêîâîãî áèòà ëèáî íîëü, ëèáî ¾îòðèöàòåëüíûé íîëü¿ (ýòî ðàçëè÷èåáûâàåò ïîëåçíî, åñëè ðåçóëüòàò î÷åðåäíîé îïåðàöèè ñòîëü ìàë ïîìîäóëþ, ÷òî åãî íåâîçìîæíî ïðåäñòàâèòü â âèäå ÷èñëà ñ ïëàâàþùåé òî÷êîé òîãäà ìû õîòÿ áû ìîæåì ñêàçàòü, êàêîâ áûë çíàêðåçóëüòàòà);• ïðè ìàíòèññå, ñîäåðæàùåé õîòÿ áû îäíó åäèíèöó äåíîðìàëèçîâàííîå ÷èñëî , òî åñòü ÷èñëî íàñòîëüêî ìàëîå ïî ìîäóëþ, ÷òîäàæå ïðè íàèìåíüøåì âîçìîæíîì çíà÷åíèè ìàøèííîãî ïîðÿäêà íèîäèí çíà÷àùèé áèò íå ïîïàë áû â ðàçðÿäû ìàíòèññû.Ïîðÿäîê, ñîñòîÿùèé èç îäíèõ åäèíèö, ìîæåò îçíà÷àòü ñëåäóþùåå:• ïðè ìàíòèññå, ñîñòîÿùåé èç îäíèõ íóëåé ¾áåñêîíå÷íîñòü¿ (ïîëîæèòåëüíóþ èëè îòðèöàòåëüíóþ â çàâèñèìîñòè îò çíàêîâîãî áèòà);• ïðè ïåðâîì áèòå ìàíòèññû, óñòàíîâëåííîì â åäèíèöó (äëÿ 80áèòíûõ ÷èñåë ïðè ïåðâûõ äâóõ áèòàõ ìàíòèññû, óñòàíîâëåííûõ âåäèíèöó), à îñòàëüíûõ áèòàõ ìàíòèññû, óñòàíîâëåííûõ â íîëü, çíàêîâûé áèò, ðàâíûé åäèíèöå, îçíà÷àåò ¾íåîïðåäåë¼ííîñòü¿, à çíàêîâûé áèò, ðàâíûé íóëþ ¾íå-÷èñëî òèïà QNAN¿ (quiet not-anumber); èíîãäà ãîâîðÿò, ÷òî íåîïðåäåë¼ííîñòü åñòü ÷àñòíûé ñëó÷àé QNAN;• ïðè ïåðâîì áèòå ìàíòèññû, ðàâíîì íóëþ (äëÿ 80-áèòíûõ ïðè äâóõïåðâûõ áèòàõ ìàíòèññû, ðàâíûõ 10) è ïðè íàëè÷èè â îñòàëüíîéìàíòèññå åäèíè÷íûõ áèòîâ ¾íå-÷èñëî òèïà SNAN¿;• âñå îñòàëüíûå ñèòóàöèè (íàïðèìåð, ìàíòèññà èç îäíèõ åäèíèö)îçíà÷àþò ¾íåïîääåðæèâàåìîå ÷èñëî¿.Ÿ 6.2.

Óñòðîéñòâî àðèôìåòè÷åñêîãîñîïðîöåññîðàÀðèôìåòè÷åñêèé ñîïðîöåññîð èìååò âîñåìü 80-áèòîâûõ ðåãèñòðîâ äëÿõðàíåíèÿ ÷èñåë, êîòîðûå ìû óñëîâíî îáîçíà÷èì R0, R1, ..., R7; ðåãèñòðûîáðàçóþò ñâîåîáðàçíûé ñòåê, òî åñòü îäèí èç ðåãèñòðîâ Rn ñ÷èòàåòñÿâåðøèíîé ñòåêà è îáîçíà÷àåòñÿ ST0, ñëåäóþùèé çà íèì îáîçíà÷àåòñÿ ST1è ò. ä., ïðè÷¼ì ñ÷èòàåòñÿ, ÷òî ñëåäîì çà R7 èä¼ò R0 (íàïðèìåð, åñëè R7 âíàñòîÿùèé ìîìåíò îáîçíà÷åí êàê ST4, òî ðîëü ST5 áóäåò èãðàòü ðåãèñòð168R0ST(5)CRR1ST(6)SRR2ST(7)TWR3ST/ST(0)R4ST(1)R5ST(2)R6ST(3)FIPR7ST(4)FDPtop = 3Ðèñ. 6.1. Ðåãèñòðû àðèôìåòè÷åñêîãî ñîïðîöåññîðàR0, ST6 áóäåò â R1 è ò.

ä.) Íà ðèñ. 6.1 ïîêàçàíà ñèòóàöèÿ, êîãäà âåðøèíîé ñòåêà îáúÿâëåí ðåãèñòð R3; ðîëü âåðøèíû ñòåêà ìîæåò èãðàòü ëþáîéèç ðåãèñòðîâ Rn, ïðè÷¼ì ïðè çàíåñåíèè íîâîãî çíà÷åíèÿ â ýòîò ñòåê âñåçíà÷åíèÿ, êîòîðûå òàì óæå õðàíèëèñü, îñòàþòñÿ íà ñâîèõ ìåñòàõ, à ìåíÿåòñÿ òîëüêî íîìåð ðåãèñòðà, èãðàþùåãî ðîëü âåðøèíû, òî åñòü åñëè âñòåê, ïîêàçàííûé íà ðèñóíêå, âíåñòè íîâîå çíà÷åíèå, òî ðîëü âåðøèíû ST0 ïåðåéä¼ò ê ðåãèñòðó R2, ðåãèñòð R3 ñòàíåò îáîçíà÷àòüñÿ ST1, è òàêäàëåå. Ïðè óäàëåíèè çíà÷åíèÿ èç ñòåêà ïðîèñõîäèò îáðàòíîå äåéñòâèå.Îòìåòèì, ÷òî ê ýòèì ðåãèñòðàì ìîæíî îáðàòèòüñÿ òîëüêî ïî èõ òåêóùåìó íîìåðó â ñòåêå, òî åñòü ïî èìåíàì ST0, ST1, ..., ST7. Îáðàòèòüñÿ êíèì ïî èõ ïîñòîÿííûì íîìåðàì (R0, R1, ..., R7) íåëüçÿ, ïðîöåññîð íå äà¼òòàêîé âîçìîæíîñòè.Îáîçíà÷åíèÿ ST0, ST1, ..., ST7 ñîîòâåòñòâóþò ñîãëàøåíèÿì NASM.

 äðóãèõàññåìáëåðàõ èñïîëüçóþòñÿ äðóãèå îáîçíà÷åíèÿ; â ÷àñòíîñòè, MASM è íåêîòîðûåäðóãèå àññåìáëåðû îáîçíà÷àþò ðåãèñòðû àðèôìåòè÷åñêîãî ñîïðîöåññîðà ñ èñïîëüçîâàíèåì êðóãëûõ ñêîáîê: ST(0), ST(1), ..., ST(7), è èìåííî òàêèå îáîçíà÷åíèÿ ÷àùå âñåãî âñòðå÷àþòñÿ â ëèòåðàòóðå. Íå óäèâëÿéòåñü ýòîìó.Ðåãèñòð ñîñòîÿíèÿ SR (state register) ñîäåðæèò ðÿä ôëàãîâ, îïèñûâàþùèõ, êàê ñëåäóåò èç íàçâàíèÿ, ñîñòîÿíèå àðèôìåòè÷åñêîãî ñîïðîöåññîðà. ÷àñòíîñòè, áèòû 13-é, 12-é è 11-é (âñåãî òðè áèòà) ñîäåðæàò ÷èñëî îò0 äî 7, íàçûâàåìîå TOP è ïîêàçûâàþùåå, êàêîé èç ðåãèñòðîâ Rn â íàñòîÿùèé ìîìåíò ñ÷èòàåòñÿ âåðøèíîé ñòåêà.

Ôëàãè C0 (áèò 8), C2 (áèò10) è C3 (áèò 14) ñîîòâåòñòâóþò ïî ñìûñëó ôëàãàì öåíòðàëüíîãî ïðîöåññîðà CF, PF è ZF. Îñòàëüíûå ðàçðÿäû ðåãèñòðà ST óêàçûâàþò íà òàêèåîñîáûå ñèòóàöèè, êàê ïåðåïîëíåíèå èëè àíòèïåðåîïëíåíèå ñòåêà (SF), ïîòåðþ òî÷íîñòè (P), ñëèøêîì áîëüøîé èëè ñëèøêîì ìàëåíüêèé ðåçóëüòàòïîñëåäíåé îïåðàöèè (O è U), äåëåíèå íà íîëü (Z) è äð. Ðåãèñòð óïðàâëåíèÿ CR òàêæå ñîñòîèò èç îòäåëüíûõ ôëàãîâ, íî, â îòëè÷èå îò ðåãèñòðàñòàòóñà, ýòè ôëàãè îáû÷íî óñòàíàâëèâàþòñÿ ïðîãðàììîé è ïðåäíàçíà÷åíû äëÿ óïðàâëåíèÿ ñîïðîöåññîðîì, òî åñòü äëÿ çàäàíèÿ ðåæèìà åãîðàáîòû.

Íàïðèìåð, áèòû 11 è 10 ýòîãî ðåãèñòðà çàäàþò ðåæèì îêðóãëåíèÿ ðåçóëüòàòà îïåðàöèè: 00 ê áëèæàéøåìó ÷èñëó, 01 â ñòîðîíó169óìåíüøåíèÿ, 10 â ñòîðîíó óâåëè÷åíèÿ, 11 â ñòîðîíó íóëÿ (òî åñòüâ ñòîðîíó óìåíüøåíèÿ àáñîëþòíîé âåëè÷èíû). Ðåãèñòð òåãîâ TW ñîäåðæèò ïî äâà áèòà äëÿ îáîçíà÷åíèÿ ñîñòîÿíèÿ êàæäîãî èç ðåãèñòðîâ R0R7:00 ðåãèñòð ñîäåðæèò ÷èñëî, 01 ðåãèñòð ñîäåðæèò íîëü, 10 â ðåãèñòðå íå-÷èñëî (NAN, áåñêîíå÷íîñòü èëè äåíîðìàëèçîâàííîå ÷èñëî), 11 ðåãèñòð ïóñò. Èñõîäíî âñå âîñåìü ðåãèñòðîâ ïîìå÷åíû êàê ïóñòûå, ïî ìåðå äîáàâëåíèÿ ÷èñåë â ñòåê ñîîòâåòñòâóþùèå ðåãèñòðû ïîìå÷àþòñÿ êàêçàïîëíåííûå, ïðè èçâëå÷åíèè ÷èñåë èç ñòåêà ñíîâà êàê ïóñòûå.

Ýòîïîçâîëÿåò îòñëåæèâàòü ïåðåïîëíåíèå è àíòèïåðåïîëíåíèå ñòåêà òàêèåñèòóàöèè, êîãäà â ñòåê çàíîñèòñÿ äåâÿòîå ïî ñ÷¼òó ÷èñëî (êîòîðîå íåêóäàïîìåñòèòü), ëèáî, íàîáîðîò, äåëàåòñÿ ïîïûòêà èçâëå÷ü ÷èñëî èç ïóñòîãîñòåêà. Ýòè òðè ðåãèñòðà ìû ïîäðîáíî ðàññìîòðèì ⠟ 6.7.3.Ñëóæåáíûå ðåãèñòðû FIP è FDP ïðåäíàçíà÷åíû äëÿ õðàíåíèÿ àäðåñàè îïåðàíäà ïîñëåäíåé âûïîëíÿåìîé ñîïðîöåññîðîì ìàøèííîé êîìàíäûè èñïîëüçóþòñÿ îïåðàöèîííîé ñèñòåìîé ïðè àíàëèçå ïðè÷èí âîçíèêíîâåíèÿ îøèáî÷íîé (èñêëþ÷èòåëüíîé) ñèòóàöèè.Ìíåìîíè÷åñêèå îáîçíà÷åíèÿ âñåõ ìàøèííûõ êîìàíä, èìåþùèõ îòíîøåíèå ê àðèôìåòè÷åñêîìó ñîïðîöåññîðó, íà÷èíàþòñÿ ñ áóêâû f îò àíãëèéñêîãî oating (ïëàâàþùèé; ñëîâîñî÷åòàíèå ¾ïëàâàþùàÿ òî÷êà¿ ïîàíãëèéñêè çâó÷èò êàê oating point ). Áîëüøèíñòâî òàêèõ êîìàíä íå èìååò îïåðàíäà èëè èìååò îäèí îïåðàíä, íî âñòðå÷àþòñÿ è êîìàíäû ñ äâóìÿîïåðàíäàìè.  êà÷åñòâå îïåðàíäà ìîãóò âûñòóïàòü ðåãèñòðû ñîïðîöåññîðà, îáîçíà÷àåìûå STn, ëèáî îïåðàíäû òèïà ¾ïàìÿòü¿.

Ïðè ýòîì ñîïðîöåññîð óìååò ðàáîòàòü ñ âåùåñòâåííûìè ÷èñëàìè, õðàíÿùèìèñÿ â ïàìÿòèâ ëþáîì èç òð¼õ ôîðìàòîâ, çàäàííûõ ñòàíäàðòîì IEEE-754, ÷òî îçíà÷àåò, ÷òî îïåðàíä òèïà ¾ïàìÿòü¿ äîëæåí áûòü ÷åòûð¼õáàéòíûì (ýòîò ðàçìåð ìîæíî óêàçàòü çíàêîìûì íàì ñëîâîì dword), âîñüìèáàéòíûì èëèäåñÿòèáàéòíûì. Äëÿ îáîçíà÷åíèÿ âîñüìèáàéòíûõ îïåðàíäîâ àññåìáëåðNASM ïðåäóñìàòðèâàåò êëþ÷åâîå ñëîâî qword (îò ñëîâ quadro word, ó÷åòâåð¼ííîå ñëîâî), à äëÿ îáîçíà÷åíèÿ äåñÿòèáàéòíûõ ñëîâî tword (îò tenword ). Åñòü è ñîîòâåòñòâóþùèå ïñåâäîêîìàíäû äëÿ îïèñàíèÿ äàííûõ (dqçàäà¼ò âîñüìèáàéòíîå çíà÷åíèå, dt äåñÿòèáàéòíîå), à òàêæå äëÿ ðåçåðâèðîâàíèÿ íåèíèöèàëèçèðîâàííîé ïàìÿòè (resq ðåçåðâèðóåò çàäàííîå êîëè÷åñòâî âîñüìèáàéòíûõ ýëåìåíòîâ, rest çàäàííîå êîëè÷åñòâîäåñÿòèáàéòíûõ).

Ñàì ñîïðîöåññîð âñå äåéñòâèÿ âûïîëíÿåò ñ ÷èñëàìè ïîâûøåííîé òî÷íîñòè, à ÷èñëà äðóãèõ ôîðìàòîâ èñïîëüçóåò òîëüêî ïðèçàãðóçêå è âûãðóçêå.Ÿ 6.3. Îáìåí äàííûìè ñ ñîïðîöåññîðîìÊîìàíäà fld (îò ñëîâ oat load ), èìåþùàÿ îäèí îïåðàíä, ïîçâîëÿåòçàíåñòè â ðåãèñòðîâûé ñòåê ÷èñëî èç çàäàííîãî ìåñòà, â êà÷åñòâå êîòî170ðîãî ìîæåò âûñòóïàòü îïåðàíä òèïà ¾ïàìÿòü¿ ðàçìåðà dword, qword èëètword, ëèáî ðåãèñòð STn.

Íàïðèìåð, êîìàíäàfld st0ñîçäà¼ò êîïèþ âåðøèíû ñòåêà, à êîìàíäàfld qword [matrix+ecx*8]çàãðóæàåò â ñòåê èç ìàññèâà matrix, ñîñòîÿùåãî èç âîñüìèáàéòîâûõ ÷èñåë, ýëåìåíò ñ íîìåðîì, õðàíÿùèìñÿ â ðåãèñòðå ECX. Ïðè ýòîì â ðåãèñòðåSR óìåíüøàåòñÿ çíà÷åíèå ÷èñëà TOP, òàê ÷òî âåðøèíà ñòåêà ñäâèãàåòñÿââåðõ, ñòàðàÿ âåðøèíà ïîëó÷àåò èìÿ ST1 è ò. ä.Èçâëå÷ü ðåçóëüòàò èç ñîïðîöåññîðà (ñ âåðøèíû ðåãèñòðîâîãî ñòåêà)ìîæíî êîìàíäàìè fst è fstp, èìåþùèìè îäèí îïåðàíä. ×àùå âñåãî ýòîîïåðàíä òèïà ¾ïàìÿòü¿, íî ìîæíî óêàçàòü è ðåãèñòð èç ñòåêà, íàïðèìåðST6, âàæíî òîëüêî, ÷òî ýòîò ðåãèñòð äîëæåí áûòü ïóñòûì.

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

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

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

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