Жылжыту командалары


Пән: Автоматтандыру, Техника
Жұмыс түрі:  Реферат
Тегін:  Антиплагиат
Көлемі: 12 бет
Таңдаулыға:   

МАЗМҰНЫ

КІРІСПЕ
3
КІРІСПЕ: 1. ЛОГИКАЛЫҚ КОМАНДАЛАР
3: 5
КІРІСПЕ: 1. 1 And командасының қолданылуы
3: 5
КІРІСПЕ: 1. 2 Or командасының қолданылуы
3: 5
КІРІСПЕ: 1. 3 Xor командасының қолданылуы
3: 5
КІРІСПЕ: 1. 4 Test командасының қолданынуы
3: 6
КІРІСПЕ: 1. 5 Not командасының қолданылуы
3: 7
КІРІСПЕ: 2. ЖЫЛЖЫТУ КОМАНДАЛАРЫ
3: 9
КІРІСПЕ: 2. 1 Жалпы мағлұмат
3: 9
КІРІСПЕ: 2. 2 Сызықты жылжыту командалары
3: 9
КІРІСПЕ: 2. 3 Циклдік жылжыту командалары
3: 11
КІРІСПЕ: ҚОРЫТЫНДЫ
3: 13
КІРІСПЕ: ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ТІЗІМІ
3: 14

КІРІСПЕ

Assembler тілінің арифметикалық есептеулермен қатар, микропроцессордың командалар жүйесінде логикалық мәліметтерді өзгертулерден тұрады. Логикалық деп, формальді логика ережелерінен тұрады. Формальді логика жалған және ақиқат деңгейінде жұмыс атқарады. Ол микропроцессор үшін 1 және 0-ден құралады. Компьютерлерге бірлік және нөлдік тілдер жақын болып табылады, бірақ минимальді мәліметтердің бірілігімен жұмыс істейтін машиналық командалар - байт болып табылады.

1. Логикалық командалар:

  • And командасының қолданылуы
  • Or командасының қолданылуы
  • Xor командасының қолданылуы
  • Test командасының қолданынуы
  • Not командасының қолданылуы

2. Жылжыту командалары:

Сызықты жылжыту

  • Shl (Shift Logical Left ) командасының қолданылуы
  • Shr (Shift Logical Right) командасының қолданылуы
  • Sal (Shift Arithmetic Left) командасының қолданылуы
  • Sar (Shift Arifhmetic Right) командасының қолданылуы

Циклдік жылжыту

  • Rol (Rotate Left) командасының қолданылуы
  • Ror (Rotate Right) командасының қолданылуы
  • Rcl (Rotate through Carry Left) командасының қолданылуы
  • Rcr (Rotate through Carry Right) командасының қолданылуы

\[\scriptstyle1{\mathrm{~aaisisledisticledicticledicledicledilediled}}\]
1-сурет Логикалық мәліметтер жүйесі

1. ЛОГИКАЛЫҚ КОМАНДАЛАР

1. 1 And командасының қолданылуы

Логикалық мәліметтердің жұмысының байланысын тақтатпайтын микропроцессор командалар жүйесі келесі командалардан жиынтығынан тұрады:

And оперант_1, оперант_2 - логикалық көбейту операциясы. Команда разряд бойынша логикалық операция ЖӘНЕ (конъюнкция) бит оперант оперант_1, оперант_2 орындайды. Нәтижесі бірінші оперант_1 жазылады.

Белгілі разряд (бит) 0 түсіріп тастау үшін келесі команда қолданылады:

And оперант_1, оперант_2

Бұл командада оперант_2, маска ролін орындайтын, разряд орындарында нөлдік биттен түру керек.

And eax, 0dh ; eax регистрындағы 1 битті 0 - ге түсіріп тастау.

1. 2 Or командасының қолданылуы

Оr оперант_1, оперант_2 - логикалық қосу операциясы. Команда разряд бойынша логикалық операция НЕМЕСЕ (дизъюнкция) бит оперант оперант_1, немесе оперант_2 орындайды. Нәтижесі оперант_1 жазылады.

Белгілі разрядты (бит) 1 орнату үшін келесі командасы колданылады:

Оr оперант_1, оперант_2

Бұл командада оперант_2, маска ролін орындайтын, разряд орындарында бірлік биттен түру керек.

Or eax, 10b ; eax регистрына 1 бит орнату керек.

1. 3 Xor командасының қолданылуы

