Ассемблер тілінде программалау

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 2
1. Регистрлер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 3
2. ЭЕМ . де есептердің өтетін кезеңдері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 5
3. Ассемблер тілінде программалау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 6
3.1. Ассемблер командасының пішімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
3.2. Жалғаноператорлар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 8
3.2.1. Мән беру жалғаноператорлары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 8
3.2.2. Деректерді анықтау жалғаноператорлары
3.2.3. Сегмент пен ішкіпрограммаларды анықтау жалғаноператорлары ... ... .. 9
3.2.4. Сырттық сілтеме жалғаноператорлары
3.2.5. Аудармалауды басқару жалғаноператорлары ... ... ... ... ... ... ... ... ... ... .. 10
3.2.6. Листингіні басқару жалғаноператорлары ... ... ... ... ... ... ... ... ... ... ... ... 10
3.3. Мекендету әлпілері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 11
3.4. Ассемблер командасының түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13
3.4.1. Алып . орналастыру командалары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 13
3.4.2. Арифметикалық командалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 15
3.4.3. Жеке разрядтармен жұмыс істеу командалары ... ... ... ... ... ... ... ... ... ... . 19
3.4.4. Басқару тізгінін ауыстыру командалары ... ... ... ... ... ... ... ... ... ... ... ... ... 21
3.4.5. Символдар қатарын өңдеу командалары ... ... ... ... ... ... ... ... ... ... ... ... ... 23
3.4.6. Санашықты басқару командалары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 26
3.4.7. Үзу командалары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 26
4. Ассемблер командасының құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 27
5. Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..30
6. Қолданған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .31
7. Қосымша А ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 32
Электрондық есептеу мәшинесінің программалық жабдықтары жүйелік және қолданбалық болып екіге бөлінеді.Жүйелік программалық жабдықтар немесе
“жүйелік программалық қамтама” басқа программаларды жасау, дайындау және орындау үшін қажетті программалардан тұрады.Оған :
1) Операциялық жүйе ;
2) Жоғарғы деңгейлі тілдердің трансляторлары ассемблер;
3) Жазбахабар түзеткіштері және программаны жазуға көмектесе-тін тағы басқа программалар кіреді.
Операциялық жүйе жүйелік программалық қамтаманың түйіні болып табыла-ды.Ол ЭЕМ мен оны пайдаланушылардың дара қатынасын және мәшиненің ресурстарын тиімді пайдалануды қамтамасыз ететін жүйелік программалар-
дың жиынтығы болып келеді.
Ассемблер немесе жоғарғы деңгейлі тілде жазылған программаны мәши-нелік тілге аудару үшін аударғыш (транслятор) деп аталатын программалар
Қолданылады.Ассемблер тілінде жазылған программаның аударғышы ассем-
блер деп аталады, ал жоғарғы деңгейлі тілде жазылған программаның аудар-
ғыштары программа аударғыш-орындағыш (интерпретатор) немесе програм-
ма аударғыш (компилятор) деп аталады.
Жазбахабар түзеткіштері- ЭЕМ-нің сыртқы жадында сақталған немесе жаңадан жазылған жазбахабарды енгізу немесе өзгерту үшін қолданылатын
программа жазбахабар- ассемблер немесе жоғарғы деңгейлі тілде жазылған программа, деректер немесе есептер жиыны.
Программаны жазғаннан соң оны орындату үшін тағы екі жүйелік прог-рамма қажет.Көптеген операциялық жүйелерде кез келген жүйелік немесе орындалатын программаға қосуға болатын бағдарламахана деп аталатын про-
граммалар жиынтығы болады.Орындалатын программаны және бағдарлама-
хананы немесе басқа аудармаланған ішкі программаларды біріктіретін көмек-
ші программа байланыстар түзеткіш немесе программа құрастырғыш (компо- новщик) деп аталады. Орындалатын программаны жадыға орналастырушы программа жүктемелеуші (загрузчик) деп аталады.Кейде байланыстарды тү- зету мен жүктемелеу жұмыстарын бір программа атқарды.Қолданбалы прог- раммалық жабдықтар мәшинеде жұмыс істеушілердің өз есептерін шешу үшін жасалған программаларынан тұрады.
Кез келген есепті шығару алдында программа жазу үшін программалау ті-
лін таңдау мәселесі тұрады.Әрбір тілдің артықшылықтары мен кемшіліктері жайлы әр түрлі пікірлер бар.Көбіне программашы өзі әдеттенген тілді артық санайды.Жалпы алғанда, кез келген тілмен кез келген программаны жазуға болады.Мәселе программаны жазу қолайлығы және жазылған программаның
есептеу жылдамдығы мен оның мәшине жадында алатын орнында.Мысалы СИ, Паскаль, Бейсик тілдерінде есептеу және жазбахабармен жұмыс жасайтын
1. П.Абель. “Язык Ассемблера для IBM РС и программирования”/ Пер. с англ. М.: Высш.шк., 1992.
2. Л.Скэнлон. “Персональные ЭВМ IBM РС и ХТ. Программирование на языке ассемблере”/ Пер. С англ. – М.: Радио и связь.
3. В.Юров “Assembler”- СПб.:Питер,2001.
        
        М а з м ұ н ы
Кіріспе
............................................................................
.......................................... 2
1. ... 3
2. ЭЕМ – де ... ... ... 5
3. ... ... программалау
...................................................................... ... ... ... ... ... ... ... Мән беру ... ... ... анықтау жалғаноператорлары
3.2.3. Сегмент пен ішкіпрограммаларды ... ... ... ... ... жалғаноператорлары
3.2.5. ... ... ... ... ... ... ... 10
3.3. ... ... ... ... ... ... ... Алып – ... ... 13
3.4.2. ... ... ... Жеке ... жұмыс істеу ... ... ... ... ... ... 21
3.4.5. Символдар ... ... ... ... ... ... ... ... Үзу ... ... Ассемблер ... ... ... ... ... ... ... ... ... ... ... программалық жабдықтары жүйелік және
қолданбалық ... ... ... ... ... ... ... қамтама” басқа программаларды жасау, дайындау және
орындау үшін қажетті ... ... :
1) ... жүйе ;
2) ... ... ... ... ассемблер;
3) Жазбахабар түзеткіштері және программаны жазуға
көмектесе-тін тағы басқа программалар кіреді.
Операциялық жүйе ... ... ... ... ... табыла-ды.Ол
ЭЕМ мен оны пайдаланушылардың дара қатынасын және ... ... ... ... ... жүйелік программалар-
дың жиынтығы болып келеді.
Ассемблер немесе жоғарғы деңгейлі тілде жазылған программаны мәши-
нелік тілге аудару үшін ... ... деп ... ... тілінде жазылған программаның аударғышы ассем-
блер деп аталады, ал жоғарғы деңгейлі ... ... ... ... ... аударғыш-орындағыш (интерпретатор) немесе програм-
ма аударғыш (компилятор) деп аталады.
Жазбахабар түзеткіштері- ЭЕМ-нің сыртқы жадында ... ... ... ... ... ... өзгерту үшін қолданылатын
программа жазбахабар- ассемблер немесе жоғарғы деңгейлі тілде жазылған
программа, деректер немесе есептер жиыны.
Программаны ... соң оны ... үшін тағы екі ... ... ... ... жүйелерде кез келген жүйелік немесе
орындалатын программаға қосуға ... ... деп ... ... ... ... программаны және бағдарлама-
хананы немесе басқа аудармаланған ішкі программаларды біріктіретін көмек-
ші программа байланыстар түзеткіш немесе программа ... ... деп ... ... ... ... ... программа
жүктемелеуші (загрузчик) деп ... ... тү- зету ... ... бір ... атқарды.Қолданбалы прог- раммалық
жабдықтар мәшинеде жұмыс істеушілердің өз ... шешу үшін ... ... ... ... ... алдында программа жазу үшін программалау ті-
лін таңдау мәселесі ... ... ... мен ... әр ... ... ... программашы өзі әдеттенген тілді артық
санайды.Жалпы алғанда, кез келген тілмен кез ... ... ... ... жазу қолайлығы және жазылған программаның
есептеу жылдамдығы мен оның мәшине жадында алатын ... ... ... тілдерінде есептеу және жазбахабармен ... ... жазу ... ... мен ... орны жағынан алғанда
бұл онша тиімді болып шықпайды.Осының салдарынан
аталып өтілген программалау тілдерінің бәрінде ассемблерде жазылған прог-
раммалық жеке бөлшектер ... ... ... ... ... ... ... (регистр,бейнежады және
т.б.) байланысты қажет ететін программаларды ассемблер ... ... ... ... ... ... ... бір жоғарғы деңгейлі тілде (СИ-ді
қоса) ... ... ... ... жете ... ... барлық қорларына BIOS және DOS үзүлері деңгейінде жетуге мүм-
Кіндік жасайды.
Регистрлер.
Микропроцессор регистрлері.
Ассемблер тілінде программалаудың алдында МП-ң ... ... ... анықтау қажет.Компьютердің программалық моделі - мен
танысуды МП-ң ... ... ... ... ... ... ... арналған құрылғы.Уақытша сақтау – бір ... ... ... арқылы жетерлік және программа арқылы
жетерлік (жалпы міндетті регистрлер) деп екіге бөлінеді.
Ең алғашқы 1970 жылы шыққан Intel ... МП-і 4 ... ... ... жылы 8 ... ... ... МП жарыққа шықты,ал 16 разрядтық МП 1976 жылы пайда болды,ал 1985
жылы бұл фирма осы кезге ... МП – мен ... ... ... 32 разрядтық
МП – ді шығарды.1993 жылдан бастап Pentium 32-і ... МП-і ... ... бұл МП-р ... ... Pentium ... моделі 32 регистрден тұрады : оларды 2 топқа ... ... :
1) ... ... – 16 ; 2) Жүйелік регистрлер – 16.
Ассемблер тілінде ... ... жиі ... .
Қолданбалы регистрлер.
1) Сегіз 32 разрядтық регистрлер жатады.Бұлар мәліметтер мен олардың
адрестерін ... ... ... : ... ... ... ebp/bp; esi/si; edi/di;
esp/sp.Бұл регис-трлер жалпы атқаратын регистрлер деп те аталады.
еax ax ... |ah |al |
| |bh |bl ... cx
| |ch |cl ... |bp |
2) Алты 16 ... сегмент регистрлері : cd,ds,ss,es,fs,gs7
|CS ... |
3) 32 ... ... және басқару регистрлері : жалау ... және ... ... ... ... ... ... ... ... қызмет атқаратын регистрлер.
Бұл топтағы регистрлер өздерінің кіші бөліктерін қолдануға ғана мүмкіндік
береді.Ол үшін регистрдің кіші 8 және 16 ... ... ... ... : ... ал регистрдің 16 жоғарғы разрядын
қолдануға болмайды.
Бұл регистрлер МП-ң ...... ... ... ... ... АЛҚ регистрі деп те атайды.
1) eax/ax/ah/al/ регистрі – аккумулятор деп аталады және ... ... ... арифметикалық амалдарды орындауға қолданылады.
2) ebx/bx/bh/bl/ ...... ... ... ... сақтауға қолданылады.
3) ecx/cx/ch/cl регистрі – ... ... ... ... орындалатын командамен жұмыс істейді.Мысалы : Loop командасы СХ
регистрдің мәнін 1- ге ... ... ...... ... мәліметтерді
сақтауға арналған.Келесі 2 регистр тізбекткліп орындалатын ... ... : ... ... ... амалы.
5) esi/si – индексті регистр,беру регистрі ретінде қолданылады.
6) edi/di – ... ... ... ... ... ...... белгілі бір аумағы.Стекпен жұмыс істеу үшін
келесі регистрлер қолданылады :
7) esp/sp – ... ... ... мекенін көрсетеді.
8) ebp/bp – стекте орналасқан кез – келген ... ... ... - ... ... ... ... пайдаланылатын регистрлерді
толығырақ қарастырайық.
BX,BP,SI,DI – ... және ... ... ... ... ... кезінде деректердің мекені
командалардың тұлғасында емес,сол үшін әдейі арналған және базалық немесе
нұсқатаңбалық деп ... ... ...... ... регистрде келесі орындалатын команданың
ығыстыру ... ... IP ... CS – ... (команда
сегменті) бірге 20 разрядтық физикалық мекенді ... үшін ... ... ... ... сегментін анықтаса, IP регистрі
ығыстыру аралығын көрсетеді.Программа ... ... IP ... ... ... тең байт санына өсіп отырады. Егер ... ... ... ... басқару билігін өзгерту командалары
падаланылады.
SP – стек көрсеткішінің регистрі.Бұл регистрде стек үшін ... ... ... ... ... деректерді уақытша сақтауға арналған
жадының бөлігі.Стекті қолданудың артықшылығы – деректерді сақтау үшін ... ғана ... ... және ... ... ... таңдау
жұмысынан босатылады.Стек көмегімен мәшине жадында орналасқан деректердің
мекенін есте сақтау үшін осы стек ... ... ... ... : ... түскен дерек өзінің алдындағы деректен бұрын
шығады.Стекке жазу және оқу үшін PUSH пен POP ... ... ... ... ... BX
POP
AX
Осындай деректерді сақтауды ұйымдастыру тәртібі LIFO деп ... ... out – ... ... ... ... стек көрсеткіші жадының оған бөлінген ... ... ... (2 ... ... сайын стек көрсеткішінің мәні азайып
тұрады.
Стек аймағы ... ... ... ... SEGMENT STACK ; ... 256 ... ENDS ; ... мөлшерін DB (байттар),DW (сөздер) санымен көрсетуге болады .
ЭЕМ – де есептердің өтетін кезеңдері.
ASM.exe және MASM.exe – Ассемблер ... ... ... ... ... ... мәшинелік командаларға түрлендіру
үшін керек (*.ASM - - > *.OBJ).ASM түрлендіргіші бар ... ... ... бар ... өзгертеді. OBJ түрлендіргіші ... ... деп ... ... ... жұмыс істеуге
болмайды.Себебі аудармалау 0 – дік базалық мекеннен басталады.
LINK.exe – программа құрастырғыш.Атқаратын негізгі міндеті - ... ... ... ... (*.OBJ - > *.EXE).Прог - рамма
құрастырғыш істеген кезінде :
– жедел жадының кез ... ... ... ... ... мүмкіндік беретін икемдеу жадуалын құрастырады ;
– бірнеше программаны ... ... ... ... ... қосуға,оверлейлік құрылымдар жасауға мүмкіндік пайда
болады.Ассемблер тілінде ... ... және оны ... үшін ... ... ... ... керек.
1. Әзірлеу және бастапқы дерекжиынды ЭЕМ – ге ... Кез ... ... ... ASM ... аты бар)
дерекжиын жасау.
2. Бұл жазылған бастапқы дерекжиынды мәшинелік ... үшін мына ... ... болады :
MASM *.ASM.
Аудармалау нәтижесінде объектік дерекжиын алынады.Оған кез келген ... ... ... аты ... ... дерекжиынның аты
беріледі),түрлендіргіші – ASM.Бұл дерекжиында әрбір Ассемблер командасына
сәйкес мәшинелік ... ... ... ... ... ... ығыстыру аралығы көрсетіледі.Керек
болса LST ... ... ... ... ... ... реттік нөмірі,команданың шартбелгісі,
операндтардың салыстырмалы мекені көрсетіледі.Егер LST ... ... ... ... ... ... ақпаралғы бетінде
көрсетіледі.Қате табылса,оны түзеткіш арқылы ... және ... ... Объектілік дерекжиынды орындалатын дерекжиынға ауыстыру :
LINK ... ... ... *.OBJ - - > *. ... құрастырғыш жұмыс істегенде ... ... ... ... ... шақырады,бірнеше
объектілік дерекжиынды орындалатын бір дерекжиынға біріктіреді,оверлейлік
құрылым жасайды.LINK программасының жұмысының нәтижесінде EXE ... ... ... және МАР ... бар ... ... ... Керек болған жағдайда орындалатын *. EXE ... ... ... және ... ... ... ... енгізу.
әзәрлеу ... ... ... ... ... ... жазу кезінде қолданылатын кейбір қажетті
ұғымдарды атап ... ... бір ... ... үшін ... ... ... мәшинелік команда сәйкес келеді.Операнд – әрекет
істелінетін деректердің ... ...... деректер және командалармен не істеу
керектігін ... ... ... орындалатын EXE дерекжиынында бұл
жалғаноператоларға сәйкес мәшинелік шетбелгі болмайды.
Макрокоманда – ... ... ... ... ... ... ... аталым.
1. Екілік тұрақты шама (0 немесе1).Бұл символдар міндетті түрде ... ... ... ... ... мамалар (0-9,А,В,С,D,E,F).
Міндетті түрде бұлар Н әрпімен бітеді.Егер әріптен ... ... 0 ... : ... ... шамалар (0-9).Соңына D әріпін қоюға да,қоймауға да бола
- ды.
4.Символдық тұрақты ... ... кез ... символдар
немесе цифрлар жинағы.
Ассемблер командасының пішімі.
[таңба:] шартбелгі [1-операнд] ,[2- операнд] ... ... ... ... ... ... ... түріне
байланысты оның құрамында болуы да болмауы да мүмкін.
Таңба.
Таңба символдардан ... ... ... қос ... (:) ... ... А – Z ,a – z латын әріптерімен , 0 – 9 ... және ... $, _, @ ... ... таңба аталымының арасынды бос орын болмауы керек ... ... ... ... ... (.) ... болса,ол бірінші болып
тұ-
руы керек;
– регистрлердің аттарын таңба ретінде ... ... ... аталымы үшін белгілі бір мағынаны білдіретін сөздер алған
ың –
ғайлы ;
– көп қайталанатын бірдей әріптерді ... ... ... АА
АА) .
Операцияның шартбелгісі.
Шартбелгі – команданың мнемоникалық шартбелгілерінен ... ... ... операндтардан бос аралық арқылы бөлінеді. Команданың құрамында
міндетті түрде болуы керек.
Операндтар.
Операндта ... ... және ... аты ... ... ... операнд қабылдағыш,екінші операнд таратқыш
міндетін атқарады.Командаға ... ... ... нәтижесі бірінші
операндқа жазылып отырады.
Түсініктеме.
Белгісі-нүктелі үтір (;).Алдындығы команданың бөліктерін кемінде бір ... ... ... ... ассемблерге әртүрлі қимылдар
істеуге,белгілі регистрлер тағайындауға және т.б. ... ... ... үлгі ... ... ... :
[аталым] жалғаоператор [операнд] [;түсініктеме]
Аталым таңбаға ұқсас. Айырмашылығы қос нүкте (:) жоқ.Ассемблер тілінде
60-қа жуық жалғаноператорлар бар. ... ... ... мен
ішкіпрограммаларды анықтауға,командалар мен деректердің элементтеріне ат
беруге және т.б. ... ... ... Мән беру ... ... ... ... меншіктейді
(олаға рәміздік ат тағайындалады).
EQU
EQU
EQU .
Мысалы: K EQU ... EQU ... EQU ... ... санды, өрнекті бір аталымға меншіктеу.
=
Мысалы: К=120
K=K+1
2) Деректерді анықтау жалғаноператорлары.
Бұл топқа DВ,DW және DD жалғаноператоры кіреді.
[аталым] DB өрнек [,...]
DB ... ... ... ... ... ... ... берілген ұяшықтарына бастапқы мән береді және ... ... ... ... байт орын ... ... KAP DB ... DB ... DB 12 ... DB 15 DUP ... жалған операторы DB жалғаноператоторына ұқсас,бірақ жадыда 2 ... орын ... ... DW ... ... DW 12 DUP ... ... 4 ... ... орын ... Сегмент пен ішкі программаларды анықтау жалғаноператорлары.
1. SEGMENT және ENDS жалғаноператорлары сегменттің басы мен ... ... ... ... ... ... жайлы аңықтама
бермейды (бұл міндетті ASSUME жалғаноператоры атқарады).
... ... ... DВ 15, 5 DUP ... DB 3, 7, ... ENDS
2. Жалғаноператор ASSUME қайсы регистр қандай сегментпен байналысты
екенін ассемблерге хабарлайды.
ASSUME :
Мысалы:
ASSUME DS: DSEG, SS:SSEG, ... PROC және ENDР ... ... ішкіпрограмалардың
(процедуралардың) басы мен соңын көрсетеді.Ішкіпрограммаға NEAR ... FAR ... ... сипаты тән :
PROC [қашықтық сипаты]
................
................
................
< аталым > ENDP
Егер қашықтық ... NEAR ... ... аталмаса,онда процедура өзін
шақырып отырған программамен бір сегментте ... FAR ... онда ... мен оны ... ... жеке ... ... орналасқан.
4) Сырттық сілтеме жалғаноператорлары.
1. PUBLIC – басқа программалық жеке бөлшектегі мәліметтерді пайдалануға
мүмкіндік ... ... ... ... ... шама , ... (PROC таңбасынан басқалары),
EQU жалғаноператорының аталымы болуы мүмкін.
2. EXTRN – ... ... жеке ... (PUBLIC
жалғаноператоры арқылы) анықталған анықтағыштарды көрсетеді.
Пішімі:
EXTRN аталым : түрі [,…]
Айнымалы шаманы ... ... оның ... ... ... ... аталым-деректер немесе қосымша сегменттегі анықтағыш болса,онда түрі
BYTE,WORD немесе DWORD болады;
б) ...... ... ... түрі NEAR ... FAR
болуы тиіс;
в) аталым-EQU немесе “ =” арқылы анықталған тұрақты шама болса ,онда
түрі ABS болады.
Мәселен: ... шама TOKL бір ... жеке ... оны ... ... жеке бөлшекте пайдаланбақпыз.
Онда TOKL анықталған программалық жеке бөлшек мынадай операторлардан
тұрады:
PUBLIC ... DW ... ... ... жеке ... ... TOKL : WORD
3. INCLUDE жалғаноператоры аудармалау кезеңде негізі программа мен осы
операторда аты көрсетілген программаны ... ... ... ...
5) ... ... жалғаноператоры.
Олардың ішінде ең көп қолданылатыны END ... ... ... ... ... және Ассемблерге
аудармалауды қайсы жерде тоқтату керектігі жайында нұсқау береді.Сондықтан
END жалғаоператоры әрбір прогаммалық жеке бөлшекте болу ... ... ... ... көрсетілген сөре таңбасынан сәйкес жерден бастап
жұмыс істейді.Егер программа бірнеше программалық жеке ... ... сөре ... ... рет ... программалық жеке бөлшекте ғана
көрсетеледі
6) Листингіні басқару жалғаноператорлары.
1.РAGE жалғаоператоры ... ... ... ... , ... саны ... 225-ке дейін, бағана саны 60-тан 132-ге дейін болуы
мүмкін.
Егер бұл сандар ... ... ... саны -57,ал ... символдар саны -80 тең деп саналады.
2. TITLE жалғаноператоры әрбір ... ... ... ... ... SUBTTL ... көрсетілген жазбахабарды листингінің үшінші
жолында басып ... ... ... .
Мекендету әлпілері
Операндтар регистрлерде,командалардың өзінде , мәшине жадында ... ... ... ... ... 24 түрі ... 7 ... бөлінген:
1. Регистлік мекендету.
2. Тікелей мекендету.
3. Төте мекендету
4. Жанама регистрлік мекендету
5. База бойынша мекендету.
6. Индекстеумен қатар төте бойынша ... ... ... база ... ... ... ... байналысты команданың әлпі өрісіне тиісті
мән тағайындалады.Саналық ... әлпі ... мәні ... осы
мекендетудың 7 түрінің ішінен ... ... ... ... ... ... үшін ... есептеп тапқап ығыстыру аралығы
операндтың мекені (ООМ) деп ... ... ...
сегменттің басынан санағанда операнд орналасқан жады аймағына дейін ... ... ... көрсететін 16 разрядты сөз.
1.Регистрлік мекендету.
Мекендетудің бұл түрінде операндтар ... ... ... ... ... бірі –AX ... –BX регистрлерінде орналасқан.
2.Тікелей мекендету.
Мекендетудің бұл түрінде операнд – команданың өзінде орналасады.Мұны
келесі жағдайларды ... ... :
a) ... ... операнд-таратқыш есебінде тағайындаған кезде :
MOV AX,500
б) тұрақты ... ... EQU ... ... ... ... ... :
K EQU 500
MOV AX,K
в) жадының кейбір аймағының мекнін анықтаған кезде :
MOV BX,offset TABLE
3. Төте мекендету.
Операнд ... ... ... ... ... ... арқылы анықталады.ООМ команданың құрамына оның бір бөлігі болып
кіреді. ... ... ... OOM-ге DS ... 4 ... ... ... тең.
MOV АX, TABLE
Санашық аудармалау ... TABLE ... ат ... жады ... ... ... алып орналастырады.
4. Жанама регистрлік мекендету.
Операнд сақталатын жедел жады ұяшығының ... ... ... ... ... (ВХ) ... ВР, SI, DI регистрлерінде орналасады.
Индекстік SI, DI регистрлерінде жиі өзгеріп тұратын деректер ... ... ... ... ... ... ... :
MOV АX, [BX]
Тік жақшаның ішіндегі регистрдің мәні жады ұяшығының мекенін көрсетеді.
Кез келген анықтағыштың ... ... OFFSET ... арқылы
табылады.
MOV BX, OFFSET TABLE
MOV АX, [BX]
5. База ... ... ... мекені жылжыту мөлшері мен базалық ВХ ... ... ... қосындысына тең :
MOV АX, [BX] + 4
MOV АX, [BX+ 4]
MOV АX, 4 [BX]
6.Индекстеумен қатар төте мекендету.
Операндтың орындалатын ... ... ... мен индекстік DI (немесе
SI) ... ... ... тең. Бұл ... берілген
жадуалдық керек элементтерін табу үшін ... ... ... ... нөмірін көрсетеді :
MOV DI, 4
MOV AX, TABLE [DI]
7. Индекстеумен ... база ... ... ... мекені базалық ВХ (немесе ВР) ... ... ... DI ... SI) ... ... (кейде және ығыстыру
аралығының) қосындыларына тең. Бұл ... 2 ... ... ... ... ... DX көпшенің басын көрсетеді, ал DI (немесе
SI) және ығыстыру аралығы ... жолы мен ... ... кез келген
элементін) көрсетеді :
MOV AX, TABLE [BX] [DI] .
Ассемблер командасының түрлері.
Командалар атқаратын ... ... 7 ... бөлінеді :
1.Алып-орналастыру командалары.
2.Арифметикалық командалар.
3.Жеке разрядтармен жұмыс істейтін командалар.
4.Басқару тізгінін ауыстыру командалары.
5.Символдар қатарын ... ... ... командалары.
7.Үзу командалары.
1). Алып-орналастыру командалары.
Алып-орналастыру командалары регистрлар мен жедел жады ұяшықтарының
(немесе енгізу/шығару порттарының) ... ... мен ... үшін ... ... 4 топқа бөлінеді :
1. Жалпы міндеттік алып-орналастыру
командалары.
2. Енгізу/шығару командалары.
3. Мекен ... ... ... ... жазу ... ... ... алып-орналастыру командалары.
1) MOV ,
Мысалы :
MOV AX, TAB ; AX ... ... ... ТАВ ... ... TAB, ... AX, ... AL, ... CX, ... TAB, ... ... пайдаланған кездегі ескертулер:
a) Жедел жадының бір ұяшығының мәнін ... ... ... ... міндеттік регистрлердің біреуін пайдалану керек.
MOV AX, TAB ; ... ... TAB ... ... TABL, AX ; TABL ... AX ... ... .
ә) Бір сегменттік регистрдің мәнін екінші сегменттік регистрге ауыстыру
үшін жалпы міндеттік регистрлердің біреуін немесе стекті пайдалану ... AX, ES ; ES- тің мәні ... DS, AX ; DS-ке ... Жедел жадының ұяшығының мәнін сегменттік регистрлерге орналастыру
үшін жалпы міндеттік регистрлердің біреуін пайдалану керек.
MOV BX ,TAB ; ... жады ... ... DS ,BX ; DS-ке ... ... сегмент регистрін (CS) қабылдағыш операнд ... ... ... командалы.
Стекке сөзді орналастыру командасың пішімі:
PUSH
Әрбір PUSH ... ... ... ... (оқу) POP ... ... , PUSH ... ... ... ... оқу үдірісі оған жазудан теріс тәртіптен жүргізіледі (соңғы
жазылған сөз ... ... ... ... ... айырбастау үшін PUSH және POP командаларын пайдалануға болады.
PUSH ES ; ES - ... ... ... ... < 1- операнд > , < 2- операнд >.
Екі операндтың мәнін ауыстырады.Бұл ... ... мен ... ... мен ... ... ... ауыстыру үшін пайдаланылады :
XCHG AX, BX ; AX-пен BX-тің ... AX,TAB; ... ... жады ... ауыстырады
4)Жадуалдан керекті элементтерді ... ... < ... аты ... ... AL ... ... көрсетілген жадуалдың элементін
алып,AL регистріне жазады.Алдын ала BX ... ... ... ... – сол ... керек элементінің нөмірі көрсетілуі қажет.
MOV AL, 5 ;AL-ге ... ... ... ... TABL ... ... ... TABL ... ... АL-ге ... ... ... ... сыртқы құрылғылармен байланыс жасау үшін керек.Бұл командың
2 түрі бар:
IN , ... ... ... ... , ; ... мәнін портқа шығару.
Сақтағыш ретінде AL ,AX регистрлері пайдаланылады.Порт– сыртқы
құрылғының нөмірі ... ... ... ... ... ... ... DX регистрі пайдаланылады.
IN AX , DX
OUT 61H,AL
OUT ... AX ... ... ... командалары
1) LEA < Рг 16 >, < ЖЖ16 >
Бұл команда жедел жады (ЖЖ) ұяшығың ... ... ... ... ... ... ... регистрдің кез келгенін пайдалануға
болады. операндының сипаты WORD болуға тиіс.
LEA BX , TAB ... [DI] =5 ... , онда BX ... TAB ... ... ... ... аралығы) көрсетіледі.Бұл команда OFFSET
жалғаноператорымен барабар.
2) LDS ,
Бұл команда жедел ... қос ... оқып , бұл ... ... ... 16 разрядты) ... ... ... ... ... нөмірін (соңғы 16 разрядты) DS
регитріне жазады :
LDS BX, MUS
3) LES ,
Жоғарыдағы командадан айырмашылығы ұяшық ... ... ... ... (ES) жазады.
4. Белгілерді көшіріп жазу командалары.
Бұл командалар ... ... ... ... ... ... осы регистрге жазуға мүмкіндік береді.
1) LAHF-белгілер регистрінің CF,PF,AF,ZF,SF разрядтарының мәнін AH
регистрінің 0,2,4,6,7 разядтарына көшіріп жазуға мүмкіндік береді.
2) SAHF-бұл команда LAHF ... ... ... жасайды,яғни
AH регистрінің 0,2,4,6,7 разрядтарының мәндерін белгілер регистрінің ... ... ... ... PUSHF-белгілер регистрінің мәнін стекке жазады.
4) POPF-стектен оқып,оқылған мәнді белгілер регистріне жазады.
2) ... ... ... ... ... ... ... жасау үшін
пайдаланылады :
- таңбасыз сандар (0-255 байт,0-65535 ... ... ... ... ұзындығы байт болса,онда – 128 – ден 127,ал
сөзге тең болса, онда - 32768 - ден 32767 ... ... ... ... ... ... ... арифметикасында
(ЕШО арифметикасы) әрбір ондық цифр жарты байттық орын алады.
ЕШО арифметикасы шығару/енгізу операциясын жеңілдету және ... ... ... ... үшін ... ЕШО ... ... қосу және алу командалары жоқ .Сондықтан бұл арифметикамен жұмыс
жасаған кезде бір жарты байттан екінші ... ... ... ... ... болған-болмағанын байқап отыру қажет.
Мысалы : 38+29=67 0011 ... ... ... ... AF=1, онда ... 6 қосу ... (61+6=67);
- жинақталмаған ондық сандар.Мұнда 0-9 сандар жазылады,яғни әр ... ... ... Қосу командалары .
ADD ,
Мұнда : қабылдағыш = ... + ... ... : ... = ... + таратқыш + тасымал (СF).
ADD AX, BX ; ... AL, MEM ... MEM, ... CX, ... қосу ... орындалған кезде белгілер регистрінің 6 ... PF, AF, ZF, SF, OF) ... ... ... , ... : ... = ... = қабылдағыш – таратқыш .
SBB ,
Мұнда : қабылдағыш = қабылдағыш – таратқыш – тасымал (СF).
SUB AX, BX ; ... CX, ... ... ... ... де ... ... белгілер ре-
гистрінің 6 разряды (CF, PF, AF, ZF, SF, OF) ... ... және ... ... ... ... INC ... мәніне 1 қосылады және CF белгісінің мәні өзгермейды.Операнд
ретінде регистр және жедел жады ұяшығы пайдаланылады:
INC CX ; CX=CX + ... MEM ; ... + 1
2) DEC ... мәні 1-ге ... CF ... мәні ... CX ; CX = CX-1
DEC MEM; ЖЖ = ЖЖ-1
4.Көбейту командалары.
MUL және IMUL ... ... ... , IMUL ... ... көбейтуге пайдалынады.
Бұл командаларда байттар немесе сөздер көбейтіледі.Таратқышта (регистр
немесе жедел жады) көбейткіш ... ... ... ... ... ... көбейтілетін болса) орналасады.Егер байт пен байт
көбейтілсе,онда көбейтінді AH және Al регистрінде ... егер ... ... ... DХ және АХ ... ... көбейткіш ... ... : AL * {Rг ... ЖЖ} = AH ... разряд : AX * {Rг ... ЖЖ} = DX ... ... орындалған кезде белгілер регистрінің CF және ... мәні ... ... ... ... 0 – ге
тең болса , онда CF және OF разрядтары мәндері 0 – ге тең ... ... CF ... BX ; AX және BX ... ... DX және ... М_BYTE ; AL ... мен жедел жады ұяшығы көбейтіліп,көбетінді
АН пен AL – ке ... ...... ... ... ... ... бөлу.
Таратқышта (регистр немесе жедел жады ұяшығы) бөлгіш орналасады.Байтқа
немесе сөзге бөлуге болады.Байтқа бөлген ...... АН пен ... ... бөлген кезде – бөлінгіш DX пен АХ регистрлерінде
орналасады.Егер байтқа бөлсек,бөлінді – AL ... ...... орналасады.Егер сөзге бөлсек,бөлінді – AX ,қалдық – DX
регистрлерінде орналасады.
бөлінгіш ... ... AH AL : {RГ ... ЖЖ}=AL ... разряд DX AX : {RГ ... ЖЖ} =AX ... BX ; DX пен AX ... мәні BX регистріне бөлініп,
бөлінді-
; AX ... ал ... DX ... ... D_ BYTE
6.Түзету командалары.
1) ААА-ASCII шартбелгісінде берілген сандардың қосындысына түзету енгі-
зу.AL регистріне (кіші 4 разрядын ... ... ... санға түрлен-
діріп, ал қалған жоғарғы 4 разрядына 0 ... ... ... ... 9 – дан ... ... онда ААА ... AH регистрінің мәніне 1
қосады және CF=1, болмаса CF=0.
Мысалы : ADD AL, BL
ААА
2) DAA- қосындыны ... ... ... үшн ... енгізу.AL регистрі-
нің екі дұрыс жинақталған ондық сан ретінде көрсетеді.Егер қосынды 99 – ... ... онда DAA ... – AH ... ... 1 қосады және
CF=1, болмаса CF=0.
Мысалы : ADD AL, BL
DАА
3) AAS-ASCII шартбелгісінде берілген сандардың ... ... ... ААА командасы сияқты.
4) DAS-азайтындыны ондық пішінде (дұрыс жинақталған ондық сан) көр-
сету үшін түзету ... ... DАА ... ұқсайды.
5) AAM-ASCII шартбелгісінде берілген сандардың көбейтіндісіне түзету ен-
гізу.Көбейтіндіні екі ... ... ... сан ... көрсетеді. AL
регистрінің мәнін 10 – ға бөліп,бөлінді мен қалдықты АН пен ... ... ... PF, ZF, SF ... ... ADD- ASCII шартбелгісінде берілген сандардың бөліндісіне түзету енгі-
зу.Бөлу амлының алдында ... ... ... ... айналдырып, оны AL регистрінде орналастырады.
7. Терістеу командалары.
NEG – операндтың мәнін нөлден алу ... оның ... ... ... регистрінің CF, PF, ZF, SF, OF разрядтарының мәні
өзгереді.
Мәселен : 100 санынан AL ... ... алу ... ... AL, 100 ; AL= -AL+100=100-AL
8. Салыстыру командалары.
СMP ,
Бұл команда ... пен ... ... SUB командасына
ұқсас.Айырмашылығы қабылдағыш пен таратқыштың мәндері ... ... ... ... ... (CF, ZF, SF, OF) мәндері ғана
өзгереді.Бұл команда ... ... ... ... алдында
қолданылады.
CMP AX, BX ; AX пен BX салыстырылады.Егер тең болса, басқару ... M1 ; М1 ... ... ... ... ... Таңба ұлғайту командалары.
Бұл командалар аралас (байт, сөз) деректермен жұмыс істеуге мүмкіндк бере-
ді.
CWD DX ... AH ... ... AX регистріндегі сөдің 15-ші разрядындағы таңбаны DX
регистріне түгелдей жазып шығады, яғни қос сөз ... ... AL ... байттық 7 – ші разрядындағы ... ... ... сөз ... (ұзартылады).
Мәселен, AL+BX қосындысын табу үшін :
CBW AL ; cөз ... ... ... AX, ... Жеке ... ... істеу командалары.
1. Логикалық командалар.
{AND, OR, XOR} ,
AND – логикалық көбейту ... ... қосу ... mod 2 ... қосу ... ... орындалған кезінде белгілер регистрінің PF, ZF, ... ... мәні ... ... ... OF және ... “0”-ге теңестіріледі, ал DI, IF және IF разрядтары өзгермейді.
AND командасы орындалған кезде таратқыш пен қабылдағштың “1”-ге тең
разрядтарына сәйкес ... ... ... разрядтарының мәні “1”-ге
тең болады да, ал қалған разрядтары “0”-ге тең болады.Берілген бір ... ... ... үшін ... ... AL, BL
; AL=10101001
; BL=00100111
; ……………...
; ... ... ... ... ... ... таратқыштың “1”-ге
тең разрядтарына сәйкес нәтиже орналасқан ... ... мәні ... тең болады, ал ал қалған разрядтары “0”-ге тең болады. Бұл ... ... ... ... ... ... үшін керек.
OR, AL, BL
; AL=01011110
; BL=10011111
; ………...
; ... ... ... ... ... үшін пайдаланылады.
XOR, AL, АL
; 10110110
; 10110110
; ………....
; 00000000
; 00000000
2. Логикалық терістеу командасы.
NOT
Бұл команда орындалған кезде ... ... ... ... ... разрядтары өзгеріссіз қалады.
NOT AL ; Егер AL = ... онда ... ... AL = ... Тексеру командасы.
TEST < қабылдағыш >, < таратқыш >
Бұл команда AND командасына ... ... ... мәні ... тек қана ... регистрінің разрядтарының мәні өзгереді.Бұл ко-
манда басқару тізгінін өзгерту командаларының өзгерту командаларының ал-
дында орындалады.
4. Жылжыту ... ... ... (АШБ) байланысты 16 немесе 8 разрядтық операнд-
тарды бір немесе бірнеше орынға солға (немесе оңға) немесе қайталау түрінде
жылжыту ... ... ... АШБ >, , ... 8 ... 16 ... жалпыміндеттік регистр немесе жедел
жадының ұяшығы болуы, ал ... мәні ... ... ... ... ... санға тең болуы мүмкін. Бұл командалар орындалған
кезінде белгілер регистрінің CF разряды ... Бұл ... ... ... 7-ші ... 15) немесе 0-ші разрядтарының
мәні жазылып отырады.
Барлығы 7 ... ... ... ... өзі ... ... және ... командалар ;
– қайталамалық жылжыту командалары болып 2 топқа бөлінеді.
Арифметикалық жылжыту командалары орындалған кезде жоғарғы (таңба)
разрядтарының мәні сақталады. ... ... ... атап кеткен
раразрядтардың мәні сақталмайды.
1) Арифметикалық және логикалық жылжыту командалары.
SAL – арифметикалық ... ... ... ...... солға жылжыту командасы .
Бұл командалар орындалған кезде жоғарғы разрядтың мәні CF-ке жазылады
да, ал босаған кіші ... орны ... ... / SHL CF < - - - < - - ... - ... оңға ... ... .
SAR - - > - - > ... ... мәні CF ... ... ал ... ... ... разрядының мәні жазылып отырады.
SHR – логикалық оңға жылжыту командасы.
SHR 0 - - > - - > ... ... мәні CF ... жазылады, ал босаған ор-
ын нөлмен толтырылады.
Бұл топтың командасы ... ... ... ... CF, DF, ... SF ... мәні командалардың орындалу нәтижесіне байланысты
тағайындалады.
2) Қайталама жылжыту командалары.
Бұл командалар орындалған кезде жылжытылған разрядтардың мәні ... ... ... (қайтадан операндқа) жазылып отырады.
ROL – қайталамалық солға жылжыту командасы .
CF < - - - - - - - < - - - ... CF ... мәні ...... оңға ... командасы .
- - - - - - > - - - - - - - - > ...... ... ... мәнін сақтай
отырып,
қайталамалық солға жылжыту ... < - - - - - - - < - - - ... ... орнына алғашқы кезек белгілер регистрінің CF разряды-ның
мәні жазылып, әрбір қайталама сайын бір разряд солға жылжып ... ... ... ... ... ... отырып,
қайталамалық оңға жылжыту командасы
.
- - - - - - > - - - - - - - - > ... ... ... тек оңға жылжыту.
Бұл топтың командасы орындалған кезде белгілер регистрінің CF, ОF ... мәні ... ... ... байланысты тағайында-лып
отырады.
MOV CX, 4
SHL AX, CX ; ... ... ... ... BX, 5 ; ... 5 ... ... M_ WORD, 7 ; ... оңға ... ... Басқару тізгінін ауыстыру командалары.
Бұл топтың командалары программаның бір жерінен ... ... ... ... ... 3 түрі бар :
- ... тізгінін шартсыз ауыстыру ;
- басқару тізгінін шартқа байланысты ауыстыру ;
- ... ... ... ... ... ... . JMP .
Жұмыс істеп жатқан программаның командасын жедел тек келесі ... ... кез ... жерінен алып орындауға мүмкіндік береді .
Бұл команданың өзінің NEAR және FAR деген 2 түрлі сипаты бар.
ROR BX, ... ... Ішкі ... ... командалары :
CALL < Ішкі программа аты >
Басқару билігін командада аты көрсетілген ішкі программаға береді.
2. Басқару тізгінін шартқа ... ... бір ... ... ... өту үшін ... разрядтарына талдау жасалады.Бұл топқа жататын 17 ... ... ... ... :
J * < ... ... >
Бұл жерде * -1,2 немесе 3 әріптен тұратын символдар.Мысалы ... ... ... ... ... |Көш, егер ... ... |CF=0, ZF=0 ... |Көш, егер ... ... тең болса |CF=0 ... |Көш, егер кіші ... |CF=1 ... |Көш, егер кіші ... тең ... |CF=1 (ZF=1) ... |Көш, егер ... болса |CF=1 ... |Көш, егер CX =0 ... |CX=0 ... |Көш, егер тең ... |ZF=1 ... |Көш, егер ... ... |CF=1 (ZF=1) ... |Көш, егер ... ... де емес болса |CF=1 ... |Көш, егер кем ... |CF=0 ... |Көш, егер кем де, тең де емес ... |ZF=0 ... |Көш, егер тасымал жоқ болса |CF=0 ... |Көш, егер тең ... |ZF=0 ... |Көш, егер жұп ... |PF=0 ... |Көш, егер нөл ... |ZF=0 ... | |PF=1 ... ... жұп ... (бит саны жұп) |PF=1 ... ... ... қосындысы жұп болса |PF=0 ... ... ... ... тақ болса |SF=1 ... ... ... ... 1-ге тең болса |ZF=1 |
| |Көш, егер нөл ... | ... ... ... ... ауыстыру командаларының алдында
белгілер регистрінің разрядтарының мәнін ... кез ... ... ... бірақ әдетте СМР командасы қолданылады.Мысалы :
CMP AL, BL
JZ ZERO
3. ... ... ... ... қайталау үдірісін орындау үшін пайдаланылады. Әрбір
қайталамадан кейін ... ... ... ... (әр ... ... 1-ге кемітіп отырады) басқару тізгінін өзгерту жайында ше-
шім қабылданады.
1). LOOP < таңба аты >
Бастапқы таңба мен LOOP ... ... ... ... са-
нағыштың мәні 0-ге тең болғанша дейін қайталанады :
MOV CX, 100
ST : ………………
LOOP ST
…… ………...
2). LOOPЕ < ... аты > және LOOPZ < ... аты > ... ... ... санағыш мәні әрдайым 1-ге кемітіліп отырады.
Егер санағыш мәні 0-ге тең болмаса және ZF=1 болса, ... ... ... ... LOOPNE < ... аты > және LOOPNZ < таңба аты > .
Бұл командалар кезінде ... мәні 1-ге ... ... . Егер ... 0-ге тең ... және ZF=0 болса, қайталамалау үдірісі жалғаса
береді.
5. Символдар қатарын өңдеу командалары.
Символдар ... ... 64 ... ... ... ... Символдар қатары
цифрлар немесе ASCII шартбелгілерінен тұрады. Бұл ... ... 5 ... ... топтың ішінде 3 түрлі коман- далар бар :
бірінші түрінде 1 немесе 2 операнд болады, ал ... және ... ... ... ... ... ... да, SI регистрі арқылы ме-
кендетіледі.Қабылдағыш-қатар қосымша сегментте орналасады да DI регистрі
арқылы ... ... ... ... 1 ... немесе 1 сөзбен әрекет
жасайды.Ал егер қатар ... ... ... ... ... ... (REP,REPE,REPNE,REPZ,REPNZ) қолданылады.Қайталау санын СХ
регистріне алдын-ала жазып қою керек.
REP ... ... ... ... алдына жазатын болсақ,онда
өңдеу СХ=0 болып тұрғанша қайталанып орындала береді.
REPE (REPZ) префиксін өңдеу командасының алдына ... ... СХ=0 және ZF=1 ... ... ... ... береді.
REPNE (REPNZ) префиксі өңдеу командасының алдына жазылған жағдайда
өңдеу СХ=0 және ZF=0 болып тұрғанша қайталанып орындала ... ... сол жақ ... оңға ... ... ... солға қарай
(әр түрлі бағытта) өңдеуге болады.Өңдеу бағыты белгілер регистрінің DF раз-
рядының ... ... DF ... мәні 0-ге тең ... ... солдан оңға қарай, ал 1-ге тең ... ... ... ... ... DF ... ... тағайындау үшін STD (DF=0)
немесе CLD (DF=0) командасы пайдаланады. ... ... ... ... MOVS – ... CMPS – ... SCAN – ... мәнді іздеп табу,
– LODS – элементтерді регистрге жүктемелеу,
– STOS – элементтерді регистрден ... ... ... ... жадының бір бөлігінен екінші бөлігіне символдар қатарын алып
орналастыру.
MOVS , .
Бір байтты (сөзді) таратқыш - ... алып ...... ...... үшін ... ... орынды 2 тәсілмен
қосалқылауға болады.
– DB ... DW ... ... DB жалғаноператорын
қолданса,онда алып-орналастыру өлшемі байтқа тең болады,ал егер DB қолданса
– сөзге тең ... MOVSВ ... ... MOVSW (сөз) ... пайдалану.Бұл алып –
орналастыру командаларында операндтар көрсетілмейді.
Мәселен,SOURSE және DEST символдар қатары ... ... ... қатарынан алып,DEST қатарына орналастыру керек.Екі тәсілді пай-
даланайық:
1) STD 2) ... DB 100 DUP (?) LEA SI, ... SI, SOURSE LEA DI, ... DI, ES:DEST MOV ... CX,100 REP ... MOVS DEST, SOURSE
Екінші тәсіл жиірек қолданылады.
2) Символдар ... ... ... , ... ... ... ... таратқыш - қатардан қабылдадағыш –
қатарды ... ... ... REPE (немесе REPZ) префиксін пайдаланғанда қайталау үдірісі не СХ
регистрінің мәні 0-ге немесе ... ... ZF ... 0-ге ... не ... ... тең емес екі элемент табылғанша орындалады .
2) REPNE (немесе REPNZ) префиксін пайдаланған кезде не СХ=0 ... ... ... мәні ... екі ... ... ... қайталау
үдірісі жалғаса береді.
CMPSB – байттарды салыстырады, CMPSW- сөздерді салыстырады.Бұл ... ... ... ... CX, ... CMPS ... қай жерде біткенін анықтау үшін JNE,JE ... ... ... ... : ... ... ... тең (бірдей) элеметтерді іздеу
керек. Егер ондай элемент табылмаса, NM таңбасынан басталатын ... ... ... SI, ... DI, ES : ... CX,100
REPNE CMPSB
JNE NM
..................
NM: ...................
3) ... ... ... мәнді іздеп – табу командалары
Бұл командалар символдар қатарынан ... ... ... ... ... ығыстыру аралығы DI регистрінде,ал ізделетін мән AL (егер
мәннің өлшемі байт ... ... АХ ... ... ... сөз ... ... :
SCAS < қабылдағыш қатар > .
Қайталамалау үшін REPE немесе REPNE префикстері қолданылады. Командада
операндты жазбау үшін SCASB және SCASW ... ... : 100 ... ... В_ STRING ... ... $ элементін
солдан оңға қарай іздеп табу керек.
CLD
LEA DI, ES : В_ ... ... CX, ... SCAS В_ ... қатарын жүктемелеу командасы.
LODS .
Бұл команда орындалған кезде ... ... SI ... ... ... қатарының элементі AL (байт) немесе АХ (сөз)
регистріне жүктемелінеді. SI ... мәні ... ... ... ... ... ... регистрінің DF разрядының
мәні 1-ге тең болса ... ... ... ... SI ... ... ал егер DF=0,онда кемиді.
Қайталау үшін REPE префиксі қолданылады.Командада операндты көрсетпеу
үшін LODSB және LODW ... ... : Екі 100 ... DEST және SOURSE ... ... SOURSE ... тең емес элементін ... AL ... ... ... SI, ... DI, ES : ... CX,100
REPE CMPS B
JCXZ MMM
DEC SI
LODS SOURSE
MMM ... ... ... ... мәнін сақтау командасы.
STOS .
Бұл команда AL (байт) немесе АХ (сөз) ... ... ... (ЕS) ... DI ... арқылы мекендетілген қабылдағыш
-қатарға ... ... DI ... мәні ... ... ... болып өзгертіледі (егер DF=0 болса,онда өседі,ал егер
DF=1 болса,онда кемиді).
6.Санашықты басқару ... ... ... жұмысын программадан басқаруға мүмкіндік
береді.
1. Белгілер регистрінің разрядтарын басқару командалары.
а) STC CF=1 ; CF мәні 1-ге орнатылады.
CLC CF=0 ; CF мәні 0-ге ... СМС CF- ... мәні ... ... STD DF=1 ; DF мәні 1-ге ... DF=0 ; DF мәні 0-ге ... STI IF=1 ; IF мәні 1-ге ... IF=0 ; IF мәні 0-ге ... HLT – ... ... тоқтатады (тоқтау жұмыс әлпісіне көшеді).
3. WAIT – санашықты сыртқы ... күту ... ... NOP – зая жүру командасы,ешқандай әрекет жасалынбайды.
Бұл команда орындалғанда регистрлердің және жады ... ... қана IР ... мәні ... Үзу ... INT < ... түрі >.
< Үзудің түрі > 0 мен 255 арасындағы сан.Ол үзуді өңдейтін программаның
жедел жадыдағы мекенін анықтайды.Үзу векторы екі ... ... ... ... (IР),екіншісі командалық сегментке (СS) ... ... ... :
1) ... ... мәні ... жазылады ;
2) IF және ТF разрядтарына 0 жазылады ;
3) командалық СS регистрдің мәні стекке жазылады ;
4) команда көрсеткішінің (IР ... мәні ... ... ;
5) үзу ... мекенін анықталады.Ол үшін үзудің түрі 4-ке көбейті-
леді.Бұл сан үзуді ... ... ... жедел жады ұяшығының
мекенін көрсетеді ;
6) үзу векторының ... сөзі СS – ке ... үзу ... ... сөзі IР ... ... IР және
СS регистрлері арқылы берілген үзуді өңдейтін программаның бастапқы мекені
анықталады.Санашық осы үзуді өңдеу программасын орындай бастайды.
2.INTО – ... кету ... үзу ... кезде белгілер
регистрінде OF=1 болып тағайындалды.
3. IRET – үзуді өңдеу программасынан негізгі программаға қайтып ... ... ... үш 16 ... ... IР,СS және
белгілер регистріне орналастырады.
Ассемблер программасының құрылымы.
1. Программа жеке бөлшектерден тұрады.
2. Программалық жеке бөлшектер (модульдер) ... ... ... ... ... және ... ... үш
түрге бөлінеді.
а) Команда бейнелігі санашықтан жұмысын басқарады,қандай әрекет істеу
керек екенін анықтайды.Команда бейнелігінің пішімі :


Мысалы ... MOV CX, AX ; алып – ... ... ... ... және түзеткішке орындалатын дерекжиынды
жасау үшін қандай ... ... ... ... ... бейнелігінің пішімі :


Мысалы :
STRING DB 100 DUP(?) ; 100 байт ... Әр ... жеке ... ... басы ... мен ... (ENDS)
анықтайтын нұсқаулар арқылы бірнеше бөліктерге бөлінеді.
... ... ... SEGMENT ... 64 DUP(?)
SSEG ENDS
Бастапқы қатарда осы сегмент стек ретінде қолданылатынын көрсететін
STACK операнды ... ... ... ASSUME ... аты (CSEG, ... мен оның
орындайтын міндеттерінің (CS – командалық, SS – стек,...) ... ... ... ... ... басы (PROC) мен ... ... нұсқаулар арқылы ... ... ... бірінен соң бірі б) ... ... PROC B1 ... ... ENDP .
A2 PROC ... ... ENDP B1 ... Макроассемблер тілінде программалау кезінде кез келген программаны
айқын құрылымдарды ... ... ... ... ... ... SEGMENT ... 64(?)
SSEG ENDS
DSEG ... DB 100 DUP ... ... SEGMENT
.
.
.
SSEG ENDS
CSEG SEGMENT
ASSUME SS: SSEG, DS:DSEG, CS:CSEG, ... ... DX, ... ... START
ҚОРЫТЫНДЫ
Ассемблер тілі төменгі деңгейлі болғанмен, мүмкіншіліктері басқа
жоғары деңгейлі тілдермен салыстырғанда әлдеқайда тез және ... ... Оның ... ... тілге жақын және машина командаларымен
тікелей қарым-қатынас құрады. Көп компаниялардың бұл тілге қызығушылығы
зор. Соның бір ... - әр ... ... өз ... ... ... бар күші программаларды бұзған кезде байқалады.
Өйткені бұзу ... ... ... бастапқы мәтінді қалпына келтіре
алмайды, тек ассемблер командалары арқылы бейнеленеді. Осы жерде бұл тілді
білмей, алынған мәтінді талдау ... ... ... ... ... ... бар. DOS-тағы вариантына қарағанда
күрделі, әрі Windows-дың API функацияларын қолданады. Сондықтан
пайдаланушыға ... ... бар ... ... ... ... ... бұл тілді төменгі деңгейлі, қиын деп менсінбейді.
Ассемблердің кемшіліктері де баршылық. Мысалы, қарапайым ... үшін көп код жазу ... Және ... ... жұмыс істегенде
қателесу оңай.
Бұл кемшіліктерге қарамастан ассемблерде программа жазатын адамдар
саны әлде де жетерлік. Яғни бұл ... ... ... ... ... ... Ассемблера для IBM РС и программирования”/ Пер. с ... ... ... ... ... ЭВМ IBM РС и ХТ. ... на языке
ассемблере”/ Пер. С англ. – М.: Радио и связь.
3. В.Юров “Assembler”- СПб.:Питер,2001.
Қосымша А.
Программаны құрып көрсету.
Мысалы : ... ... ... атын, жасын шығаратын программа
құру керек.
Stacksg segment
Dw 32 dup (?)
Stacksg ends
Datasgt segment
String dp ‘Әлдібаев Әділ’, 13, ... ’17 ... ... ... ... cs: codesg, ds: datasg, ss: ... ax, ... dx, ax
Mov dx, offset string
Mov ah, 9h
Int 21 h
Mov al, 0
Mov ah, 4ch
Int 21 h
Codesg ends
End ... ... ... Әділ
17 жас
-----------------------
бастапқы
дерекжиы
дайындау
аудармалау
OBJ
Пр-ма
аударғышшшш
LST
LINK
құрастыру
макро-
іріктегіш
EXE
MAP
debugger

Пән: Информатика
Жұмыс түрі: Реферат
Көлемі: 27 бет
Бұл жұмыстың бағасы: 300 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Ассемблер тілінде программалау жайлы ақпарат5 бет
Ассемблер тілінде программалау туралы ақпарат25 бет
Ассемблер тілінде программалау туралы ақпарат жайлы5 бет
Ассемблер тілінде программалау туралы мәлімет8 бет
AVR тегінденгі микроконтроллерларды пайдалану ерекшеліктері4 бет
Микропроцессорлық техниканың командалары15 бет
Ассемблермен жұмыс5 бет
Жүйелік программалаудың негізгі ұғымдары мен анықтамалары туралы5 бет
Информатика ( лекциялар )103 бет
«Ассемблер-күрделі машиналық тіл»27 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь