Жылжыту және циклдық жылжыту командалары
Жылжыту командаларының жеті түрін атап кетуге болады, олар 8, 16 немесе 32- биттік регистр құрамын немесе жады ұяшығын бір орынға немесе бірнеше орынға солға не оңға жылжытуды орындайды. Олардың үшеуі операндты жылжытады, ал қалғандары оларды циклдық жылжытады немесе айналдырады. Барлық командалар үшін CF тасымал белгісі операнд кеңейтуі сияқты қолданылады - 9, 17 немесе 33 бит секілді. Ол жылжыған бит мәнін алады. Жылжыту командасы оңға жылжыған кезде CF-ке 0-ші битті орналастырады, ал солға жылжыған кезде 7, 15 немесе 31 битті орналастырады.
Командалар екіге бөлінеді. Логикалық командалар оның таңбасына қарамастан операндты жылжытады. Арифметикалық командалар операндтың таңбалық үлкен битін сақтайды.
Жылжыту командаларының жалпы форматы: ком қабылдағыш, санауыш
Жылжыту және циклдық жылжыту командаларының екі операнды болады: қабылдағыш және санауыш. Қабылдағыш ретінде 8, 16 немесе 32-биттік жалпы міндетті регистрлер немесе жады ұяшығы алынады. Санауыш ретінде тәуелсіз мән немесе CL регистріндегі таңбасыз мән алынады.
SAL - арифметикалық солға жылжу командасы.
SAR - арифметикалық оңға жылжу командасы.
Бұл командалар таңбалы сандарды жылжытады. SAR командасы операнд таңбасын сақтайды. SAL - командасы операнд таңбасын сақтамайды, бірақ операнд таңбасын өзгерткен кезде OF асатолу белгісін 1-ге өзгертеді.
Әрбір жылжу болған сайын SAL командасы бұл операндтың 0-ші битіне 0-ді қойып кетеді.
SHL – логикалық солға жылжу командасы.
SHR – логикалық оңға жылжу командасы.
Бұл командалар таңбасыз сандарды жылжытады. SHL командасы SAL командасына ұқсас. SHR командасы SHL командасына ұқсас, бірақ оңға жылжытады. әрбір жылжу болған сайын SHR командасы бұл операндтың үлкен биті (7 бит, 15 бит немесе 31 бит). 0 –мен толтырылады
Команда орындалғаннан кейін белгілердің күйі: OF, SF, ZF, PF, CF белгілері өзгереді.
Операндты солға бір битке жылжыту операнд мәнін екі еселейді (2 көбейтеді), ал бір битке оңға жылжыту операнд мәнін керісінше екі есе кемітеді (2 бөледі), онда жылжыту командаларын жылжам көбейту мен бөлу командалары ретінде пайдаланцға болады. SAL, SHL, SAR және SHR командаларының әрекеттері 7 суретте келтірілген.
Сурет 7. Жылжыту командаларының жұмыс принципі
ROL - циклдің солға жылжу командасы.
ROR - циклдің оңға жылжу командасы.
Бұл командалар орындалған кезде шекарадан шыққан операнд биті оған қарама-қарсы беттен кіреді.
RCL -тасымал белгісі арқылы циклдық солға жылжу командасы.
RCR - тасымал белгісі арқылы циклдық оңға жылжу командасы.
Бұл командалар орындалған кезде қарама-қарсы беттегі операнд битінің орнына CF тасымал белгісінің мәні орналасады.
Команда орындалғаннан кейін белгілердің күйі: OF, CF белгілерінің мәні өзгереді.
Командалардың жұмыс принципі 8 суретте көсетілген.
Сурет 8. Циклдық жылжыту командаларының жұмыс принципі.
Негізгі әдебиеттер: 2[12-20]; 3[10-43]
Бақылау сұрақтары:
1. Логикалық көбейту (AND) және логикалық тексеру (TEST) командаларының айырмашылығы?
2. Қандай логикалық команданың көмегімен байтың, сөздің немесе екілік сөздің биттерін терістеуге болады?
3. Арифметикалық жылжыту командаларын атаңыз.
4. Логикалық жылдыту командаларын атаңыз.
5. Циклдық жылжыту командаларын атаңыз.
Дәріс №9. Тізбекті командалар. Үзу командалары. Микропроцессорды басқару командалары.
Дата добавления: 2015-10-26; просмотров: 2609;