Xor оперант_1, оперант_2 - логикалық бірігу операциясы. Команда разряд бойынша шығарылған логикалық операция НЕМЕСЕ операнд биттарын оперант_1, оперант_2 орындайды. Нәтижесі бірінші опернтқа жазылады.

Команда Xor оперант_1, оперант_2 қолданылады:

  • оперант_1, оперант_2биттардың айырмашылығын табу үшін;
  • оперант_1берілген юиттардың күйін инверторлау үшән.

Бізді қызықтырып отырған бит маска ( оперант_2) Xor командасы орындалған кезде 1 бит болу керек, ал қалғандары - 0

Xor eax, 10b ; eax регистрындағы 1 бит инверторлау үшін

Jz mes ; өту, егер 1 бит а1 бірлік болса

1. 4 Test командасының қолданынуы

Test оперант_1, оперант_2 - операция « тексеру » (логикалық көбейту әдісімен) . Команда разряд бойынша логикалық операция ЖӘНЕ оперант битарын оперант_1, оперант_2 орындайды. Опернат күйі бұрынғыдай болады, тек флагтар ғана өзгереді zf, sf, және pf, ол оперант биттарынынң күйін жеке талдауға мүмкіндік береді және олардың күйін өзгертпей.

Xor-дағы берілген бит күйін тексеру үшін келесі команда қолданылады:

Test оперант_1, оперант_2 (оперант_1- тексеру)

Тексерілетін бит оперант_1 маскада ( оперант_2) жеке мағынада болу керек. Test командасының алгоритмы And командасының алгоритміне сәйкес, бірақ ол оперант_1 мағынасын өзгертпейді. Команданың нәтижесі болып zf нол флагы орнатылады:

  • егер zf нөлге тең болса, онда логикалық көбейту нәтижесі нөлдік нәтиже болады, сонда тиісті 1 бит маска оперант_1 бірлік битпен сәйкес келмейді.
  • Егер zf 1 тең болса, онда логикалық көбейту нәтижесі нөлдік нәтиже болмайды, сонда ең болмағанда 1 бит маска оперант_1 бірлік битпен сәйкес келді.

Test eax, 10h

Jz m1 ; өту, егер 4 бит 1 битке тең болса.

Мысалда көргеніміздей Test командасының нәтижесі реакциясы үшін өту командасы jnz (Jamp if Not Zero) - өту, егер флаг zf нөл нөлдік болмаса, немесе команда jz (Jamp if Zero) - өту, егер zf нөл флагы 0 -ге тең болса.

Келесі екі команда орнатылған 1 бит оперант іздеуді жүзеге асыруға рұқсат береді. Іздеуді оперант басынанда да, соңынанда да жасауға болады:

bsf оперант_1, оперант_2 (Bit Scaning Forward) - биттарды сканерлеу. 1 орнатылған (0 биттан үлкен битқа дейін) оперант_2 биттарын кішісінен үлкенініе дейін 1 биттарды іздеп сканерлейді.

Егер ондай табылса, онда оперант_1- ге осы биттің нөмері бүтін түрде кіргізіледі. Егер бүкіл оперант_2 - гі биттар нөлге тең болса, онда zf нөл флагы 1-ге орнатылады, басқа жағдайда zf флагы 0- ге түсіріледі.

mov a1, 02h

bsf bx, a1 ; bx=1

jz m1 ; өту, егер a1=00h

bcr оперант_1, оперант_2 (Bit Scaning Reset ) - биттарды кері қарай сканерлеу. 1 орнатылған (0 биттан үлкен битқа дейін) оперант_2 биттарын кішісінен үлкенініе дейін 1 биттарды іздеп сканерлейді. Егер ондай табылса, онда оперант_1- ге осы биттің нөмері бүтін түрде кіргізіледі.

Егер бүкіл оперант_2 - гі биттар нөлге тең болса, онда zf нөл флагы 1-ге орнатылады, басқа жағдайда zf флагы 0- ге түсіріледі.

; prg_9_1. asm

Masm

Model small

Stack 256

. data

. code

Main:

mov ax, @data

mov ds, ax

; …

. 486

xor ax, ax

mov a1, 02h

bsf bx, ax ; bx=1

jz m1 ; a1=00h

bsr bx, ax

m1:

; …

mov ax, 4c00h

int 21h

endmain

1. 5 Not командасының қолданылуы

Not оперант_1, оперант_2 - логикалық терістеу операциясы. Команда разряд бойынша әр опернт битін интервалдайды. Нәтижесі оперант орнына жазылады.

