А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix (1110582), страница 42
Текст из файла (страница 42)
Àðõèòåêòóðà êîìïüþòåðà. 4-å èçäàíèå. ÑÏá.: Ïèòåð,2003.[2] Çóáêîâ Ñ. Â. Assembler äëÿ DOS, Windows è UNIX. Ì.:ÄÌÊ, 2006.[3] Áàóðí Ñ. Îïåðàöèîííàÿ ñèñòåìà UNIX. Ì.:Ìèð, 1986.[4] Ðîáà÷åâñêèé À. Ì. Îïåðàöèîííàÿ ñèñòåìà UNIX. Èçä-âî ¾BHV¿,Ñàíêò-Ïåòåðáóðã, 1997.[5] The Netwide Assembler: NASM.
http://www.nasm.us/doc/ Èìååò-ñÿ ðóññêèé ïåðåâîä, âûïîëíåííûé AsmOs group; ñì. íàïðèìåð,http://opslab.org.ru/nasm[6] Raymond Filiatreault. Simply FPU (an FPU tutorial). 2003.http://www.ray.masmcode.com/fpu.htmlÄîìàøíÿÿ ñòðàíèöà ýòîé êíèãè â ñåòèÈíòåðíåò ðàñïîëîæåíà ïî àäðåñóhttp://www.stolyarov.info/books/asm_unixÇäåñü âû ìîæåòå ïîëó÷èòü òåêñòû ïðèìåðîâïðîãðàìì, ïðèâåä¼ííûõ â ýòîé êíèãå, à òàêæåýëåêòðîííóþ âåðñèþ ñàìîé êíèãè.185ÎãëàâëåíèåÏðåäèñëîâèå äëÿ ïðåïîäàâàòåëåé .
. . . . . . . . . . . . . . . . .Ïðåäèñëîâèå äëÿ ñòóäåíòîâ . . . . . . . . . . . . . . . . . . . . .Áëàãîäàðíîñòè è ïîñâÿùåíèå . . . . . . . . . . . . . . . . . . . .1. Ââåäåíèå 1.1. Ìàøèííûé êîä è àññåìáëåð . . . . . . . . . . . .
. . . . . . 1.2. Îñîáåííîñòè ïðîãðàììèðîâàíèÿ ïîä óïðàâëåíèåì ìóëüòèçàäà÷íûõ îïåðàöèîííûõ ñèñòåì . . . . . . . . . . . . . . . . 1.3. Ìàøèííîå ïðåäñòàâëåíèå öåëûõ ÷èñåë . . . . . . . . . . . . 1.3.1. Áåççíàêîâûå ÷èñëà .
. . . . . . . . . . . . . . . . . . 1.3.2. Çíàêîâûå ÷èñëà; äîïîëíèòåëüíûé êîä . . . . . . . . 1.4. Èñòîðèÿ ïëàòôîðìû i386 . . . . . . . . . . . . . . . . . . . 1.5. Çíàêîìèìñÿ ñ èíñòðóìåíòîì . . . . . . . . . . . . . . . . . 1.6. Ìàêðîñû èç ôàéëà stud_io.inc . . . .
. . . . . . . . . . .2. Ïðîöåññîð i386 2.1. Ñèñòåìà ðåãèñòðîâ i386 . . . . . . . . . . . . . . . . . . . . 2.2. Ïàìÿòü, ðåãèñòðû è êîìàíäà mov . . . . . . . . . . . . . . 2.2.1. Ïàìÿòü ïîëüçîâàòåëüñêîé çàäà÷è. Ñåêöèè . . . . 2.2.2. Äèðåêòèâû äëÿ îòâåäåíèÿ ïàìÿòè . . .
. . . . . . 2.2.3. Êîìàíäà mov . . . . . . . . . . . . . . . . . . . . . 2.2.4. Âèäû îïåðàíäîâ . . . . . . . . . . . . . . . . . . . 2.2.5. Ïðÿìàÿ è êîñâåííàÿ àäðåñàöèÿ . . . . . . . . . . . 2.2.6. Îáùèé âèä èñïîëíèòåëüíîãî àäðåñà . . .
. . . . . 2.2.7. Ðàçìåðû îïåðàíäîâ è èõ äîïóñòèìûå êîìáèíàöèè 2.2.8. Êîìàíäà lea . . . . . . . . . . . . . . . . . . . . . 2.3. Öåëî÷èñëåííàÿ àðèôìåòèêà . . . . . . . . . . . . . . . . . 2.3.1. Ïðîñòûå êîìàíäû ñëîæåíèÿ è âû÷èòàíèÿ . . . . 2.3.2. Ñëîæåíèå è âû÷èòàíèå ñ ïåðåíîñîì . . . . . . . . 2.3.3. Êîìàíäû inc, dec, neg è cmp . . . . .
. . . . . . . 2.3.4. Öåëî÷èñëåííîå óìíîæåíèå è äåëåíèå . . . . . . . 2.4. Óñëîâíûå è áåçóñëîâíûå ïåðåõîäû . . . . . . . . . . . . .186................35788141718202224323333373739444546485052535355555658 2.4.1. Áåçóñëîâíûé ïåðåõîä è âèäû ïåðåõîäîâ . .
. 2.4.2. Óñëîâíûå ïåðåõîäû ïî îòäåëüíûì ôëàãàì . 2.4.3. Ïåðåõîäû ïî ðåçóëüòàòàì ñðàâíåíèé . . . . 2.4.4. Óñëîâíûå ïåðåõîäû è ðåãèñòð ECX; öèêëû . 2.5. Ïîáèòîâûå îïåðàöèè . . . . . . . . . . . . . . . . . . 2.5.1. Ëîãè÷åñêèå îïåðàöèè . . . . . . . . . . . . . 2.5.2. Îïåðàöèè ñäâèãà . . . . . . . . . . . . . . . . 2.5.3.
Ïðèìåð . . . . . . . . . . . . . . . . . . . . . 2.6. Ñòåê, ïîäïðîãðàììû, ðåêóðñèÿ . . . . . . . . . . . . 2.6.1. Ïîíÿòèå ñòåêà è åãî ïðåäíàçíà÷åíèå . . . . 2.6.2. Îðãàíèçàöèÿ ñòåêà â ïðîöåññîðå i386 . . . . 2.6.3. Äîïîëíèòåëüíûå êîìàíäû ðàáîòû ñî ñòåêîì 2.6.4. Ïîäïðîãðàììû: îáùèå ïðèíöèïû . . . . . . 2.6.5. Âûçîâ ïîäïðîãðàìì è âîçâðàò èç íèõ . .
. . 2.6.6. Îðãàíèçàöèÿ ñòåêîâûõ ôðåéìîâ . . . . . . . 2.6.7. Îñíîâíûå êîíâåíöèè âûçîâîâ ïîäïðîãðàìì 2.6.8. Ëîêàëüíûå ìåòêè . . . . . . . . . . . . . . . . 2.6.9. Ïðèìåð . . . . . . . . . . . . . . . . . . . . . 2.7. Ñòðîêîâûå îïåðàöèè . . . . . . . .
. . . . . . . . . . 2.8. Åù¼ íåñêîëüêî èíòåðåñíûõ êîìàíä . . . . . . . . . . 2.9. Çàêëþ÷èòåëüíûå çàìå÷àíèÿ . . . . . . . . . . . . . .....................................................................................Ñèíòàêñèñ ÿçûêà àññåìáëåðà NASM . . . . . . . . . .Ïñåâäîêîìàíäû . . . . . . . . . . . . .
. . . . . . . . .Êîíñòàíòû . . . . . . . . . . . . . . . . . . . . . . . . .Âû÷èñëåíèå âûðàæåíèé âî âðåìÿ àññåìáëèðîâàíèÿ . 3.4.1. Âû÷èñëÿåìûå âûðàæåíèÿ è îïåðàöèè â íèõ . 3.4.2. Êðèòè÷åñêèå âûðàæåíèÿ . . . . . . . . . . . . 3.4.3. Âûðàæåíèÿ â ñîñòàâå èñïîëíèòåëüíîãî àäðåñà 3.5. Ìàêðîñðåäñòâà è ìàêðîïðîöåññîð . . . .
. . . . . . . 3.5.1. Îñíîâíûå ïîíÿòèÿ . . . . . . . . . . . . . . . . 3.5.2. Ïðîñòåéøèå ïðèìåðû ìàêðîñîâ . . . . . . . . 3.5.3. Îäíîñòðî÷íûå ìàêðîñû; ìàêðîïåðåìåííûå . . 3.5.4. Óñëîâíàÿ êîìïèëÿöèÿ . . . . . . . . . . . . . . 3.5.5. Ìàêðîïîâòîðåíèÿ . .
. . . . . . . . . . . . . . 3.5.6. Ìíîãîñòðî÷íûå ìàêðîñû è ëîêàëüíûå ìåòêè 3.5.7. Ìàêðîñû ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ . 3.5.8. Ìàêðîäèðåêòèâû äëÿ ðàáîòû ñî ñòðîêàìè . . 3.6. Êîìàíäíàÿ ñòðîêà NASM . . . . . . . . . . . . . . . .187...................................................3. Àññåìáëåð NASM 3.1. 3.2. 3.3. 3.4.586061636565666872727375757778818384909394959597991001001011031031031051081101141161181201214. Âçàèìîäåéñòâèå ñ îïåðàöèîííîé ñèñòåìîé 4.1. Ìóëüòèçàäà÷íîñòü è å¼ îñíîâíûå âèäû .
. . . . . 4.1.1. Ïîíÿòèå îäíîâðåìåííîñòè âûïîëíåíèÿ . . 4.1.2. Ïàêåòíûé ðåæèì . . . . . . . . . . . . . . . 4.1.3. Ðåæèì ðàçäåëåíèÿ âðåìåíè . . . . . . . . . 4.1.4. Ðåæèì ðåàëüíîãî âðåìåíè . . . . . . . . . 4.1.5. Àïïàðàòíàÿ ïîääåðæêà ìóëüòèçàäà÷íîñòè 4.2. Âèäû ïðåðûâàíèé . . . . . . . . . . . . . . . . . . . 4.2.1. Âíåøíèå (àïïàðàòíûå) ïðåðûâàíèÿ . .
. . 4.2.2. Âíóòðåííèå ïðåðûâàíèÿ (ëîâóøêè) . . . . 4.2.3. Ïðîãðàììíûå ïðåðûâàíèÿ . . . . . . . . . 4.3. Ñèñòåìíûå âûçîâû â ÎÑ Unix . . . . . . . . . . . . 4.3.1. Êîíâåíöèÿ ÎÑ Linux . . . . . . . . . . . . . 4.3.2. Êîíâåíöèÿ ÎÑ FreeBSD . . . . . . . . . . . 4.3.3. Íåêîòîðûå ñèñòåìíûå âûçîâû Unix . . . . 4.4. Ïàðàìåòðû êîìàíäíîé ñòðîêè .
. . . . . . . . . . 4.5. Ïðèìåð: êîïèðîâàíèå ôàéëà . . . . . . . . . . . ...............................................................................................................Ôîðìàò ÷èñåë ñ ïëàâàþùåé òî÷êîé . . . . . . . . . . .Óñòðîéñòâî àðèôìåòè÷åñêîãî ñîïðîöåññîðà . . . . . .Îáìåí äàííûìè ñ ñîïðîöåññîðîì . . .
. . . . . . . . .Êîìàíäû àðèôìåòè÷åñêèõ äåéñòâèé . . . . . . . . . .Êîìàíäû âû÷èñëåíèÿ ìàòåìàòè÷åñêèõ ôóíêöèé . . .Ñðàâíåíèå è îáðàáîòêà åãî ðåçóëüòàòîâ . . . . . . . .Óïðàâëåíèå ñîïðîöåññîðîì . . . . . . . . . . . . . . . 6.7.1. Èñêëþ÷èòåëüíûå ñèòóàöèè è èõ îáðàáîòêà . . 6.7.2. Ïàðàëëåëüíîå âûïîëíåíèå è êîìàíäà wait . . 6.7.3. Ðåãèñòðû CR, SR è TW . . . .
. . . . . . . . . . . 6.7.4. Èíèöèàëèçàöèÿ, ñîõðàíåíèå è âîññòàíîâëåíèå.................................5. Ðàçäåëüíàÿ òðàíñëÿöèÿ 5.1. 5.2. 5.3. 5.4. 5.5. 5.6.×òî òàêîå ìîäóëè è çà÷åì îíè íóæíûÏîääåðæêà ìîäóëåé â NASM . . . . .Ïðèìåð . . . . . . . . . . . . . . . . . .Îáúåêòíûé êîä è ìàøèííûé êîä .
. .Áèáëèîòåêè . . . . . . . . . . . . . . .Àëãîðèòì ðàáîòû ðåäàêòîðà ñâÿçåé .6. Àðèôìåòèêà ñ ïëàâàþùåé òî÷êîé 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7...........................................123123123124126127128131132133134135137138140143146153153155156161162163166167168170172174174176176178179181Ïðèëîæåíèå: òåêñò ôàéëà stud_io.inc . . .
. . . . . . . . . . 182Ëèòåðàòóðà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.