2.5 Деректерді жіберу командалары
Деректерді жіберу командалары
Деректерді жіберу командалары кез-келген процессордың командалық жүйесінде өте маңызды орын алады. Олар келесі маңызды функцияларды орындайды:
1) мазмұнды процессордың ішкі регистрлеріне жүктеу (жазу);
2) процессордың ішкі регистрлерінің мазмұнын жадта сақтау;
3) мазмұнды жадтың бір аймағынан екіншісіне көшіру;
4) енгізу/шығару құрылғыларына жазу және енгізу/шығару құрылғыларынан оқу.
Кейбір процессорларда (мысалы, Т-11) барлық осы функцияларды бір MOV командасы орындайды (байтты бағыттау үшін – MOVB) бірақ операндтарды адрестеудің әртүрлі әдістерімен.
Басқа процессорларда MOV пәрменінен басқа, аталған функцияларды орындау үшін тағы бірнеше пәрмендер бар. Мысалы, регистрлерді жүктеу үшін жүктеу командаларын қолдануға болады, ал әр түрлі регистрлер үшін әр түрлі командалар қолданылады (олардың белгілері әдетте жүктеу сөзін қолдана отырып жасалады). Көбінесе стекке сақтау және стектен шығару үшін арнайы командалар бөлінеді (PUSH – стекке сақтау, POP – стектен шығару). Бұл командалар автоинкрементті және АВТО-декрементті адрестеу арқылы жіберуді жүзеге асырады (тіпті егер бұл адрестеу режимдері процессорда нақты көрсетілмесе де).
Кейде командалық жүйеге деректерді кіші (немесе тізбекті) жіберу үшін арнайы MOVS командасы енгізіледі (мысалы, 8086 процессорында). Бұл пәрмен бір сөзді немесе байтты емес, берілген сөздерді немесе байттарды (MOVSB) жібереді, яғни ол бір магистральдық алмасу циклін емес, бірнешеуін бастайды. Бұл ретте өзара іс-қимыл жасалатын жадтың мекенжайы әрбір өтініштен кейін 1-ге немесе 2-ге ұлғаяды немесе әрбір өтініштен кейін 1-ге немесе 2-ге азаяды. Яғни, жасырын түрде автоинкременттік немесе авто-декременттік адрестеу қолданылады.
Кейбір процессорлар (мысалы, 8086 процессоры) енгізу/шығару құрылғыларымен бөлісу функцияларын ерекше көрсетеді. In пәрмені енгізу/шығару құрылғысынан ақпаратты енгізу (оқу) үшін пайдаланылады, ал OUT пәрмені енгізу/шығару құрылғысына шығару (жазу) үшін пайдаланылады. Бұл жағдайда ақпарат алмасу аккумулятор регистрі мен енгізу/шығару құрылғысы арасында жүзеге асырылады. Бір отбасының неғұрлым жетілдірілген процессорлары (80286 процессорынан бастап) кіші (тізбекті) енгізу (ins командасы) және кіші Шығыс (OUTS командасы) командаларын қосады. Бұл командалар бүкіл деректер массивін (жолын) жадтан енгізу/шығару құрылғысына (OUTS) немесе енгізу/шығару құрылғысынан жадқа (ins) жіберуге мүмкіндік береді. Әр шақырудан кейін Жад мекен-жайы ұлғаяды немесе азаяды (MOVS командасы сияқты).
Сондай-ақ, деректерді жіберу командаларына ақпарат алмасу командалары кіреді (олардың белгіленуі exchange сөзіне негізделген). Ішкі регистрлер арасында, бір регистрдің екі жартысы (SWAP) арасында немесе регистр мен жад ұяшығы арасында ақпарат алмасу қарастырылуы мүмкін.
Достарыңызбен бөлісу: |