Intel микропроцессорнының соңғы модельдерінде бірнеше логикалық командалар бар, олар нақты бит операндына кіруге көмектеседі. Оперант жадыда да және жалпы тағайындалған регистрда болуы мүмкін. Бит орны арласқан бит біршама кіші бит операндына тапсырылады. Араласу мағынасы тікелей мағына түрінде тапсырылуы мүмкін, және жалпы тағайындалған регистрда болуы да мүмкін. Барлық командалар таңдалып алынған бит cf флагын иеленеді.

Bt операнд, бит араласуы (Bit Test) - битарды тексеру. Команда бит мағынасын cf флагына ауыстырады.

bt ax, 5 ; 5 бит мағынасын текрсеу

jnc m1 ; өту, егер бит =0

bts операнд бит араласуы (Bit Test and Set) - биттарды орнату және тексеру. Команда бит мағынасын cf флагына ауыстырады, содан кейін осы битты 0-ге орналастырады.

btc бит араласуы (Bit Test and Convert) - тексеру және инверторлау. Команда бит мағынасын cf флагына ауыстырады және бит мағынасын инверторлайды.

2. ЖЫЛЖЫТУ КОМАНДАЛАРЫ

2. 1 Жалпы мағлұмат

Барлық жылжыту коамндалары биттарды операнд полясында оңға немесе солға жылжытады, код операциясына байланысты. Барлық жылжыту командалары бірақ структуралы:

көп операнд, счетчик_жылыжту

Жылжитын разряд саны, счетчик_жылжыту, екінші операнд орнына орналасады және екі тәсілмен берілуі мүмкін:

  • Статистикалық; тікелей операнд көмегімен белгіленген тапсырма мағынасын болжайды.
  • Динамикалық; жылжыту командасын орындар алдында счетчик_жылжыту мағынасын с1 регистрына енгіземіз.

Барлық жылжыту командалары cf флагында орнатылады. Биттрады операнд сыртына жыжытқан сайын алғаш тасымал флагынатүседі, оның мағынасы келесі битке теңестіріледі, операнд чыртына шығып кеткен. Биттардың қайда түсетіні жылжу командасының типіне және программа алгоритмне байланысты.

Жылжыу командалары әрекет ету принципі бойынша екі түрге бөлінеді:

  • Сызықты жылжыту командалары;
  • Циклдік жылжыту командалары

2. 2 Сызықты жылжыту командалары

Бұл командалар типіне келесі командалар жатады, жылжыу командасы келесі алгоритм бойынша іске асады:

  • Кезекті «ілгері жылжу» биттарды cf флагына орнатады;
  • Бит, операнд артынан алынған, 0 мағынаға ие.
  • Келесі битті жылжытқанда ол cf флагына ауысады, бірақ алдыңғы жылжыған бит мағынасын жоғалтады.

Сызықты жылжыту командалары екі түрге бөлінеді:

  • Логикалық сызықты жылжыту командалары;
  • Арифметикалық сызықты жылжыту командалары.

Логикалық сызықты жылжыту командалрына келесілер жатады:

Shl операнд, счетчик_жылжыту (Shift Logical Left) - логикалық солға жылжыту. Опренад ішіндегісі бит санына солға жылжыйды, счетчик_жылжыту мағынасымен анықталған. Оңға ( кіші бит позициясына) нөлдер жазылады.

Shr операнд, счетчик_жылжыту ( Shift Logical Right) - логикалық оңға жылжу. Опренад ішіндегісі бит санына оңға жылжыйды, счетчик_жылжыту мағынасымен анықталған. Оңға ( үлкен бит позициясына) нөлдер жазылады.

Осы командалардың жұмыс істеу принциптері:

2-сурет Логикалық сызықты жылжыту командалары

Арифметикалық сызықты жылжыту командаларының логикалық жылжыту командаларынан айырмашылығы, олар операндтың таңбалық разрядтарымен өзгеше жұмыс істейді:

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Ассемблер тілінде программалау
Машинада деректер бойынша операцияларды орындау
Командаларының конвейерлі орындалуы
Windows операциялық жүйе
Photoshop бағдарламасы туралы
Microsoft Excel электрондық кестесі туралы
Опциялар мен аргументер
CorelDraw бағдарламасымен жұмыс істеу
Norton Commander операциялық қабыршығы
Cisc архитектуралы микроконтроллерлер
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz