Íà èíè àäðåñèðà»à êîä ìèêðîïðîöåñîðà i80x86 Æå êî Ñòîjàíîâ Åôèêàñàí ðàçâîj ñîôòâåðà íà îäðå åíîj õàðäâåðñêîj ïëàòôîðìè, êàî øòî jå ôàìèëèjà Èíòåëîâèõ ìèêðîïðîöåñîðà 80õ86, çàõòåâà ïîäðàçóìåâà äîáðî ïîçíàâà»å íà èíà àäðåñèðà»à íà îäàáðàíîj ïëàòôîðìè. Àäðåñèðà»å ïðîãðàìñêå ìåìîðèjå (êîäíè ñåãìåíò) å áèòè ïðèêàçàíî ïîìî ó èíñòðóêöèjà ïðîãðàìñêèõ ñêîêîâà (jump instructions) è ïîçèâà ïðîöåäóðà (call). Àäðåñèðà»å ñòåê ìåìîðèjå (stack memory) å áèòè îájàø»åíî ïîìî ó èíñòðóêöèjà PUSH è POP. 1 Àäðåñèðà»å ïîäàòàêà Íà èíè àäðåñèðà»à ïîäàòàêà å áèòè ïðèêàçàíè íà ïðèìåðó èíñòðóêöèjå MOV (move data) êîjà îìîãó ójå ïðåíîñ ïîäàòàêà èç èçâîðà (source) ó îäðåäèøòå (destination), êàî øòî jå ïðèêàçàíî íà ñëèöè 1. Èíñòðóêöèjà mov ïðåáàöójå ñàäðæàj èçâîðà ó îäðåäèøòå, ïðè åìó ñå ñàäðæàj èçâîðà íå ìå»à, øòî ïðàêòè íî îäãîâàðà êîïèðà»ó ñàäðæàjà èçâîðà ó îäðåäèøòå. Òîê ïîäàòàêà ó àñåìáëåðñêèì èíñòðóêöèjàìà ñà äâà îïåðàíäà jå óâåê îä äðóãîã îïåðàíäà êà ïðâîì êîjè jå ójåäíî è îäðåäèøòå ðåçóëòàòà èíñòðóêöèjå. 1.1 Ðåãèñòàðñêî àäðåñèðà»å Ðåãèñòàðñêî àäðåñèðà»å ïîäðàçóìåâà äà ñó îáà îïåðàíäà ó èíñòðóêöèjè ðåãèñòðè. Äà áè ñå èñïðàâíî èçâðøèëî ðåãèñòàðñêî àäðåñèðà»å âàæíî jå äîáðî ïîçíàâàòè ðåãèñòðå ìèêðîïðîöåñîðà. Èíñòðóêöèjå óâåê êîðèñòå ðåãèñòðå Ñëèêà 1: Èíñòðóêöèjà MOV 1
Ñëèêà 2: Ïðèìåð ðåãèñòàðñêîã àäðåñèðà»à êîjè ñó èñòå âåëè èíå. Êîìáèíîâà»å ðåãèñòàðà ðàçëè èòèõ âåëè èíà ó èñòîj èíñòðóêöèjè íèjå äîçâî åíî. Ó òàáåëè 1 ñó ïðèêàçàíè ðàçëè èòè ïðèìåðè ðåãèñòàðñêîã àäðåñèðà»à. Òàáåëà 1: Ïðèìåðè èíñòðóêöèjà ñà ðåãèñòàðñêèì àäðåñèðà»åì MOV AL,BL Êîïèðà ñàäðæàj BL ó AL MOV AX,CX Êîïèðà ñàäðæàj CX ó AX MOV SP,BP Êîïèðà ñàäðæàj BP ó SP MOV SI,DI Êîïèðà ñàäðæàj DI ó SI MOV EAX,EDX Êîïèðà ñàäðæàj EDX ó EAX MOV ESP,EBX Êîïèðà ñàäðæàj EBX ó ESP MOV DS,AX Êîïèðà ñàäðæàj AX ó DS MOV CS,AX Íèjå äîçâî åí óïèñ ó ñåãìåíòíè ðåãèñòàð CS MOV DS,ES Íèjå äîçâî åí êîïèðà»å èçìå ó ñåãìåíòíèõ ðåãèñòàðà MOV AL,BX Íèjå äîçâî åíî êîìáèíîâà»å ðåãèñòàðà ðàçëè èòå âåëè èíå MOV EAX,CX Íèjå äîçâî åíî êîìáèíîâà»å ðåãèñòàðà ðàçëè èòå âåëè èíå Ñàäðæàj ðåãèñòðà êîjè ñàäðæè àäðåñó êîäíîã ñåãìåíòà (CS) íèjå äîçâî åíî ìå»àòè, çàòî øòî ñå àäðåñà íàðåäíå èíñòðóêöèjå çà èçâðøàâà»å îäðå ójå ïîìî ó ðåãèñòàðà CS:EIP. Àêî ñå äîçâîëè èçìåíà ñàäðæàjà ðåãèñòðà CS, òàäà å áèòè íåìîãó å îäðåäèòè àäðåñó ñëåäå å èíñòðóêöèjå êîjà òðåáà äà ñå èçâðøè. Ïðèìåð ðåãèñòàðñêîã àäðåñèðà»à jå ïðèêàçàí íà ñëèöè 2. Ó ïðèêàçàíîì ïðèìåðó ñå ìå»à ñàäðæàj ñàìî íèæå ðå è AX ó ðåãèñòðó EAX, äîê ñå ñàäðæàj âèøå ðå è ðåãèñòðà EAX íå ìå»à. 1.2 Íåïîñðåäíî àäðåñèðà»å Íåïîñðåäíî àäðåñèðà»å ïðåíîñè òðåíóòíó âðåäíîñò áàjò, ðå èëè äâîðå ïîäàòêà ó íåêè ðåãèñòàð èëè ìåìîðèjñêó ëîêàöèjó. Ïîäàòàê êîjè ñå íåïîñðåäíèì àäðåñèðà»åì óïèñójå ó ðåãèñòàð èëè ìåìîðèjñêó ëîêàöèjó jå êîíñòàíòíà 2
Ñëèêà 3: Ïðèìåð íåïîñðåäíîã àäðåñèðà»à âðåäíîñò. Ïðèìåð ðåãèñòàðñêîã àäðåñèðà»à jå ïðèêàçàí íà ñëèöè 3 ãäå ñå ó ðåãèñòàð EAX óïèñójå íåïîñðåäíà âðåäíîñò 123456h. Ó òàáåëè 2 ñó ïðèêàçàíè ðàçëè èòè ïðèìåðè íåïîñðåäíîã àäðåñèðà»à. Òàáåëà 2: Ïðèìåðè èíñòðóêöèjà ñà íåïîñðåäíèì àäðåñèðà»åì MOV AL,39 Óïèñójå äåöèìàëíó âðåäíîñò 39 ó AL MOV AX,1234h Óïèñójå õåêñàäåöèìàëíó âðåäíîñò 1234 ó AX MOV EAX,98765432h Óïèñójå õåêñàäåêàäíó âðåäíîñò 98765432h ó EAX MOV AL,10101001b Óïèñójå áèíàðíó âðåäíîñò 10101001b ó AL MOV AL,'x' Óïèñójå ASCII çíàê 'x' ó AL 1.3 Äèðåêòíî àäðåñèðà»å Äèðåêòíî àäðåñèðà»å ñå îäíîñè íà ïðåíîñ ïîäàòàêà èçìå ó ìåìîðèjñêå ëîêàöèjå ó îêâèðó ñåãìåíòà ïîäàòàêà è ðåãèñòðà. Ïîñòîjå äâå ôîðìå äèðåêòíîã àäðåñèðà»à: äèðåêòíî àäðåñèðà»å êîä êîjåã ñå êîðèñòè ñèìáèëè êà àäðåñà ìåìîðèjñêå ëîêàöèjå, è äèðåêòíî àäðåñèðà»å êîä êîjåã ñå êîðèñòè ñòâàðíà ôèçè êà àäðåñà ìåìîðèjñêå ëîêàöèjå ó õåêñàäåêàäíîì îáëèêó. Ó ïðàêñè ñå åø å êîðèñòè äèðåêòíî àäðåñèðà»å ïîìî ó ñèìáîëè êå àäðåñå. Èìå ïðîìåí èâå, òj. ñèìáîëè êà àäðåñà ìåìîðèjñêå ëîêàöèjå, ïðåäñòàâ à îôñåò (oset) ó îêâèðó ñåãìåíòà ïîäàòàêà. Ó çàâèñíîñòè îä ðåãèñòàðà ìèêðîïðîöåñîðà êîjè ñå êîðèñòå, ïîñòîjå äâà òèïà äèðåêòíîã àäðåñèðà»à: (1) äèðåêòíî àäðåñèðà»å êîjå ñå êîðèñòè èçìå ó ìåìîðèjñêå ëîêàöèjå è ðåãèñòàðà AL, AX èëè EAX, è (2) ïîìåðåíî äèðåêòíî àäðåñèðà»å (displacement addressing) êîjå ñå êîðèñòè èçìå ó ìåìîðèjñêå ëîêàöèjå è îñòàëèõ ðåãèñòàðà ìèêðîïðîöåñîðà. Ïðèìåð äèðåêòíîã àäðåñèðà»à ïîäàòàêà jå ïðèêàçàí íà ñëèöè 4. Ó òàáåëè 3 ñó ïðèêàçàíè ðàçëè èòè ïðèìåðè äèðåêòíîã àäðåñèðà»à. Äèðåêòíî àäðåñèðà»å ñå íå ìîæå ðåàëèçîâàòè àêî ñó îáà îïåðàíäà ó èíñòðóêöèjè ìåìîðèjñêå àäðåñå. 3
Ñëèêà 4: Ïðèìåð äèðåêòíîã àäðåñèðà»à ïîäàòàêà Òàáåëà 3: Ïðèìåðè èíñòðóêöèjà ñà äèðåêòíèì àäðåñèðà»åì MOV AL,Broj Óïèñójå ó AL ñàäðæàj ñà ìåìîðèjñêå àäðåñå Broj MOV AX,Nivo Óïèñójå ó AX ñàäðæàj ñà ìåìîðèjñêå àäðåñå Nivo MOV EAX,Duzina Óïèñójå ó EAX ñàäðæàj ñà ìåìîðèjñêå àäðåñå Duzina MOV Broj,AL Óïèñójå ñàäðæàj AL íà ìåìîðèjñêó àäðåñó Broj MOV Nivo,AX Óïèñójå ñàäðæàj AX íà ìåìîðèjñêó àäðåñó Nivo MOV Duzina,EAX Óïèñójå ñàäðæàj EAX íà ìåìîðèjñêó àäðåñó Duzina MOV AL,[1125h] Óïèñójå ó AL ñàäðæàj ñà ìåìîðèjñêå àäðåñå [1125h] MOV AX,[1344h] Óïèñójå ó AX ñàäðæàj ñà ìåìîðèjñêå àäðåñå [1344h] MOV EAX,[1224h] Óïèñójå ó EAX ñàäðæàj ñà ìåìîðèjñêå àäðåñå [1224h] MOV [1125h],AL Óïèñójå ñàäðæàj AL íà ìåìîðèjñêó àäðåñó [1125h] MOV [1344h],AX Óïèñójå ñàäðæàj AX íà ìåìîðèjñêó àäðåñó [1344h] MOV [1224h],EAX Óïèñójå ñàäðæàj EAX íà ìåìîðèjñêó àäðåñó [1224h] 1.4 Ðåãèñòàðñêî èíäèðåêòíî àäðåñèðà»å Ðåãèñòàðñêî èíäèðåêòíî àäðåñèðà»å ïîäàòàêà îìîãó ójå àäðåñèðà»å ïîäàòàêà ïîìî ó îôñåò àäðåñå êîjà ñå íàëàçè ó íåêîì îä ñëåäå èõ ðåãèñòàðà: BP, BX, SI èëè DI. Èíäèðåêòíî àäðåñèðà»å ñå ó àñåìáëåðñêîì jåçèêó ïðåäñòàâ à ïîìî ó çàãðàäà []. Èíäèðåêòíî àäðåñèðà»å ñå íå ìîæå âðøèòè äèðåêòíî èçìå ó äâå ìåìîðèjñêå ëîêàöèjå. Èíäèðåêòíî àäðåñèðà»å ñå êîðèñòè çà àäðåñèðà»å íèçîâà èëè òàáåëàðíèõ ïîäàòàêà. Àêî ñå èíäèðåêòíî àäðåñèðà»å âðøè ïîìî ó ðåãèñòàðà BX, SI èëè DI ïîäðàçóìåâà ñå äà ñå ïîäàöè íàëàçå ó ñåãìåíòó ïîäàòàêà, à àêî ñå àäðåñèðà»å âðøè ïîìî ó ðåãèñòðà BP ïîäðàçóìåâà ñå äà ñå ïîäàöè íàëàçå ó ñòåê ñåãìåíòó. Íà ñëèöè 5 jå ïðèêàçàíî ðåãèñòàðñêî èíäèðåêòíî àäðåñèðà»å ïîäàòàêà íà ïðèìåðó êîäà ïðèêàçàíîã ó ëèñòèíãó 1. 4
Ñëèêà 5: Ïðèìåð èíäèðåêòíîã ðåãèñòàðñêîã àäðåñèðà»à ïîäàòàêà Ëèñòèíã 1: Ïðèìåð ðåãèñòàðñêîã èíäèðåêòíîã àäðåñèðà»à ïîäàòàêà mov si, offest NIZA mov ax,[ si ] Ó òàáåëè 4 ñó ïðèêàçàíè ðàçëè èòè ïðèìåðè ðåãèñòàðñêîã èíäèðåêòíîã àäðåñèðà»à. Ðåãèñòàðñêî èíäèðåêòíî àäðåñèðà»å ñå íå ìîæå ðåàëèçîâàòè àêî ñó îáà îïåðàíäà ó èíñòðóêöèjè ïîäàöè ó ìåìîðèjè. Òàáåëà 4: Ïðèìåðè èíñòðóêöèjà ñà ðåãèñòàðñêèì èíäèðåêòíèì àäðåñèðà»åì MOV AL,[ÅBX] Óïèñójå ó ðåãèñòàð AL ñàäðæàj ìåìîðèjñêå ëîêàöèjå ó ñåãìåíòó ïîäàòàêà èjà ñå àäðåñà íàëàçè ó ðåãèñòðó ÅBX MOV [BP],DX Óïèñójå ñàäðæàj ðåãèñòðà DX íà ìåìîðèjñêó ëîêàöèjó ó ñòåê ñåãìåíòó èjà ñå àäðåñà íàëàçè ó ðåãèñòðó BP MOV [DI],EAX Óïèñójå ñàäðæàj ðåãèñòðà EAX íà ìåìîðèjñêó ëîêàöèjó ó ñåãìåíòó ïîäàòàêà èjà àäðåñà ñå íàëàçè ó ðåãèñòðó DI 1.5 Áàçíî-èíäåêñíî àäðåñèðà»å Áàçíî èíäåêñíî àäðåñèðà»å èíäèðåêòíî àäðåñèðà ïîäàòêå ó ìåìîðèjè ïîìî ó êîìáèíàöèjå áàçíîã ðåãèñòðà (BX èëè BP) è èíäåêñíîã ðåãèñòðà (SI èëè DI). Îáè íî áàçíè ðåãèñòàð ñàäðæè ïî åòíó àäðåñó ìåìîðèjñêîã íèçà, à èíäåêñíè ðåãèñòàð ñå êîðèñòè çà äîáèjà»å ðåëàòâíå àäðåñå åëåìåíòà ó íèçó. Êàäà ñå áàçíà àäðåñà îäðå ójå ïîìî ó ðåãèñòðà BX ïîäàöè ñå íàëàçå ó ñåãìåíòó ïîäàòàêà, à êàäà ñå áàçíà àäðåñà îäðå ójå ïîìî ó ðåãèñòðà BP òàäà ñå ïîäàöè íàëàçå ó ñòåê ñåãìåíòó. Ëîöèðà»å ïîäàòàêà ïîìî ó áàçíîèíäåêñíîã àäðåñèðà»à jå ïðèêàçàíî íà ñëèöè 6, äîê jå êîä ïðèêàçàí ó ëèñòèíãó 2. Ó òàáåëè 5 ñó ïðèêàçàíè ïðèìåðè áàçíî-èíäåêñíîã àäðåñèðà»à. 5
Ñëèêà 6: Ïðèìåð áàçíî-èíäåêñíîã àäðåñèðà»à ïîäàòàêà Ëèñòèíã 2: Ïðèìåð áàçíî-èíäåêñíîã àäðåñèðà»à ïîäàòàêà mov bx, offest NIZA mov si,2 mov al,[ bx+si ] Òàáåëà 5: Ïðèìåðè èíñòðóêöèjà ñà áàçíî-èíäåêñíèì àäðåñèðà»åì MOV AL,[BX+SI] Óïèñójå ó ðåãèñòàð AL ñàäðæàj ìåìîðèjñêå ëîêàöèjå ó ñåãìåíòó ïîäàòàêà èjà ñå àäðåñà äîáèjà êàî çáèð ñàäðæàjà ðåãèñòàðà BX è SI MOV CX,[BP+SI] Óïèñójå ó ðåãèñòàð CX ñàäðæàj ìåìîðèjñêå ëîêàöèjå ó ñòåê ñåãìåíòó èjà ñå àäðåñà äîáèjà êàî çáèð ñàäðæàjà ðåãèñòàðà BP è SI MOV EDX,[EBP+ESI] Óïèñójå ó ðåãèñòàð EDX ñàäðæàj ìåìîðèjñêå ëîêàöèjå ó ñòåê ñåãìåíòó èjà ñå àäðåñà äîáèjà êàî çáèð ñàäðæàjà ðåãèñòàðà EBP è ESI MOV [BX+DI],AL Óïèñójå ñàäðæàj ðåãèñòðà AL íà ìåìîðèjñêó ëîêàöèjó ó ñåãìåíòó ïîäàòàêà èjà ñå àäðåñà äîáèjà êàî çáèð ñàäðæàjà ðåãèñòàðà BX è DI MOV [BP+DI],CX Óïèñójå ñàäðæàj ðåãèñòðà CX íà ìåìîðèjñêó ëîêàöèjó ó ñòåê ñåãìåíòó èjà àäðåñà äîáèjà êàî çáèð ñàäðæàjà ðåãèñòàðà BP è DI MOV [EBP+EDI],EDX Óïèñójå ñàäðæàj ðåãèñòðà EDX íà ìåìîðèjñêó ëîêàöèjó ó ñòåê ñåãìåíòó èjà àäðåñà äîáèjà êàî çáèð ñàäðæàjà ðåãèñòàðà EBP è EDI 6
2 Àäðåñèðà»å ïðîãðàìñêîã êîäà ó ìåìîðèjè Ïðîãðàìñêî àäðåñèðà»å ìåìîðèjå ñå îäíîñè íà àäðåñèðà»å ìåìîðèjå ó îêâèðó êîäíîã ñåãìåíòà è ðåàëèçójå ñå èíñòðóêöèjàìà ñêîêîâà è ïîçèâà ïðîöåäóðà. Ïðèëèêîì èçâðøå»à èíñòðóêöèjå ñêîêà ïðîãðàì íàñòàâ à èçâðøå»å îä ëàáåëå îçíà åíå ó èíñòðóêöèjè ñêîêà. Ëàáåëà ó èíñòðóêöèjè ñêîêà jå ñèìáîëè êà îçíàêà çà êîíêðåòíó ôèçè êó àäðåñó ó êîäíîì ñåãìåíòó. Ïðèëèêîì ïîçèâà ïðîöåäóðå âðøè ñå ïðîãðàìñêè ñêîê íà àäðåñó êîjà jå ïðåäñòàâ åíà íàçèâîì ïðîöåäóðå. Íàçèâ ïðîöåäóðå ïðåäñòàâ à ñèìáîëè êè íàçèâ çà ôèçè êó àäðåñó. Ïðèëèêîì ïðîãðàìñêîã àäðåñèðà»à ìå»à ñå ñàäðæàj ðåãèñòðà IP, äîê ñå ñàäðæàj ðåãèñòðà CS ìå»à àêî ñå àäðåñèðà»å âðøè ó äðóãîì êîäíîì ñåãìåíòó. Àäðåñèðà»å ïðîãðàìñêå ìåìîðèjå ñå ðåàëèçójå ó òðè ôîðìå: äèðåêòíî, ðåëàòèâíî è èíäèðåêòíî. Äèðåêòíî àäðåñèðà»å ïðîãðàìñêå ìåìîðèjå ñå ðåàëèçójå ïîìî ó àäðåñå êîjà ñå íàëàçè ó êîäó îïåðàöèjå. Ïðèìåðè äèðåêòíîã àäðåñèðà»à ñó ïðèêàçàíè ó òàáåëè 6. Òàáåëà 6: Ïðèìåðè äèðåêòíîã àäðåñèðà»à ïðîãðàìñêå ìåìîðèjå Àñåìáëåðñêà èíñòðóêöèjà jmp labela call nazivprocedure Îïåðàöèjà ñêîê íà ëàáåëó ñêîê íà àäðåñó ïðîöåäóðå Ðåëàòèâíî ïðîãðàìñêî àäðåñèðà»å ñå îäíîñè íà ðåëàòèâíó ïðîìåíó àäðåñå ñëåäå å èíñòðóêöèjå ó îäíîñó íà òðåíóòíè ñàäðæàj ðåãèñòðà IP. Ïðè òîìå ñå èíñòðóêöèjè ñêîêà äîäàjå ðàñòîjà»å çà ñêîê ó ïðàâîóãàîíèì çàãðàäàìà. Ïðèìåð ðåëàòèâíîã ïðîãðàìñêîã àäðåñèðà»à jå ïðèêàçàí íà ñëèöè 7. Ó îâîì ïðèìåðó èíñòðóêöèjà ñêîêà jmp (ìàøèíñêè êîä èíñòðóêöèjå jå EBh) ïðåñêà å ñëåäå à äâà áàjòà ó ìåìîðèjè, ðåëàòèâíî ó îäíîñó íà ïîêàçèâà íà èíñòðóêöèjó (IP). Ìàøèíñêè êîä èíñòðóêöèjå jmp [2] jå EB02h, ïðè åìó íèæè áàjò ñàäðæè êîä èíñòðóêöèjå ñêîêà, äîê âèøè áàjò ñàäðæè ðåëàòèâíî ðàñòîjà»å çà ñêîê. Èíäèðåêòíî àäðåñèðà»å ïðîãðàìñêå ìåìîðèjå îìîãó ójå èíäèðåêòíî ïðîãðàìñêî àäðåñèðà»å ó èíñòðóêöèjàìà ñêîêîâà è ïîçèâà ïðîöåäóðà. Êàî ðåãèñòðè ó èíñòðóêöèjàìà èíäèðåêòíîã ïðîãðàìñêîã àäðåñèðà»à ìîãó ñå êîðèñòèòè ñâè 16-áèòíè ðåãèñòðè êîjè ñàäðæå àäðåñå ó îêâèðó êîäíîã ñåãìåíòà, à êîä 32-áèòíèõ ìèêðîïðîöåñîðà ìîãó ñå êîðèñòèòè è 32-áèòíè ðåãèñòðè. Ïðèìåðè èíäèðåêòíîã ïðîãðàìñêîã àäðåñèðà»à ñó ïðèêàçàíè ó òàáåëè 7. Òàáåëà 7: Ïðèìåðè èíäèðåêòíîã àäðåñèðà»à ïðîãðàìñêå ìåìîðèjå jmp AX ñêîê íà ëîêàöèjó àäðåñèðàíó ðåãèñòðîì AX ó òåêó åì êîäíîì ñåãìåíòó jmp ÅAX ñêîê íà ëîêàöèjó àäðåñèðàíó ðåãèñòðîì ÅAX ó òåêó åì êîäíîì ñåãìåíòó 7
Ñëèêà 7: Ïðèìåð ðåëàòèâíîã ïðîãðàìñêîã àäðåñèðà»à 3 Àäðåñèðà»å ñòåê ìåìîðèjå Îñíîâíà íàìåíà ñòåê ìåìîðèjå jå äà ïðèâðåìåíî óâà ïîäàòêå è ïîâðàòíå àäðåñå çà ôóíêöèjå. Ñòåê jå ìåìîðèjà îðãàíèçîâàíà ïî ïðèíöèïó ïîñëåä»èó-ïðâè-íàïî å (Last-In-First-Out, LIFO), øòî çíà è äà å ïðâè ñà ñòåêà áèòè ñêèíóò ïîäàòàê êîjè jå ïîñëåä»è ïîñòàâ åí. Çà óïèñ ïîäàòàêà íà ñòåê ñå êîðèñòè èíñòðóêöèjà PUSH, äîê ñå çà ñêóäà»å ïîäàòàêà ñà ñòåêà êîðèñòè èíñòðóêöèjà POP. Èíñòðóêöèjà ïîçèâà ïðîöåäóðå CALL óïèñójå ïîâðàòíó àäðåñó íà ñòåê, äîê èíñòðóêöèjà ïîâðàòêà èç ïðîöåäóðå RET ïðåóçèìà ïîâðàòíó àäðåñó ñà ñòåêà. Îäðæàâà»å ñòåê ìåìîðèjå ñå âðøè ïîìî ó ðåãèñòàðà: ïîêàçèâà íà ñòåê (stack pointer, è ñåãìåíòè ðåãèñòàð çà ñòåê SP èëè ESP) (stack segment register, SS). Ïðèëèêîì óïèñà íà ñòåê, ñòåê ìåìîðèjà ñå øèðè ñà âèøèõ àäðåñà êà íèæèì, à ïðèëèêîì ñêèäà»à ñà ñòåêà ñòåê ìåìîðèjà ñå ñêóï à ñà íèæèõ êà âèøèì àäðåñàìà. Ðåãèñòàð ïîêàçèâà íà ñòåê SP óâåê ïîêàçójå íà ïîñëåä»è áàjò ó îêâèðó ñòåê ìåìîðèjå, è óïèñ íîâîã ïîäàòêà å áèòè íà ñëåäå èì ëîêàöèjàìà ïðè åìó ñå âðåäíîñò ó ðåãèñòðó SP ñìà»ójå, äîê ñå ïðèëèêîì ñêèäà»à ñà ñòåêà âðåäíîñò ó ðåãèñòðó SP ïîâå åâà. Ñåãìåíòíè ðåãèñòàð SS ó ðåàëíîì ìîäó ñàäðæè àäðåñó ñòåê ñåãìåíòà êîjà òðåáà äà áóäå ïîìíîæåíà ñà 10h ïðèëèêîì àäðåñèðà»à, äîê ó çàøòè åíîì ìîäó ñàäðæè ñåëåêòîð ïîìî ó êîjåã ñå ïðèñòóïà äåñêðèïòîðó ñòåê ñåãìåíòà. Ïðèíöèï àäðåñèðà»à ñòåê ìåìîðèjå ïðèëèêîì ïîñòàâ à»à ïîäàòêà òèïà WORD jå ïðèêàçàí íà ñëèöè 8, äîê jå ñêèäà»å ïîäàòêà òèïà WORD ïðèêàçàíî íà ñëèöè 9 Èíñòðóêöèjå PUSHA è POPA óïèñójó, îäíîñíî ñêèäàjó ñà ñòåêà ñâå ðåãèñòðå îñèì ñåãìåíòíèõ. Îâå èíñòðóêöèjå ñó äîñòóïíå íà 32-áèòíèì ìèêðîïðîöåñîðèìà. Ïðèìåðè PUSH è POP èíñòðóêöèjà ñó ïðèêàçàíè ó òàáåëè 8. 8
Ñëèêà 8: Ïðèìåð àäðåñèðà»à ñòåê ìåìîðèjå ïðèëèêîì óïèñà ïîäàòêà òèïà WORD Ñëèêà 9: Ïðèìåð àäðåñèðà»à ñòåê ìåìîðèjå ïðèëèêîì ñêèäà»à ïîäàòêà òèïà WORD Òàáåëà 8: Ïðèìåðè PUSH è POP èíñòðóêöèjà POPF Ñêèäà ñà ñòåêà ðå è óïèñójå ó ôëàã ðåãèñòàð FLAGS PUSHF Óïèñójå íà ñòåê êîïèjó ôëàã ðåãèñòðà FLAGS POPFD Ñêèäà ñà ñòåêà äâîñòðóêó ðå è óïèñójå ó ôëàã ðåãèñòàð EFLAGS PUSHFD Óïèñójå íà ñòåê êîïèjó ôëàã ðåãèñòðà EFLAGS POP AX Ñêèäà ñà ñòåêà ðå è óïèñójå ó ðåãèñòàð AX PUSH AX Óïèñójå íà ñòåê êîïèjó ðåãèñòðà AX POP CS Íèjå äîçâî åíî PUSH [BX] Óïèñójå íà ñòåê êîïèjó ðå è èç ñåãìåíòà ïîäàòàêà ñà ëîêàöèjå àäðåñèðàíå ðåãèñòðîì BX PUSH 1234h Óïèñójå íà ñòåê âðåäíîñò 1234h POPA Ñêèäà ñà ñòåêà ïîäàòêå è óïèñójå ó ðåãèñòðå SI, DI, BP, SP, BX, DX, CX è AX PUSHA Óïèñójå íà ñòåê êîïèjå ðåãèñòàðà AX, CX, DX, BX, SP, BP, DI è SI POPAD Ñêèäà ñà ñòåêà ïîäàòêå è óïèñójå ó ðåãèñòðå ESI, EDI, EBP, ESP, EBX, EDX, ECX è EAX PUSHAD Óïèñójå íà ñòåê êîïèjå ðåãèñòàðà EAX, ECX, EDX, EBX, ESP, EBP, EDI è ESI 4 Ïèòà»à è ïðîáëåìè 1. Íàâåñòè ïðèìåð ðåãèñòàðñêîã àäðåñèðà»à ñà 8-áèòíèì ðåãèñòðèìà. 9
2. Íàâåñòè ïðèìåð ðåãèñòàðñêîã àäðåñèðà»à ñà 16-áèòíèì ðåãèñòðèìà. 3. Íàâåñòè ïðèìåð ðåãèñòàðñêîã àäðåñèðà»à ñà 32-áèòíèì ðåãèñòðèìà. 4. Íàâåñòè ïðèìåð íåïîñðåäíîã àäðåñèðà»à. 5. Íàâåñòè ïðèìåð äèðåêòíîã àäðåñèðà»à. 6. Øòà îçíà àâà ñèìáîë [] ïðèëèêîì àäðåñèðà»à ïîäàòàêà ó ìåìîðèjè. 7. Íàâåñòè ïðèìåð çà ðåãèñòàðñêî èíäèðåêòíî àäðåñèðà»å. 8. Êîjè áàçíè ðåãèñòðè ñå êîðèñòå çà áàçíî-èíäåêñíî àäðåñèðà»å? 9. Íàâåñòè ïðèìåð áàçíî-èíäåêñíîã àäðåñèðà»à ïîäàòàêà ó ñåãìåíòó ïîäàòàêà. 10. Íàâåñòè ïðèìåð áàçíî-èíäåêñíîã àäðåñèðà»à ïîäàòàêà ó ñòåê ñåãìåíòó. 11. Êîjå èíñòðóêöèjå ñå êîðèñòå çà óïèñ è ñêèäà»å ïîäàòàêà ñà ñòåê ìåìîðèjå? 12. Êîjè ðåãèñòðè ñå êîðèñòå çà àäðåñèðà»å ó îêâèðó ñòåê ñåãìåíòà. 13. Îájàñíèòè ïðèíöèï ôóíêöèîíèñà»à ñòåê ìåìîðèjå. 10