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

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

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

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

Ýòî íå âñåãäà óäîáíî, îñîáåííîäëÿ ëþäåé, ïðèâûêøèõ ê ÿçûêàì âûñîêîãî óðîâíÿ. Ïîëüçóÿñü ìåõàíèçìîì ìàêðîñîâ, ìû ìîæåì èçðÿäíî ñîêðàòèòü çàïèñü âûçîâà ïîäïðîãðàììû. Äëÿ ýòîãî ìû îïèøåì ìàêðîñû pcall1, pcall2 è ò. ä., äëÿ âûçîâà,ñîîòâåòñòâåííî, ïðîöåäóðû îò îäíîãî ïàðàìåòðà, äâóõ ïàðàìåòðîâ è ò. ä.Ñ ïîìîùüþ òàêèõ ìàêðîñîâ çàïèñü âûçîâà ïðîöåäóðû ñîêðàòèòñÿ äî îäíîé ñòðî÷êè; íàïðèìåð, âìåñòîpush edxpush dword mylabelpush dword 517call myprocadd esp, 12ìîæíî áóäåò íàïèñàòüpcall3 myproc, dword 517, dword mylabel, edx÷òî, êîíå÷íî, ãîðàçäî óäîáíåå è ïîíÿòíåå.

Ïîçæå, ðàçîáðàâøèñü ñ ìàêðîîïðåäåëåíèÿìè ãëóáæå, ìû ïåðåïèøåì ýòè ìàêðîñû, âìåñòî íèõ ââåäÿîäèí ìàêðîñ pcall, ðàáîòàþùèé äëÿ ëþáîãî êîëè÷åñòâà àðãóìåíòîâ, íîïîêà äëÿ ïðèìåðà îãðàíè÷èìñÿ ÷àñòíûìè ñëó÷àÿìè. Èòàê, ïèøåì ìàêðîîïðåäåëåíèå:%macro pcall1 2push %2call %1add esp, 4%endmacro; 2 -- êîë-âî ïàðàìåòðîâ ìàêðîñàÌû îïèñàëè ìíîãîñòðî÷íûé ìàêðîñ ñ èìåíåì pcall1, èìåþùèé äâàïàðàìåòðà: èìÿ âûçûâàåìîé ïðîöåäóðû äëÿ êîìàíäû call è àðãóìåíò105ïðîöåäóðû äëÿ çàíåñåíèÿ â ñòåê. Ñòðîêè, íàïèñàííûå ìåæäó äèðåêòèâàìè %macro è %endmacro, ñîñòàâëÿþò òåëî ìàêðîñà øàáëîí äëÿ òåêñòà, êîòîðûé äîëæåí ïîëó÷èòüñÿ â ðåçóëüòàòå ìàêðîïîäñòàíîâêè. Ñàìàìàêðîïîäñòàíîâêà â äàííîì ñëó÷àå áóäåò äîâîëüíî ïðîñòîé: ìàêðîïðîöåññîð òîëüêî çàìåíèò âõîæäåíèÿ %1 è %2 ñîîòâåòñòâåííî íà ïåðâûé èâòîðîé ïàðàìåòðû, çàäàííûå â ìàêðîâûçîâå.

