Ïðèíöèïû ðàáîòû êîìïüþòåðà
Íèæå îïèñàíû íåêîòîðûå îñíîâíûå ïðèíöèïû ðàáîòû êîìïüþòåðà. Ýòè
ïðèíöèïû âàæíû äëÿ ïîíèìàíèÿ 8088 è åãî ðàáîòû. Âñå, ÷òî ãîâîðèòñÿ
â ýòîì ðàçäåëå, âåðíî è äëÿ äðóãèõ êîìïüþòåîâ. Â ñîîòâåòñòâóþùèõ
ìåñòàõ ìû áóäåì ñïåöèàëüíî îãîâàðèâàòüñÿ, ÷òî ðå÷ü èäåò îá Intel
8088, õîòÿ îñíîâíàÿ ÷àñòü ñâåäåíèé, îòíîñÿùèõñÿ òîëüêî ê 8088,
ïîÿâèòñÿ â ñëåäóþùåé ãëàâå.
Ðàáîòà êîìïüþòåðà ñîñòîèò â âûáîðêå êîìàíä èç ïàìÿòè è èõ
âûïîëíåíèè. Êàæäàÿ êîìàíäà ïðîõîäèò ÷åðåç ýòîò äâóõøàãîâûé
ïðîöåññ. Âûáîðêîé î÷åðåäíîé ïîðöèè â ýòîì öèêëå óïðàâëÿåò îäèí èç
ðåãèñòðîâ ïðîöåññîðà. Ýòîò ðåãèñòð íàçûâàþò ñ÷åò÷èêîì ïðîãðàììû
èëè óêàçàòåëåì êîìàíäû. Îí ÿâëÿåòñÿ "ìàðêåðîì" òåêóùåé
âûïîëíÿåìîé êîìàíäû. Òî ìåñòî â ïàìÿòè, íà êîòîðîå óêàçûâàåò ýòîò
ðåãèñòð, ñîäåðæèò ñëåäóþùóþ êîìàíäó, êîòîðóþ äîëæåí áóäåò âûáðàòü è
âûïîëíèòü ïðîöåññîð. Ïðîöåññîð ÷èòàåò â ýòîì ìåñòå îäèí èëè
íåñêîëüêî áàéòîâ, èíòåðïðåòèðóåò èõ êàê êîìíäó è âûïîëíÿåò åå.
Çàòåì ïðîöåññîð óâåëè÷èâàåò óêàçàòåëü â ñîîòâåòñòâèè ñ ÷èñëîì
áàéòîâ â êîìàíäå. Òåïåðü ñ÷åò÷èê ïðîãðàììû óêàçûâàåò íà ñëåäóþùóþ
êîìàíäó. Ýòîò öèêë ïîâòîðÿåòñÿ äëÿ âñåõ áåç èñêëþ÷åíèÿ êîìàíä.
Íîðìàëüíîå âûïîëíåíèå ïðîãðàììû ÿâëÿåòñÿ ïîñëåäîâàòåëüíûì, îò îäíîé
êîìàíäû ê äðóãîé, ðàñïîëîæåííîé ñëåäîì.
Ïðîöåññîð ìîæåò èçìåíèòü ïîñëåäîâàòåëüíûé öèêë âûáîðêè-èñïîëíå-
íèÿ ïðè âûïîëíåíèè êîìàíäû, êîòîðàÿ ïîìåùàåò â óêàçàòåëü êîìàíä íî-
âîå çíà÷åíèå. Òàêèå êîìàíäû ÿâëÿþòñÿ êîìàíäàìè ïåðåäà÷è
óïðàâëåíèÿ, ïîñêîëüêó âûïîëíåíèå ïðîãðàììû ïåðåõîäèò â íîâóþ
îáëàñòü. Èíñòðóêöèÿ ïåðåõîäà èëè âûáîðà âàðèàíòà ÿâëÿåòñÿ ñàìûì
ðàñïðîñòðàíåííûì ñïîñîáîì ïåðåäà÷è óïðàâëåíèÿ. Êîìàíäà ïåðåõîäà
çàäàåò àäðåñ êîìàíäû, êîòîðàÿ äîëæíà âûïîëíÿòüñÿ ñëåäóþùåé. Öèêë â
ïðîãðàììå ÿâëÿåòñÿ ïðèìåðîì èñïîëüçîâàíèÿ êîìàíäû ïåðåõîäà. Ïðèìåð
íà Ôèã. 2.16 íà ÿçûêå àññåìáëåðà 8088 ïîêàçûâàåò ñîõðàíåíèå îäíîãî
è òîãî æå çíà÷åíèÿ â ïîñëåäîâàòåëüíûõ áàéòàõ ïàìÿòè. Êîìàíäà
ààà ÿõ¨õ¿þôð ò úþý¡õ ¡øúûð ÿ¨øòþôøª ú ÿþòªþ¨ýþüº òvÿþûýõýø¦ õóþ úþüðýô.
ààààà ààààà Microsoft (R) Macro Assembler Version 5.00ààààààààààà à 11/2/88 21:30:42
ààààà ààààà Løó. 2.16 ¦þüðýôð ÿõ¨õ¿þôðààààààààààààààààààààà à Pageààààà àà 1-1
ààààààààààà àààà 1ààààààààààààààààààààààààààààà ààààà PAGEààà ,132
ààààààààààà àààà 2ààààààààààààààààààààààààààààà ààààà TITLEàà Løó. 2.16 ¦þüðýôð ÿõ¨õ¿þôð
ààààààààààà àààà 3 0000àààààààààààà ààààà CODEààà SEGMENT
ààààààààààà àààà 4ààààààààààààààààààààààààààààà ààààà ASSUMEà CS:CODE
ààààààààààà àààà 5
ààààààààààà àààà 6 0000àààààààààààà ààààà MEMàààà LABELàà BYTE
ààààààààààà àààà 7
ààààààààààà àààà 8 0000àààààààààààà ààààà FIG2_16:
ààààààààààà àààà 9 0000à 2E: C6 87 0000 R 00ààà ààààà MOVàààà MEM[BX],0
ààààààààààà ààà 10 0006à 43 ààààààààààààà ààààààINCàààà BX
ààààààààààà ààà 11 0007à EB F7ààààààààààààààààà ààààà JMPàààà FIG2_16
ààààààààààà ààà 12
ààààààààààà ààà 13 0009àààààààààààà ààààà CODEààà ENDS
ààààààààààà ààà 14ààààààààààààààààààààààààààààà ààààà END
ààààààààààààààààààààààààààààà ààààà Løó. 2.16 ¦þüðýôð ÿõ¨õ¿þôð
ààààà +ñ¨ðªøªõ òýøüðýøõ, ¢ªþ ò úþüðýôõ JMP ôû þÿ¨õôõûõýø ¸ûõ-
ààà ôº¦•õóþ òvÿþûý õüþóþ ðô¨õ¸ð ø¸ÿþû¹÷ºõª¸ üõªúð, ò ôðýýþü ¸ûº¢ðõ
ààà "FIG2_16".à ¦ªþ - õ•õ þôýð ø÷ òþ÷üþöýþ¸ªõù ð¸¸õüñûõ¨ð.à -þª ò
ààà üð°øýýþü ÷vúõ ª¨õñºõª¸ ðñ¸þû¦ªývù ðô¨õ¸ ¸ûõôº¦•õù úþüðýôv, ÷vú
ààà ð¸¸õüñûõ¨ð ª¨õñºõª ûø°¹ ÿ¨þó¨ðüüýþ þÿ¨õôõûõýýº¦ üõªúº.à L¸¸õüñûõ¨
ààà ¸ðü þÿ¨õôõû õª ðñ¸þû¦ªývù ðô¨õ¸ ø ¸ªðòøª ÿ¨ðòøû¹ýþõ ÷ýð¢õýøõ ò
ààà úþüðýôº üð°øýýþóþ ÷vúð.
ààààà ¦þüðýôð ÿõ¨õ¿þôð ýõ þñ ÷ðªõû¹ýþ ôþûöýð ñvª¹ ñõ÷º¸ûþòýþù úðú ò
ààà ÿ¨øòõôõýýþü ÿ¨øüõ¨õ.à 8088 ¨ð¸ÿþûðóðõª üýþö¸ªòþü úþüðýô ÿõ¨õ¿þôð,
ààà úþªþ¨võ òvÿþûý ¦ª¸ ò ¸þþªòõª¸ªòøø ¸ ýõúþªþ¨vü úþôþü º¸ûþòø .
ààà ¦ýð¢õýøõ úþô𠺸ûþòø º¸ªðýðòûøò𦪠ô¨ºóøõ úþüðýôv ÿ¨ø ø¿
ààà òvÿþûýõýøø ÿ¨þ¡õ¸¸þ¨þü.à L¸ûþòøõ, ºúð÷ðýýþõ ò úþüðýôõ º¸ûþòýþóþ
ààà ÿõ¨õ¿þôð, ¸¨ðòýøòðõª¸ ¸ úþôþü º¸ûþòø , ¸þ¿¨ðýõýýþóþ ò ¨õóø¸ª¨õ
ààà ¸þ¸ªþ ýøù.ààà +¸ûø º¸ûþòø ¸þòÿðôð¦ª, ªþ ÿ¨þ¡õ¸¸þ¨ ÿõ¨õ¿þôøª ÿþ
ààà ºúð÷ðýýþüº ðô¨õ¸º.à T ÿ¨þªøòýþü ¸ûº¢ðõ ÿ¨þ¡õ¸¸þ¨ øóýþ¨ø¨ºõª
ààà ÿõ¨õ¿þô, ø òvÿþûýõýøõ ÿ¨þó¨ðüüv ÿ¨þôþûöðõª¸ ò þñv¢ýþü
ààà ÿþ¸ûõôþòðªõû¹ýþü ÿþ¨ ôúõ.à =ð Løó.ààà 2.17 ÿ¨õôvôº•øù ÿ¨øüõ¨ ø÷üõýõý.
ààà ãøúû ò ¤ªþü ÿ¨øüõ¨õ ÿ¨õ¨vòðõª¸ , úþóôð ÷ýð¢õýøõ BX ¸ªðýþòøª¸
ààà ¨ðòývü 1000.
ààààà =ð Løó.à 2.17 ÿþ òû õª¸ ýþòð úþüðýô𠸨ðòýõýø , úþªþ¨ð
ààà º¸ªðýðòûøòðõª úþôv ¸þ¸ªþ ýø .à ¦þüðýô𠺸ûþòýþóþ ÿõ¨õ¿þôð (JNE
ààà (Jump if Not Equal) ÿõ¨õ¿þô, õ¸ûø ýõ ¨ðòýv) òvÿþûý õª ÿõ¨õ¿þô ýð
ààà "FIG2_17", õ¸ûø º¸ûþòøõ òvÿþûýõýþ.à +¸ûø º¸ûþòøõ ýõ òvÿþûý õª¸ ,
ààà 8088 òvÿþûý õª úþüðýôº, ¸ûõôº¦•º¦ ÷𠺸ûþòývü ÿõ¨õ¿þôþü, ò ôðýýþü
ààà ¸ûº¢ðõ úþüðýôº NOP.à ¦þüðýô𠺸ûþòýþóþ ÿõ¨õ¿þôð ÿþ÷òþû õª ÿ¨þòõ¨øª¹
ààààà àààààà Microsoft (R) Macro Assembler Version 5.00àààààààààà àà 11/2/88 22:31:33
ààààà àààààà Løó. 2.17 ¦þüðýô𠺸ûþòýþóþ ÿõ¨õ¿þôðàààààààààààààààà àà Pageàààà 1-1
ààààààààààà ààààà 1 ààààààààààààààààààààà àààààààPAGEààà ,132
ààààààààààà ààààà 2 ààààààààààààààààààààà àààààààTITLEàà Løó. 2.17 ¦þüðýô𠺸ûþòýþóþ ÿõ¨õ¿þôð
ààààààààààà ààààà 3 0000ààààààààààààààààà àààààà CODEààà SEGMENT
ààààààààààà ààààà 4 ààààààààààààààààààààà àààààààASSUMEà CS:CODE
ààààààààààà ààààà 5
ààààààààààà ààààà 6 0000ààààààààààààààààà àààààà MEMàààà LABELàà BYTE
ààààààààààà ààààà 7
ààààààààààà ààààà 8 0000ààààààààààààààààà àààààà FIG2_17:
ààààààààààà ààààà 9 0000à 2E: C6 87 0000 R 00àà àààààà MOVàààà MEM[BX],0
ààààààààààà àààà 10 0006à 43ààààààààààààà àààààà INCàààà BX
ààààààààààà àààà 11 0007à 81 FB 03E8ààààààààààà àààààà CMPàààà BX,1000
ààààààààààà àààà 12 000Bà EB F3àààààààààààààààà àààààà JMPàààà FIG2_17
ààààààààààà àààà 13
ààààààààààà àààà 14 000Dààààààààààààààààà àààààà CODEààà ENDS
ààààààààààà àààà 15 ààààààààààààààààààààà àààààààEND
ààààààààààààààààààààààà àààààà Løó. 2.17 ¦þüðýô𠺸ûþòýþóþ ÿõ¨õ¿þôð
ààà ÷ýð¢õýø ôðýýv¿ ò ÿ¨þ¡õ¸¸õ òvÿþûýõýø ÿ¨þó¨ðüüv.à -þô òvÿþûýõýø
ààà ÿ¨þó¨ðüüv üþöõª üõý ª¹¸ ò ÷ðòø¸øüþ¸ªø þª ¨õ÷ºû¹ªðªþò ¤ªþù
ààà ÿ¨þòõ¨úø.
Ñîäåðæàíèå ðàçäåëà