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

Циклды сола жылжыту командасы ROL р битты сола жылжытады. Жоары бит тменгі бита жне ауыстыру жалаушасына кшіріледі. Команданы синтаксисі SHL командасыны синтаксисі сияты.

Циклды жылжыту командасыны жай жылжыту командасынан ерекшелігі: бит ешайда жоалмайды, регистрлерді бір шынан ыыстырылан бит келесі шынан айта жазылады.

Келесі мысалды жоары бит тасымалдау жалаушасына жне 0 нмірлі тменгі битке кшіріледі:

MOV AL,40h ;AL=01000000b

ROL AL,1 ;AL=10000000b,CF=0

ROL AL,1 ;AL=00000001b,CF=1

ROL AL,1 ;AL=00000010b,CF=0

ROL командасы операндты жоары жне тменгі бліктерін тасымалдау шін ыайлы. Осындай алмасу келесі программа мтінінде крсетілген.

Операндты жоары жне тменгі биттарын алмастыру

.286

.DATA

Byteval DB 0Fh

wordval DW 1234h

.CODE

MOV AL,26h

ROL AL,4 ;AL=62h

ROL byteval,4 ;byteval=F0h

MOV AX,0203h

ROL AX,8 ;AX=0302h

ROL wordval,8 ;wordval=3412h

Циклды оа жылжыту командасы ROR р битты оа жылжытады. Тменгі бит тасымалдау жалаушасына жне жоары бита кшіріледі. Команда синтаксисі SHL командасыны синтаксисі сияты.

Келесі мысалда тменгі бит ауыстыру жалаушасына жне нтижені жоары битына кшіріледі.

MOV AL,01h ;AL=00000001b

ROR AL,1 ;AL=10000000b,CF=1

ROR AL,1 ;AL=01000000b,CF=0

Кшіріп, циклды сола жылжыту командасы RCL р битты сола жылжытады жне жоары битты тасымалдау жалаушасына кшіреді. Ал тасымалдау жалаушасындаы бит тменгі бита кшіріледі.

Келесі мысалда CLC командасы ауыстыру жалаушасыны мнін алып тастайды. Бірінші RCL командасы BL регистріні жоары битын ауыстыру жалаушасына орнатады жне алан биттарды барлыын сола жылжытады. Екінші RCL командасы тасымалдау жалаушасын тменгі бита орналастырады жне алан биттарды барлыын сола жылжытады.

CLC ;CF=0

MOVC BL,8h ;BL=10001000b

RCL BL,1 ;BL=00010000b,CF=1

RCL BL,1 ;BL=00100001b,CF=0

Кшіріп, циклды сола жылжыту командасы RCR р битты оа жылжытады жне тменгі битты ауыстыру жалаушасына кшіреді. Ауыстыру жалаушасы нтижені жоары битына кшіріледі.

Келесі мысалда STC командасы ауыстыру жалаушасыны кйін циклдік жылжыту операциясынан алдында орнатады:

STC ;CF=1

MOV AH,10h ;AH=00010000b,CF=1

RCR AH,1 ;AH=10001000b,CF=0

Дебиеттер тізімі

Негізгі дебиеттер:

1. Голубь Н.Г. Искусство программирования на Ассемблере [Текст] / Н.Г. Голубь.- 3-е изд., перераб. и дополн.- СПб.: Питер, 2006.- 820с

2. Introduction to Assembly Language Programming: Pentium and RISC processors/ Sivarama P.Dandamudi.-2nd ed.

3. Assembly-Language Developer System, Version 6.1, for MS-DOS and Windows Operating System Microsoft Corpotation.

4. Юров В. Assembler: Практикум. - СПб Питер,2001 Assembler. Учебник для вузов. 2-е изд. – СПб.:Питерб 2008.-637 с.:ил.

5. Программирование на языке ассемблер IBM_PC.–М.: «ДИАЛОГ-МИФИ», 1999.– 288с.,

6. Ассемблер для 32. Самоучитель: - М. Издательский дом «Вильямс», 2007. 368с.:ил. Г.И. Галисеев.

7. Макроассемблер: Создание и отладка программ. М.: Майор, 2001.-192с.-(Мой компьютер), В. Н. Пильщиков.

8. Фараонов В. В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. - М.: издательство «ОМД Групп», 2003. – 616 с., ил

9. Ассемблер: программирование и анализ коректности машинных прграмм. – К.: Издательская группа BHV, 2000., Пустоваров В.И.

 

осымша дебиеттер:

 

Assembler:Специальный справочник. СПб: Питер, 2000, В. Юриев

Введение системное прграммирование: Пер.С англ. – М.: Мир,1988, Бек Л.

Язык ассемблер для процессоров INTEL, Кип Р. Ирвин.

Брэдли Д. Программирование на языке ассемблера для персональной ЭВМ фирмы IВМ: Пер. В англ. – М.: Радио и связь, 1988. – 448 с.

Скэнлон Л. Персональные ЭВМ ІВМ РС и ХТ. Программирование на языке ассемблера: Пер. В англ. – М.: Радио и связь, 1991. -336 с.

Абель П. Язык Ассемблера для ІВМ РС и программирования: Пер. с анлг. – М.: Высшая школа, 1992. – 477 с.

Нортон П., Сохуэ Д. Язык ассемблера для ІВМ РС: Пер. с анлг. –М.: Издательство «Компьютер»; Финансы и статистика, 1992. -352 с.

Использование Turbo Assemler при разработке программ. – Киев: «Диалектика», 1994. -288 с.

Лямин Л. В. Макроассемблер МАSM. – М.: Радио и связь, 1994. – 320 с.

Хомоненко А. Д и др. Delphi 7 / Под общ. Ред. А.Д. Хомоненко – СПб.: БХВ-Петербург, 2004.–1216 с.:ил

Культин Н. Основы программирования в Delphi 5. – СПб: БХВ-Петербург, 2003 – 608с.

Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов – СПб.:Питер, 2004.-640 с.:ил.

Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование: Учеб. Для вузов/ Под ред. Г.С.Ивановой.-М.: Изд-во МГТУ им. Н.Э.Баумана, 2001.-320с.,ил.(Сер. Информатика втехническом университете).


Дріс №1.

Таырыбы.Кіріспе.

Жоспары. Ассемблер тілі деген не? Оны оуды ажеттілігі. Миропроцессорларды трлері. Оларды ерекшеліктері мен рылымы.

Жалпы программалау процесін мегеру шін алдымен жоары дрежелі программалау тілдеріі (Паскаль, Си, Delphi, Java т.б.) оылады. Бл тілдерде алгоритмдерді жзеге асыруды, сол сияты, жылжымалы объектілік модульдерді (машина тіліндегі программа кодыны) жасалуыны мен олданылуыны кптеген мселелері адама беймлім болып келеді. Ал, Ассемблер тілін оу программалауды йренумен атар жоары дрежелі тілдерді компьютерді аппаратты жабдытарымен алайша байланыста болатынын жете тсінуге ммкіндік береді. Сондытан, ассемблер тілін мегеру процессорда информацияны делу процесін толы тсінуге ммкіндік беріп, программа рушыа процессорды жне операциялы жйені басару, сол сияты рылылара тікелей атынау жолдарын толытай ашады.

Ассемблер тілі р жеке командасы процессорды командасына аударылатын тменгі дегейлі тіл. Ол процессорды архитектурасымен тікелей байланысты. Процессорды архитектурасына згерістер енгізілген сайын ассемблерде жаартылып, толытырылып отырады. р прорессорлар топтары шін зіне лайыты ассемблер олданылады.

Бл кнгі, программалау жолдарын айтарлытай жеілдетуге баыттылан, программалы ралдарды арынды даму кезеінде Ассемблерді білу ажет пе деген сауал туатыны сзсіз. рине, жйелік программалаушылар (айталы, жйелік, олданбалы программалы ралдар, компьютерлік ойындар жазушылар немесе хакерлер) шін Ассемблерді білу керектігі кмн туызбайды. Ал олданбалы программалаушыларды білуі ажет пе? рине, ажет. Іс жзінде кез келген программалау тілдерінде ассемблерлік кіріктірмелер жасауа болады. Кптеген алгоритмдік тілдерінде программалау орталары з модульдерінде Ассемблер модульдерін пайдалануа ммкіндік береді. Осылайша жоары дегейлі программалауды стандартты ралдарыны ммкіндігі шектелген жадайлар немесе программаны тиімділігін арттыру жолдары жзеге асырылады.

Осы курста Intel бірегейлі микропроцес-сорларыны негізіне жасалан персоналды компьютерлерге арналан Ассемблер тілінде программалау арастырылады. Мнда мліметтер мен командаларды компьютер жадында кескінделуі, 16- жне 32- разрядты программалау негіздері, мліметтерді енгізу-шыару жолдары, макрорылымдарды пайдалану мселелері толыымен баяндалан. Сонымен атар, компьютер архитектурусыны программалауа атысты элементтері: процессорды рылымы мен жмыс жасау принципі; регистрлерді трлері мен олданылуы; компьютер жадыны йымдастырылу жолдары баяндалады.