Åñëè ïîñëå òàêîãî îïðåäåëåíèÿ â òåêñòå íàøåé ïðîãðàììû âñòðåòèòñÿ ñòðîêà âèäàpcall1 proc, eaxìàêðîïðîöåññîð âîñïðèìåò ýòó ñòðîêó êàê ìàêðîâûçîâ è âûïîëíèò ìàêðîïîäñòàíîâêó â ñîîòâåòñòâèè ñ âûøåïðèâåä¼ííûì ìàêðîîïðåäåëåíèåì,ñ÷èòàÿ ïåðâûì ïàðàìåòðîì ñëîâî proc, âòîðûì ïàðàìåòðîì ñëîâî eax èïîäñòàâëÿÿ èõ âìåñòî %1 è %2.  ðåçóëüòàòå ïîëó÷èòñÿ ñëåäóþùèé ôðàãìåíò:push eaxcall procadd esp, 4Àíàëîãè÷íûì îáðàçîì îïèøåì ìàêðîñû pcall2 è pcall3:%macro pcall2 3push %3push %2call %1add esp, 8%endmacro%macro pcall3 4push %4push %3push %2call %1add esp, 12%endmacroÄëÿ ïîëíîòû ìîæíî äîïèñàòü òàêæå è ìàêðîñ pcall0:%macro pcall0 1call %1%endmacroÊîíå÷íî, òàêîé ìàêðîñ, â îòëè÷èå îò ïðåäûäóùèõ, íè÷óòü íå ñîêðàùàåò îáú¼ì ïðîãðàììû, íî çàòî îí ïîçâîëèò íàì âñå âûçîâû ïîäïðîãðàììîôîðìèòü åäèíîîáðàçíî.

Îïèñàíèå ìàêðîñîâ pcall4, pcall5 è ò. ä. äî106pcall8 îñòàâëÿåì ÷èòàòåëþ â êà÷åñòâå óïðàæíåíèÿ; çàîäíî äëÿ ñàìîïðîâåðêè îòâåòüòå íà âîïðîñ, ïî÷åìó ìû ïðåäëàãàåì îñòàíîâèòüñÿ èìåííî íàpcall8, à íå, íàïðèìåð, íà pcall9 èëè pcall12.Ðàññìîòðåííûé íàìè ïðèìåð èñïîëüçîâàë ìíîãîñòðî÷íûé ìàêðîñ ;êàê ìû óáåäèëèñü, âûçîâ ìíîãîñòðî÷íîãî ìàêðîñà ñèíòàêñè÷åñêè âûãëÿäèò òî÷íî òàê æå, êàê èñïîëüçîâàíèå ìàøèííûõ êîìàíä èëè ïñåâäîêîìàíä: âìåñòî èìåíè êîìàíäû ïèøåòñÿ èìÿ ìàêðîñà, çàòåì ÷åðåç çàïÿòóþïåðå÷èñëÿþòñÿ ïàðàìåòðû.

Ïðè ýòîì ìíîãîñòðî÷íûé ìàêðîñ âñåãäà ïðåîáðàçóåòñÿ â îäíó èëè íåñêîëüêî ñòðîê íà ÿçûêå àññåìáëåðà. Íî ÷òîåñëè, ê ïðèìåðó, íàì íóæíî ñãåíåðèðîâàòü ñ ïîìîùüþ ìàêðîñà íåêîòîðóþ ÷àñòü ñòðîêè, à íå ôðàãìåíò èç íåñêîëüêèõ ñòðîê? Òàêàÿ ïîòðåáíîñòü òîæå âîçíèêàåò äîâîëüíî ðåãóëÿðíî. Òàê, â ïðèìåðå, ïðèâåä¼ííîì⠟ 2.6.9, âèäíî, ÷òî âíóòðè ïðîöåäóð î÷åíü ÷àñòî ïðèõîäèòñÿ èñïîëüçîâàòü êîíñòðóêöèè âðîäå [ebp+12], [ebp-4] è ò.

ï. äëÿ îáðàùåíèÿ ê ïàðàìåòðàì ïðîöåäóðû è å¼ ëîêàëüíûì ïåðåìåííûì.  ïðèíöèïå, ê ýòèìêîíñòðóêöèÿì íåñëîæíî ïðèâûêíóòü; íî ìîæíî ïîéòè è äðóãèì ïóò¼ì,ïðèìåíèâ îäíîñòðî÷íûå ìàêðîñû . Äëÿ íà÷àëà íàïèøåì ñëåäóþùèå6ìàêðîîïðåäåëåíèÿ:%define%define%define%define%define%definearg1 ebp+8arg2 ebp+12arg3 ebp+16local1 ebp-4local2 ebp-8local3 ebp-12 äîïîëíåíèå ê íèì äîïèøåì åù¼ è òàêîå:%define arg(n) ebp+(4*n)+4%define local(n) ebp-(4*n)Òåïåðü ê ïàðàìåòðó ïðîöåäóðû ìîæíî îáðàòèòüñÿ òàê:mov eax, [arg1]èëè òàê (åñëè, íàïðèìåð, íå õâàòèëî îïèñàííûõ ìàêðîñîâ)mov [arg(7)], edx ïðèíöèïå ìû ìîãëè è êâàäðàòíûå ñêîáêè âêëþ÷èòü âíóòðü ìàêðîñîâ, ÷òîáû íåïèñàòü èõ êàæäûé ðàç.

Íàïðèìåð, åñëè èçìåíèòü îïðåäåëåíèå ìàêðîñà arg1 íàñëåäóþùåå:6 Çäåñü è äàëåå â íàøèõ ïðèìåðàõ ìû ïðåäïîëàãàåì, ÷òî âñå ïàðàìåòðû ïðîöåäóðè âñå ëîêàëüíûå ïåðåìåííûå âñåãäà ïðåäñòàâëÿþò ñîáîé ¾äâîéíûå ñëîâà¿, òî åñòüèìåþò ðàçìåð 4 áàéòà; íà ñàìîì äåëå, êîíå÷íî, ýòî íå âñåãäà òàê, íî íàì ñåé÷àñâàæíåå èëëþñòðàòèâíàÿ öåííîñòü ïðèìåðà.107%define arg1 [ebp+8]òî ñîîòâåòñòâóþùèé ìàêðîâûçîâ ñòàë áû âûãëÿäåòü òàê:mov eax, arg1Ìû íå ñäåëàëè ýòîãî èç ñîîáðàæåíèé ñîõðàíåíèÿ íàãëÿäíîñòè. Àññåìáëåð NASMïîääåðæèâàåò, êàê ìû óæå çíàåì, ñîãëàøåíèå î òîì, ÷òî ëþáîå îáðàùåíèå ê ïàìÿòè îôîðìëÿåòñÿ ñ ïîìîùüþ êâàäðàòíûõ ñêîáîê, åñëè æå èõ íåò, òî ìû èìååìäåëî ñ íåïîñðåäñòâåííûì èëè ðåãèñòðîâûì îïåðàíäîì. Ïðîãðàììèñò, ïðèâûêøèéê ýòîìó ñîãëàøåíèþ, ïðè ÷òåíèè ïðîãðàììû áóäåò âûíóæäåí ïðèëàãàòü ëèøíèåóñèëèÿ, ÷òîáû âñïîìíèòü, ÷òî arg1 â äàííîì ñëó÷àå íå ìåòêà, à èìÿ ìàêðîñà, òàê÷òî çäåñü ïðîèñõîäèò èìåííî îáðàùåíèå ê ïàìÿòè, à íå çàãðóçêà â ðåãèñòð àäðåñàìåòêè.

Ïîíÿòíîñòè ïðîãðàììû òàêèå âåùè îòíþäü íå ñïîñîáñòâóþò. Ó÷òèòå, ÷òî èâû ñàìè, áóäó÷è äàæå àâòîðîì ïðîãðàììû, ìîæåòå çà íåñêîëüêî äíåé íà÷èñòî çàáûòü, ÷òî æå èìåëîñü â âèäó, è òîãäà ýêîíîìèÿ äâóõ ñèìâîëîâ (ñêîáîê) îáåðí¼òñÿäëÿ âàñ ïîòåðåé áåñöåííîãî âðåìåíè.Ÿ 3.5.3. Îäíîñòðî÷íûå ìàêðîñû; ìàêðîïåðåìåííûåÊàê âèäíî èç ïðèìåðîâ ïðåäûäóùåãî ïàðàãðàôà, îäíîñòðî÷íûé ìàêðîñ ýòî òàêîé ìàêðîñ, îïðåäåëåíèå êîòîðîãî ñîñòîèò èç îäíîé ñòðîêè,à åãî âûçîâ ðàçâîðà÷èâàåòñÿ âî ôðàãìåíò ñòðîêè òåêñòà (òî åñòü ìîæåòèñïîëüçîâàòüñÿ äëÿ ãåíåðàöèè ÷àñòè ñòðîêè). Îòìåòèì, ÷òî åäèíîæäûîïðåäåë¼ííûé ìàêðîñ ìîæíî ïðè íåîáõîäèìîñòè ïåðåîïðåäåëèòü, ïðîñòîâñòàâèâ â òåêñò ïðîãðàììû åù¼ îäíî îïðåäåëåíèå òîãî æå ñàìîãî ìàêðîñà.

Ñ òîãî ìîìåíòà, êàê ìàêðîïðîöåññîð ¾óâèäèò¿ íîâîå îïðåäåëåíèå,îí áóäåò èñïîëüçîâàòü åãî âìåñòî ñòàðîãî. Òàêèì îáðàçîì, îäíî è òî æåèìÿ ìàêðîñà â ðàçíûõ ìåñòàõ ïðîãðàììû ìîæåò îçíà÷àòü ðàçíûå âåùèè ðàñêðûâàòüñÿ â ðàçíûå ôðàãìåíòû òåêñòà. Áîëåå òîãî, ìàêðîñ âîîáùå ìîæíî óáðàòü, âîñïîëüçîâàâøèñü äèðåêòèâîé %undef; âñòðåòèâ òàêóþäèðåêòèâó, ìàêðîïðîöåññîð íåìåäëåííî ¾çàáóäåò¿ î ñóùåñòâîâàíèè ìàêðîñà.

Ïðåäñòàâëÿåò èíòåðåñ âîïðîñ î òîì, ÷òî áóäåò, åñëè â îïðåäåëåíèèîäíîãî ìàêðîñà èñïîëüçîâàòü âûçîâ äðóãîãî ìàêðîñà, à ýòîò ïîñëåäíèé,â ñâîþ î÷åðåäü, âðåìÿ îò âðåìåíè ïåðåîïðåäåëÿòü.Åñëè äëÿ îïèñàíèÿ îäíîñòðî÷íîãî ìàêðîñà A èñïîëüçîâàòü óæå çíàêîìóþ íàì äèðåêòèâó %define è â å¼ òåëå èñïîëüçîâàòü ìàêðîâûçîâ ìàêðîñà B, òî ýòîò ìàêðîâûçîâ â ñàìîé äèðåêòèâå íå ðàñêðûâàåòñÿ; ìàêðîïðîöåññîð îñòàâëÿåò âõîæäåíèå ìàêðîñà B êàê îíî åñòü äî òåõ ïîð, ïîêà íåâñòðåòèò âûçîâ ìàêðîñà A.

Êîãäà æå áóäåò âûïîëíåíà ìàêðîïîäñòàíîâêàäëÿ A, â å¼ ðåçóëüòàòå áóäåò ñîäåðæàòüñÿ B, è äëÿ íåãî ìàêðîïðîöåññîð, â ñâîþ î÷åðåäü, âûïîëíèò ìàêðîïîäñòàíîâêó. Òàêèì îáðàçîì, áóäåòèñïîëüçîâàíî òî îïðåäåëåíèå ìàêðîñà B, êîòîðîå áûëî àêòóàëüíûì â ìîìåíò ïîäñòàíîâêè A.Ïîÿñíèì ñêàçàííîå íà ïðèìåðå. Ïóñòü ìû ââåëè äâà ìàêðîñà:108%define%definethenumbermkvar25dd thenumberÅñëè òåïåðü íàïèñàòü â ïðîãðàììå ñòðî÷êóvar1mkvaròî ìàêðîïðîöåññîð ñíà÷àëà âûïîëíèò ìàêðîïîäñòàíîâêó äëÿ mkvar, ïîëó÷èâ ñòðîêóvar1dd thenumberà èç íå¼, â ñâîþ î÷åðåäü, ìàêðîïîäñòàíîâêîé thenumber ïîëó÷èò ñòðîêóvar1dd 25Åñëè òåïåðü ïåðåîïðåäåëèòü thenumber è ñíîâà âîñïîëüçîâàòüñÿ âûçîâîìmkvar:%definevar2thenumbermkvar36òî ðåçóëüòàòîì ðàáîòû ìàêðîïðîöåññîðà áóäåò ñòðîêà, ñîäåðæàùàÿ èìåííî ÷èñëî 36:var2dd 36íåñìîòðÿ íà òî, ÷òî ñàì ìàêðîñ mkvar ìû íå èçìåíÿëè: íà ïåðâîì øàãå áóäåò ïîëó÷åíî, êàê è â ïðîøëûé ðàç, dd thenumber, íî ó thenumber òåïåðüçíà÷åíèå 36, îíî è áóäåò ïîäñòàâëåíî.

Òàêàÿ ñòðàòåãèÿ ìàêðîïîäñòàíîâîêíàçûâàåòñÿ ¾ëåíèâîé7 ¿. Îäíàêî àññåìáåð NASM ïîçâîëÿåò ïðèìåíÿòüè äðóãóþ ñòðàòåãèþ, íàçûâàåìóþ ýíåðãè÷íîé, äëÿ ÷åãî ïðåäóñìîòðåíàäèðåêòèâà %xdefine. Ýòà äèðåêòèâà ïîëíîñòüþ àíàëîãè÷íà äèðåêòèâå%define ñ òîé òîëüêî ðàçíèöåé, ÷òî, åñëè â òåëå îïèñàíèÿ ìàêðîñà âñòðå÷àþòñÿ ìàêðîâûçîâû, ìàêðîïðîöåññîð ïðîèçâîäèò èõ ìàêðîïîäñòàíîâêèíåçàìåäëèòåëüíî, íå äîæèäàÿñü, ïîêà ïîëüçîâàòåëü âûçîâåò îïèñûâàåìûé ìàêðîñ. Òàê, åñëè â âûøåïðèâåä¼ííîì ïðèìåðå çàìåíèòü äèðåêòèâó%define â îïèñàíèè ìàêðîñà mkvar íà %xdefine:%define%xdefinevar1%definevar2thenumbermkvarmkvarthenumbermkvar25dd thenumber367 Òàêîå íàçâàíèå ÿâëÿåòñÿ êàëüêîé àíãëèéñêîãî lazy è ÷àñòè÷íî îïðàâäàíî òåì, ÷òîìàêðîïðîöåññîð êàê áû ¾ëåíèòñÿ¿ âûïîëíÿòü ìàêðîïîäñòàíîâêó (â äàííîì ñëó÷àåìàêðîñà thenumber), ïîêà åãî ê ýòîìó íå âûíóäÿò.109òî îáå ïîëó÷èâøèåñÿ ñòðîêè áóäóò ñîäåðæàòü ÷èñëî 25:var1var2dd 25dd 25Ïåðåîïðåäåëåíèå ìàêðîñà thenumber òåïåðü íå â ñèëàõ ïîâëèÿòü íà ðàáîòó ìàêðîñà mkvar, ïîñêîëüêó òåëî ìàêðîñà mkvar íà ýòîò ðàç íå ñîäåðæèòñëîâà thenumber: îáðàáàòûâàÿ îïðåäåëåíèå mkvar, ìàêðîïðîöåññîð ïîäñòàâèë âìåñòî ñëîâà thenumber åãî çíà÷åíèå (25).Èíîãäà âîçíèêàåò ïîòðåáíîñòü ñâÿçàòü ñ èìåíåì ìàêðîñà íå ïðîñòîñòðîêó, à ÷èñëî, ÿâëÿþùååñÿ ðåçóëüòàòîì âû÷èñëåíèÿ àðèôìåòè÷åñêîãîâûðàæåíèÿ.

Àññåìáëåð NASM ïîçâîëÿåò ýòî ñäåëàòü, èñïîëüçóÿ äèðåêòèâó %assign.  îòëè÷èå îò %define è %xdefine, ýòà äèðåêòèâà íå òîëüêîâûïîëíÿåò âñå íåîáõîäèìûå ïîäñòàíîâêè â òåëå ìàêðîîïðåäåëåíèÿ, íî èïûòàåòñÿ âû÷èñëèòü òåëî êàê îáûêíîâåííîå öåëî÷èñëåííîå àðèôìåòè÷åñêîå âûðàæåíèå. Åñëè ýòî íå ïîëó÷àåòñÿ, ôèêñèðóåòñÿ îøèáêà. Òàê,åñëè íàïèñàòü â ïðîãðàììå ñíà÷àëà%assignvar25varvar+1à ïîòîì%assignòî â ðåçóëüòàòå ñ ìàêðîèìåíåì var áóäåò ñâÿçàíî çíà÷åíèå 26, êîòîðîå èáóäåò ïîäñòàâëåíî, åñëè ìàêðîïðîöåññîð âñòðåòèò ñëîâî var â äàëüíåéøåì òåêñòå ïðîãðàììû.Ìàêðîèìåíà, ââîäèìûå äèðåêòèâîé %assign, îáû÷íî íàçûâàþò ìàêðîïåðåìåííûìè . Êàê ìû óâèäèì äàëåå, ìàêðîïåðåìåííûå ÿâëÿþòñÿâàæíûì ñðåäñòâîì, ïîçâîëÿþùèì çàäàòü ìàêðîïðîöåññîðó öåëóþ ïðîãðàììó, ðåçóëüòàòîì êîòîðîé ìîæåò ñòàòü î÷åíü äëèííûé òåêñò íà ÿçûêåàññåìáëåðà.Ÿ 3.5.4.

Óñëîâíàÿ êîìïèëÿöèÿ×àñòî ïðè ðàçðàáîòêå ïðîãðàìì âîçíèêàåò ïîòðåáíîñòü â ñîçäàíèèðàçëè÷íûõ âåðñèé èñïîëíÿåìîãî ôàéëà ñ èñïîëüçîâàíèåì îäíîãî è òîãîæå èñõîäíîãî òåêñòà. Äîïóñòèì, ìû ïèøåì ïðîãðàììû íà çàêàç è ó íàñåñòü äâà çàêàç÷èêà Ïåòðîâ è Ñèäîðîâ, ïðè÷¼ì ïðîãðàììû äëÿ íèõ ïî÷òèîäèíàêîâû, íî ó êàæäîãî èç äâîèõ èìåþòñÿ ñïåöèôè÷åñêèå ïîòðåáíîñòè,îòñóòñòâóþùèå ó äðóãîãî.  òàêîé ñèòóàöèè õîòåëîñü áû, êîíå÷íî, èìåòüè ïîääåðæèâàòü îäèí èñõîäíûé òåêñò: â ïðîòèâíîì ñëó÷å ó íàñ ïîÿâÿòñÿäâå êîïèè îäíîãî è òîãî æå êîäà, è ïðèä¼òñÿ, íàïðèìåð, êàæäóþ íàéäåííóþ îøèáêó èñïðàâëÿòü â äâóõ ìåñòàõ. Îäíàêî ïðè êîìïèëÿöèè âåðñèè110äëÿ Ïåòðîâà íóæíî èñêëþ÷èòü èç ðàáîòû ôðàãìåíòû, ïðåäíàçíà÷åííûåäëÿ Ñèäîðîâà, è íàîáîðîò.Ïîäîáíàÿ ïîòðåáíîñòü âîçíèêàåò è â äðóãèõ ñèòóàöèÿõ. Èçâåñòíî, íàïðèìåð, ÷òî îòëàäî÷íàÿ ïå÷àòü (òî åñòü âñòàâêà â ïðîãðàììó ñïåöèàëüíûõ îïåðàöèé âûâîäà, ïîçâîëÿþùèõ ïîíÿòü, ÷òî ïðîèñõîäèò âî âðåìÿðàáîòû ïðîãðàììû) ÿâëÿåòñÿ îäíèì èç ñàìûõ óíèâåðñàëüíûõ è ìîùíûõñðåäñòâ îòëàäêè ïðîãðàìì; â òî æå âðåìÿ îêîí÷àòåëüíàÿ âåðñèÿ ïðîãðàììû, ðàçóìååòñÿ, íå äîëæíà ñîäåðæàòü îïåðàöèé îòëàäî÷íîé ïå÷àòè,ïîñêîëüêó âñÿ îòëàäî÷íàÿ èíôîðìàöèÿ ïðåäíàçíà÷åíà äëÿ ïðîãðàììèñòà, àâòîðà ïðîãðàììû, à ïîëüçîâàòåëþ ìîæåò òîëüêî ìåøàòü.

Ïðîáëåìàâ òîì, ÷òî îòëàäêà ïðîãðàììû ïðîöåññ áåñêîíå÷íûé, è êàê òîëüêî ìûðåøèì, ÷òî îíà çàâåðøåíà è óäàëèì èç òåêñòà âñþ îòëàäî÷íóþ ïå÷àòü,ïî çàêîíó ïîäëîñòè òóò æå îáíàðóæèòñÿ î÷åðåäíàÿ îøèáêà, è íàì âíîâüïðèä¼òñÿ ðåäàêòèðîâàòü íàø èñõîäíèê, ÷òîáû âåðíóòü îòëàäî÷íóþ ïå÷àòü íà ìåñòî.Áîëüøèíñòâî ïðîôåññèîíàëüíûõ êîìïèëèðóåìûõ ÿçûêîâ ïðîãðàììèðîâàíèÿ ïîääåðæèâàþò äëÿ ïîäîáíûõ ñëó÷àåâ ñïåöèàëüíûå êîíñòðóêöèè, íàçûâàåìûå äèðåêòèâàìè óñëîâíîé êîìïèëÿöèè è ïîçâîëÿþùèå âûáèðàòü, êàêèå ôðàãìåíòû ïðîãðàììû êîìïèëèðîâàòü, à êàêèåèãíîðèðîâàòü.

Îáû÷íî îòðàáîòêó äèðåêòèâ óñëîâíîé êîìïèëÿöèè âîçëàãàþò íà ìàêðîïðîöåññîð, åñëè, êîíå÷íî, òàêîâîé â ÿçûêå ïðåäóñìîòðåí.Ñêàçàííîå ñïðàâåäëèâî, êðîìå ïðî÷åãî, ïðàêòè÷åñêè äëÿ âñåõ ÿçûêîâ àññåìáëåðà, âêëþ÷àÿ è íàø NASM.Ðàññìîòðèì ïðèìåð, ñâÿçàííûé ñ îòëàäêîé. Äîïóñòèì, ìû íàïèñàëèïðîãðàììó, îòêîìïèëèðîâàëè å¼ è çàïóñòèëè, íî îíà çàâåðøàåòñÿ àâàðèéíî, è ìû íå ìîæåì ïîíÿòü ïðè÷èíó, íî äóìàåì, ÷òî àâàðèÿ ïðîèñõîäèò âíåêîåì ¾ïîäîçðèòåëüíîì¿ ôðàãìåíòå. ×òîáû ïðîâåðèòü ñâî¼ ïðåäïîëîæåíèå, ìû õîòèì íåïîñðåäñòâåííî ïåðåä âõîäîì â ýòîò ôðàãìåíò è ñðàçóïîñëå âûõîäà èç íåãî âñòàâèòü ïå÷àòü ñîîòâåòñòâóþùèõ ñîîáùåíèé.

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

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

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

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