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


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 30 бет
Таңдаулыға:
М а з м ұ н ы
Кіріспе . . . 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) Жазбахабар түзеткіштері және программаны жазуға көмектесе-тін тағы басқа программалар кіреді.
Операциялық жүйе жүйелік программалық қамтаманың түйіні болып табыла-ды. Ол ЭЕМ мен оны пайдаланушылардың дара қатынасын және мәшиненің ресурстарын тиімді пайдалануды қамтамасыз ететін жүйелік программалар-
дың жиынтығы болып келеді.
Ассемблер немесе жоғарғы деңгейлі тілде жазылған программаны мәши-нелік тілге аудару үшін аударғыш (транслятор) деп аталатын программалар
Қолданылады. Ассемблер тілінде жазылған программаның аударғышы ассем-
блер деп аталады, ал жоғарғы деңгейлі тілде жазылған программаның аудар-
ғыштары программа аударғыш-орындағыш (интерпретатор) немесе програм-
ма аударғыш (компилятор) деп аталады.
Жазбахабар түзеткіштері- ЭЕМ-нің сыртқы жадында сақталған немесе жаңадан жазылған жазбахабарды енгізу немесе өзгерту үшін қолданылатын
программа жазбахабар- ассемблер немесе жоғарғы деңгейлі тілде жазылған программа, деректер немесе есептер жиыны.
Программаны жазғаннан соң оны орындату үшін тағы екі жүйелік прог-рамма қажет. Көптеген операциялық жүйелерде кез келген жүйелік немесе орындалатын программаға қосуға болатын бағдарламахана деп аталатын про-
граммалар жиынтығы болады. Орындалатын программаны және бағдарлама-
хананы немесе басқа аудармаланған ішкі программаларды біріктіретін көмек-
ші программа байланыстар түзеткіш немесе программа құрастырғыш (компо- новщик) деп аталады. Орындалатын программаны жадыға орналастырушы программа жүктемелеуші (загрузчик) деп аталады. Кейде байланыстарды тү- зету мен жүктемелеу жұмыстарын бір программа атқарды. Қолданбалы прог- раммалық жабдықтар мәшинеде жұмыс істеушілердің өз есептерін шешу үшін жасалған программаларынан тұрады.
Кез келген есепті шығару алдында программа жазу үшін программалау ті-
лін таңдау мәселесі тұрады. Әрбір тілдің артықшылықтары мен кемшіліктері жайлы әр түрлі пікірлер бар. Көбіне программашы өзі әдеттенген тілді артық санайды. Жалпы алғанда, кез келген тілмен кез келген программаны жазуға болады. Мәселе программаны жазу қолайлығы және жазылған программаның
есептеу жылдамдығы мен оның мәшине жадында алатын орнында. Мысалы СИ, Паскаль, Бейсик тілдерінде есептеу және жазбахабармен жұмыс жасайтын программалар жазу ыңғайлы. Бірақ жылдамдығы мен алатын орны жағынан алғанда бұл онша тиімді болып шықпайды. Осының салдарынан
аталып өтілген программалау тілдерінің бәрінде ассемблерде жазылған прог-
раммалық жеке бөлшектер қолдану мүмкіндіктері ескерілген.
Басқа жағынан қарағанда жүйелік ресурстармен (регистр, бейнежады және т. б. ) байланысты қажет ететін программаларды ассемблер тілінде жазған ти -імді. Бұнымен қатар ассемблер тілі, бірде бір жоғарғы деңгейлі тілде (СИ-ді қоса) ассемблерлік қосындыларды тікелей пайдаланбаса жете алмайтын, мә- шиненің барлық қорларына BIOS және DOS үзүлері деңгейінде жетуге мүм-
Кіндік жасайды.
Регистрлер.
Микропроцессор регистрлері.
Ассемблер тілінде программалаудың алдында МП-ң қандай регистрлерін қолдануға болатынын анықтау қажет. Компьютердің программалық моделі - мен танысуды МП-ң регистрлерінен бастайық. Регистр дегеніміз ақпарды тұрақты немесе уақытша сақтауға арналған құрылғы. Уақытша сақтау - бір команда орындалу мезгілі. Регистрлер аппарат арқылы жетерлік және программа арқылы жетерлік (жалпы міндетті регистрлер) деп екіге бөлінеді.
Ең алғашқы 1970 жылы шыққан Intel фирмасының МП-і 4 разрядтың (биттік) құрылғылар болған. 1972 жылы 8 разрядты, арифметикалық амалдарын орындай алатын МП жарыққа шықты, ал 16 разрядтық МП 1976 жылы пайда болды, ал 1985 жылы бұл фирма осы кезге дейінгі МП - мен жұмыс істей алатын 32 разрядтық МП - ді шығарды. 1993 жылдан бастап Pentium 32-і разрядты МП-і шыға бастады, қазіргі кезде бұл МП-р кеңінен қолданылады. Pentium МП-ң программалық моделі 32 регистрден тұрады : оларды 2 топқа бөлуге болады : 1) қолданбалы регистрлер - 16 ; 2) Жүйелік регистрлер - 16.
Ассемблер тілінде программалауда регистрлер жиі қолданылады .
Қолданбалы регистрлер.
1) Сегіз 32 разрядтық регистрлер жатады. Бұлар мәліметтер мен олардың адрестерін сақтауға арналған. Регистрлердің белгіленуі : eax/ax/ah/al/; ebx/bx/bh/bl/; ecx/cx/ch/cl; edx/dx/dh/dl/; ebp/bp; esi/si; edi/di; esp/sp. Бұл регис-трлер жалпы атқаратын регистрлер деп те аталады.
еax ax ebx bx
еcx cx
2) Алты 16 разрядтық сегмент регистрлері : cd, ds, ss, es, fs, gs7
3) 32 разрядтық жағдай және басқару регистрлері : жалау регистрі eflags/flags және команда көрсету регистрі eip/ip.
Жалпы қызмет атқаратын регистрлер.
Бұл топтағы регистрлер өздерінің кіші бөліктерін қолдануға ғана мүмкіндік береді. Ол үшін регистрдің кіші 8 және 16 разрядтық бөліктерін бөлек қолдануға болады, мысалы : ax, ah, al, ал регистрдің 16 жоғарғы разрядын қолдануға болмайды.
Бұл регистрлер МП-ң арифметикалық - логикалық құрылысының (АЛҚ) құрамында орналасатындықтан оларды АЛҚ регистрі деп те атайды.
1) eax/ax/ah/al/ регистрі - аккумулятор деп аталады және аралық мәліметтерді сақтауға немесе арифметикалық амалдарды орындауға қолданылады.
2) ebx/bx/bh/bl/ регистрі - негізгі регистр. Жадта орналасқан мәліметтердің адресін сақтауға қолданылады.
3) ecx/cx/ch/cl регистрі - санауыш (счетчик) ретінде қолданылады. Қайтала -
нып орындалатын командамен жұмыс істейді. Мысалы : Loop командасы СХ регистрдің мәнін 1- ге азайтады.
4) edx/dx/dh/dl/ регистрі - мәліметтер регистрі. Аралық мәліметтерді сақтауға арналған. Келесі 2 регистр тізбекткліп орындалатын амалдарды орындауға арналған. Мысалы : тізбектелген элементтерді өңдеу амалы.
5) esi/si - индексті регистр, беру регистрі ретінде қолданылады.
6) edi/di - индексті регистр, қабылдау регистрі ретінде қолданылады.
Стек дегеніміз - жадтың белгілі бір аумағы. Стекпен жұмыс істеу үшін келесі регистрлер қолданылады :
7) esp/sp - стектіңең жоғарғы элементінің мекенін көрсетеді.
8) ebp/bp - стекте орналасқан кез - келген элементпен жұмыс істеуге арна - лады.
Ассемблер тілінде программа жазғанда пайдаланылатын регистрлерді толығырақ қарастырайық.
BX, BP, SI, DI - базалық және нұсқатаңбалық регистрлер. Операндтарды (операцияға қатысатын мәліметтер) мекендету кезінде деректердің мекені командалардың тұлғасында емес, сол үшін әдейі арналған және базалық немесе нұсқатаңбалық деп аталатын регистрлерде сақталады.
IP - комнда көрсеткіші. Бұл регистрде келесі орындалатын команданың ығыстыру аралығы сақталады. Санашық IP регистрін CS - регистрімен (команда сегменті) бірге 20 разрядтық физикалық мекенді тағайындау үшін пайдаланады: CS регистрі орындалатын программаның сегментін анықтаса, IP регистрі ығыстыру аралығын көрсетеді. Программа орындалған кезде IP регистрінің мәні команданың өлшеміне тең байт санына өсіп отырады. Егер программа орындалу тәртібі өзгеретін болса, онда басқару билігін өзгерту командалары падаланылады.
SP - стек көрсеткішінің регистрі. Бұл регистрде стек үшін бөлінген жады аймағының мекені сақталады. Стек аймағы деректерді уақытша сақтауға арналған жадының бөлігі. Стекті қолданудың артықшылығы - деректерді сақтау үшін тек бір ғана команда керек және программалаушы деректердің мекенін таңдау жұмысынан босатылады. Стек көмегімен мәшине жадында орналасқан деректердің мекенін есте сақтау үшін осы стек көрсеткіші падаланылады. Стекке жазудың бір ерекшелігі : соңғы түскен дерек өзінің алдындағы деректен бұрын шығады. Стекке жазу және оқу үшін PUSH пен POP командалары қолданылады.
Мысалы :
PUSH AX
PUSH BX
POP BX
POP AX
Осындай деректерді сақтауды ұйымдастыру тәртібі LIFO деп аталады (Last in, First out - соңғы кірген бірінші шығады) .
Алдымен стек көрсеткіші жадының оған бөлінген аймақтың соңғы байтын көрсетеді. Мәлімет (2 байт) жазылған сайын стек көрсеткішінің мәні азайып тұрады.
Стек аймағы жалғаноператорлар арқылы анықталады :
SSEG SEGMENT STACK ; басы
DB 256 DUP(?)
SSEG ENDS ; соңы
Стектің мөлшерін DB (байттар), DW (сөздер) санымен көрсетуге болады .
ЭЕМ - де есептердің өтетін кезеңдері.
ASM. exe және MASM. exe - Ассемблер тілінен программа аударғыштар. Жоғарғы деңгейлі тілде жазылған программаларды мәшинелік командаларға түрлендіру үшін керек (*. ASM - > *. OBJ) . ASM түрлендіргіші бар бастапқы дерекжиынды OBJ түрлендіргіші бар дерекжиынға өзгертеді. OBJ түрлендіргіші бар дерекжиын объектік деп аталады. Бұл объектік дерекжиынды жұмыс істеуге болмайды. Себебі аудармалау 0 - дік базалық мекеннен басталады.
LINK. exe - программа құрастырғыш. Атқаратын негізгі міндеті - объектік дерекжиынды орындалатын дерекжиынға өзгерту (*. OBJ - > *. EXE) . Прог - рамма құрастырғыш істеген кезінде :
- жедел жадының кез келген жеріне орындалатын программаны орналас- тыруға мүмкіндік беретін икемдеу жадуалын құрастырады ;
- бірнеше программаны біріктіріп, орындалатын дерекжиын құрастыруға, макроанықтама жинағын қосуға, оверлейлік құрылымдар жасауға мүмкіндік пайда болады. Ассемблер тілінде программа жазып және оны істету үшін төменде көрсетілгендей бірнеше жұмыс орындау керек.
1. Әзірлеу және бастапқы дерекжиынды ЭЕМ - ге енгізу. Кез келген жазбахабарлық түзеткішті пайдаланып, түрлендіргіші ASM (берілген аты бар) дерекжиын жасау.
2. Бұл жазылған бастапқы дерекжиынды мәшинелік шартбелгіге аудармалау. Ол үшін мына команданы пайдалануға болады :
MASM *. ASM.
Аудармалау нәтижесінде объектік дерекжиын алынады. Оған кез келген ат беруге болады (егер аты көрсетілмесе, оған бастапқы дерекжиынның аты беріледі), түрлендіргіші - ASM. Бұл дерекжиында әрбір Ассемблер командасына сәйкес мәшинелік шартбелгі, әрбір макрокомандаға сәйкес макроанықтама командалары, әрбір операндқа сәйкес ығыстыру аралығы көрсетіледі. Керек болса LST дерекжиынын құрастыруға болады. Бұл дерекжиында жалған шартбелгі, орындалатын оператордың реттік нөмірі, команданың шартбелгісі, операндтардың салыстырмалы мекені көрсетіледі. Егер LST дерекжиынын құрастыру жайында нұсқау болмаса, онда программаның қатесі ақпаралғы бетінде көрсетіледі. Қате табылса, оны түзеткіш арқылы жөндеу және аудармалауды қайталау керек.
3. Объектілік дерекжиынды орындалатын дерекжиынға ауыстыру :
LINK *. OBJ
Бұл команданың нәтижесінде *. OBJ - > *. EXE
Программа құрастырғыш жұмыс істегенде макроанықтағыш жиынтығын пайдаланады, сілтемеде көрсетілген барлық дерекжиынды шақырады, бірнеше объектілік дерекжиынды орындалатын бір дерекжиынға біріктіреді, оверлейлік құрылым жасайды. LINK программасының жұмысының нәтижесінде EXE түрлендіргіші бар орындалатын дерекжиын және МАР түрлендіргіші бар айқасқан сілтемелер дерекжиыны құрастырылады.
4. Керек болған жағдайда орындалатын *. EXE дерекжиынға (мәселен, DEBUGGER программасын пайдаланып) және бастапқы дерекжиынға (түзеткіш арқылы) өзгеріс енгізу.
әзәрлеу бастапқы аудармалау құрастыру
дерекжиын
Ассемблер тілінде программалау.
Ассемблер тілінде программа жазу кезінде қолданылатын кейбір қажетті ұғымдарды атап өтейік.
Оператор-бұл белгілі бір әрекет жасау үшін мәшініге берілетін нұскау, әрбір операторға мәшинелік команда сәйкес келеді. Операнд - әрекет істелінетін деректердің мекенін көрсетеді.
Жалғаноператорлар - ассемблерге деректер және командалармен не істеу керектігін анықтайтын нұсқау береді. Бірақ орындалатын EXE дерекжиынында бұл жалғаноператоларға сәйкес мәшинелік шетбелгі болмайды.
Макрокоманда - бастапқы программадағы бірнеше мәшинелік командалардың орнына жүретін символдың аталым.
1. Екілік тұрақты шама (0 немесе1) . Бұл символдар міндетті түрде D әріпімен бітіуі керек.
Мысалы:11101110D.
2. Оналтылық тұрақты мамалар (0-9, А, В, С, D, E, F) .
Міндетті түрде бұлар Н әрпімен бітеді. Егер әріптен басталатын болса, онда алдына 0 қойылады.
Мысалы : 0АВ127Н, 4АН.
3. Ондық тұрақты шамалар (0-9) . Соңына D әріпін қоюға да, қоймауға да бола - ды.
4. Символдық тұрақты шамалар. Тырнақшаларға алынған кез келген символдар немесе цифрлар жинағы.
Ассемблер командасының пішімі.
[таңба:] шартбелгі [1-операнд] , [2- операнд] [; түсініктеме] .
Тік жақшаға алынған команданың бөліктрі ассемблер командасының түріне байланысты оның құрамында болуы да болмауы да мүмкін.
Таңба.
Таңба символдардан тұрады. Бұл Символдар жинағы қос нүктемен (:) аяқта -лады.
Таңбаның аталымы А - Z, a - z латын әріптерімен, 0 - 9 сандарынан және ?, (. ), $, _, @ cимволдарынан тұрады. Ескертулер:
- таңба аталымының арасынды бос орын болмауы керек ;
- таңба аталымы ішінде нүкте (. ) пайдаланылатын болса, ол бірінші болып тұ-
руы керек;
- регистрлердің аттарын таңба ретінде пайдалануға болмайды;
- таңбаның аталымы үшін белгілі бір мағынаны білдіретін сөздер алған ың -
ғайлы ;
- көп қайталанатын бірдей әріптерді пайдаланбаған дұрыс (Мысалы: АА АА) .
Операцияның шартбелгісі.
Шартбелгі - команданың мнемоникалық шартбелгілерінен құралады. Таңбадан және басқа операндтардан бос аралық арқылы бөлінеді. Команданың құрамында міндетті түрде болуы керек.
Операндтар.
Операндта деректер, деректердің мекені және регистрлердің аты сақталады. Екі операндты командаларда бірінші операнд қабылдағыш, екінші операнд таратқыш міндетін атқарады. Командаға сәйкес орындалған операцияның нәтижесі бірінші операндқа жазылып отырады.
Түсініктеме.
Белгісі-нүктелі үтір (; ) . Алдындығы команданың бөліктерін кемінде бір бос аралық аркылы бөлінеді.
Жалғаноператорлар.
Жалғаноператорлар дегеніміз ассемблерге әртүрлі қимылдар істеуге, белгілі регистрлер тағайындауға және т. б. әрекеттер істеуге нұсқау беретін үлгі қалыптық аталымдар. Жалғаноператорлардың пішімі :
[аталым] жалғаоператор [операнд] [; түсініктеме]
Аталым таңбаға ұқсас. Айырмашылығы қос нүкте (:) жоқ. Ассемблер тілінде 60-қа жуық жалғаноператорлар бар. Жалғаноператорлар арқылы сегменттер мен ішкіпрограммаларды анықтауға, командалар мен деректердің элементтеріне ат беруге және т. б. қызметтер атқаруға болады.
1) Мән беру жалғаноператорлары.
1. EQU-жазбахабардың, өрнеқтың, санның мәндерін аталымға меншіктейді (олаға рәміздік ат тағайындалады) .
<аталым> EQU <сан>
<аталым> EQU <жазабахабар>
<аталым> EQU <өрнек> .
Мысалы: K EQU 120
AHA EQU RATE
AT EQU 2*RAT
2. Бірнеше санды, өрнекті бір аталымға меншіктеу.
<аталым>=<сан (өрнек) >
Мысалы: К=120
K=K+1
2) Деректерді анықтау жалғаноператорлары.
Бұл топқа DВ, DW және DD жалғаноператоры кіреді.
[аталым] DB өрнек [, . . . ]
DB жолғаноператоры айнымалы шаманың мәнін анықтайды немесе жедел жадының берілген ұяшықтарына бастапқы мән береді және жедел жадыда бір немесе бірнеше байт орын сақтап қояды.
Мысалы: KAP DB 0, 1, 5, 8
TOH DB ?
AMAH DB 12 DUP(?)
DK DB 15 DUP (0)
DW жалған операторы DB жалғаноператоторына ұқсас, бірақ жадыда 2 байттық сөздерге орын сақтап кетеді.
Мысалы:
GR DW ‘ЭВМ -90-6’
TABL DW 12 DUP (?)
DD жалғаноператоры 4 байттық сөздерге орын қалдырады.
3) Сегмент пен ішкі программаларды анықтау жалғаноператорлары.
1. SEGMENT және ENDS жалғаноператорлары сегменттің басы мен соңын белгілейді, бірақ ассемблерге қандай сегмент екендігі жайлы аңықтама бермейды (бұл міндетті ASSUME жалғаноператоры атқарады) .
<аталым> SEGMENT
……….
……….
<аталым> ENDS
Мысалы:
DATA SEGMENT
AB DВ 15, 5 DUP (0)
AT DB 3, 7, 15
DATA ENDS
2. Жалғаноператор ASSUME қайсы регистр қандай сегментпен байналысты екенін ассемблерге хабарлайды.
ASSUME <регистр> : <сегменттің аты>
Мысалы:
ASSUME DS: DSEG, SS:SSEG, СS:СSEG
3. PROC және ENDР жалған операторлары ішкіпрограмалардың (процедуралардың) басы мен соңын көрсетеді. Ішкіпрограммаға NEAR (жақын) немесе FAR (алыс) қашыктық сипаты тән :
<аталым> PROC [қашықтық сипаты]
. . .
. . .
. . .
< аталым > ENDP
Егер қашықтық сипаты NEAR болса немесе аталмаса, онда процедура өзін шақырып отырған программамен бір сегментте орналасқан. Егер FAR сипаты жазылса, онда ішкіпрограмма мен оны шақыратын программалық жеке бөлшек әртүрлі сегментте орналасқан.
4) Сырттық сілтеме жалғаноператорлары.
1. PUBLIC - басқа программалық жеке бөлшектегі мәліметтерді пайдалануға мүмкіндік береді. Пішімі:
PUBLIC анықтағыш [, …]
Анықтағыш ретінде айнымалы шама, таңба (PROC таңбасынан басқалары), EQU жалғаноператорының аталымы болуы мүмкін.
2. EXTRN - басқа программалық жеке бөлшектерде (PUBLIC жалғаноператоры арқылы) анықталған анықтағыштарды көрсетеді.
Пішімі:
EXTRN аталым : түрі [, …]
Айнымалы шаманы сипаттаған кезде оның түрін көрсету керек. Егер
а) аталым-деректер немесе қосымша сегменттегі анықтағыш болса, онда түрі BYTE, WORD немесе DWORD болады;
б) аталым - ішкіпрограмманың таңбасы болса, онда түрі NEAR немесе FAR болуы тиіс;
в) аталым-EQU немесе “ =” арқылы анықталған тұрақты шама болса, онда түрі ABS болады.
Мәселен: Айнымалы шама TOKL бір программалық жеке бөлшекте анықталған, ал оны басқа программалық жеке бөлшекте пайдаланбақпыз.
Онда TOKL анықталған программалық жеке бөлшек мынадай операторлардан тұрады:
PUBLIC TOKL
TOKL DW 0
ал екінші программалық жеке бөлшекте :
EXTRN TOKL : WORD
3. INCLUDE жалғаноператоры аудармалау кезеңде негізі программа мен осы операторда аты көрсетілген программаны (немесе макроанықтаманы) біріктіруге мүмкіндік береді.
Пішімі:
INCLUDE <программа аты >
5) Аудармалауды басқару жалғаноператоры.
Олардың ішінде ең көп қолданылатыны END жалғаноператоры. Бұл жалғаноператорлар бастапқы программаның соңын көрсетеді және Ассемблерге аудармалауды қайсы жерде тоқтату керектігі жайында нұсқау береді. Сондықтан END жалғаоператоры әрбір прогаммалық жеке бөлшекте болу керек:
END [сөре таңбасы]
Программа операторға көрсетілген сөре таңбасынан сәйкес жерден бастап жұмыс істейді. Егер программа бірнеше программалық жеке бөлшектен тұратын болса, онда сөре таңбасы бір-ақ рет негізі программалық жеке бөлшекте ғана көрсетеледі
6) Листингіні басқару жалғаноператорлары.
1. РAGE жалғаоператоры аудармалау листингісінің бетінің өлшемін тағайындайды.
Пішімі:
PAGE <қатар саны >, <бағана саны>
Қатар саны 10-нан 225-ке дейін, бағана саны 60-тан 132-ге дейін болуы мүмкін.
Егер бұл сандар операторда көрсетілмесе, онда қатар саны -57, ал бір қатардағы символдар саны -80 тең деп саналады.
2. TITLE жалғаноператоры әрбір листингінің екінші жолында басылатын жазбахабарды көрсетеді.
Пішімі:
TITLE<жазбахабар>
3. SUBTTL жалғаоператоры көрсетілген жазбахабарды листингінің үшінші жолында басып шығаруға мүмкіндік береді.
SUBTTL <жазбахабар>.
Мекендету әлпілері
Операндтар регистрлерде, командалардың өзінде, мәшине жадында немесе енғізу /шығару порттарында орналасауы мүмкін. Мекендетудің 24 түрі бар.
Олар 7 топқы бөлінген:
1. Регистлік мекендету.
2. Тікелей мекендету.
3. Төте мекендету
4. Жанама регистрлік мекендету
5. База бойынша мекендету.
6. Индекстеумен қатар төте бойынша мекендету.
7. Индекстеумен қатар база бойынша мекендету.
Ассемблер операндтың түріне байналысты команданың әлпі өрісіне тиісті мән тағайындалады. Саналық команданың әлпі өрісіне мәні бойынша осы мекендетудың 7 түрінің ішінен керегін таңдап алады. Жедел жадыдағы операндтың орнын анықтау үшін санашықтың есептеп тапқап ығыстыру аралығы операндтың мекені (ООМ) деп аталады. Операндтың орыедалатын мекені - сегменттің басынан санағанда операнд орналасқан жады аймағына дейін байт арқылы өлшенген аралықты көрсететін 16 разрядты сөз.
1. Регистрлік мекендету.
Мекендетудің бұл түрінде операндтар регистрлерде орналасады :
MOV AX, BX
Екі операндтың бірі -AX, екіншісі -BX регистрлерінде орналасқан.
2. Тікелей мекендету.
Мекендетудің бұл түрінде операнд - команданың өзінде орналасады. Мұны келесі жағдайларды пайдалануға болады :
- тұрақты шаманы операнд-таратқыш есебінде тағайындаған кезде :
MOV AX, 500
б) тұрақты шаманың мәнін EQU жалған операторы арқылы анықтаған кезде :
K EQU 500
MOV AX, K
в) жадының кейбір аймағының мекнін анықтаған кезде :
MOV BX, offset TABLE
3. Төте мекендету.
Операнд сақталатын жедел жадының ұяшығының мекені мнемоникалық шартбелгі арқылы анықталады. ООМ команданың құрамына оның бір бөлігі болып кіреді. Операндтың физикалық мекені OOM-ге DS сегменттің 4 разрядқа
ығыстырылған мәнін қосқанға тең.
MOV АX, TABLE
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz