Ассемблер тілі



Дата03.12.2019
өлшемі217.8 Kb.
#447616
Ассемблер тілі

Ассемблер тілі

Ассемблер тілі - машиналық тідің аналогы болып саналады. Ассемблер тілінде жазылған программа МП-р құрылысының ерекшеліктерін: жадтың ұйымдастырылуын, операндтарды адрестеу тәсілдерін, регистрлерді қолдану ережелерін анықтап, көрсету қажет. Әр МП-ң өзінің Ассемблері болады.

Ассемблер тілінде жазылған программа жад сегменттері деп аталатын жадблоктарының тобынан тұрады. Программа осындай бір немесе бірнеше блок-сегменттерден тұруы мүмкін. Әр сегмент программа кодының әр қатарында орналасқан сөйлемдерден құрылады.

Ассемблер тілінің сөйлемдері төрт түрлі болады:


  1. Командалар: машиналық кодтардың аналогтары. Бұл командалар трансляциялау кезінде МП-ң сәйкес командаларына түрленеді;

  2. Макрокомандалар: трансляциялау кезінде басқа сөйлемдерге алмасатын сөйлемдер;

  3. Дерективалар: ассемблер трансляторына орындалатын әрекеттер туралы түсінік береді, яғни қызметші ақпараттар жиыны. Дерективалар машиналвқ кодтарға түрленбейді;

  4. Комментарий: кез келген белгілерден тұрады.

Ассемблер тілінің екі артықшылығы бар:

Бұл тілдің көмегімен программаны МП командалары деңгейінде жазуға болады және сандық кодтардың барлығын еске сақтауды талап етпейді. Программа командалары жазылып болған соң, Ассемблер программасы шақырылады да, ол бұл командаларды олардың кодтарына айналдырады. Командалар жиыныннан тұратын программа негізгі не алғашқы программа деп аталады, ал негізгі программаның сандық кодтары, яғни машиналық тілге айналған түрі – объектік программа деп аталады.



Ассемблердің атқаратын негізгі қызметі – қолданушыға түсінікті негізгі прогрпмманы МП түсінетін объекттік программаға айналдыру. Ассемблердің кең тараған түрлері: IBM фирмасының MASM(Macro Assembler) программасы және Borland фирмасының TASM (Turbo Assembler) прграммасы.



Ассемблер тілінде программа құру кезеңдері.

Ассемблер тілінде программа құру келесі кезеңдерден тұрады:



  1. есептің қойылымы және программасының құрылымын анықтау;

  2. текстік редактордың көмегімен компьютерге программа командаларын енгізу;

  3. Ассемблердің көмегімен программаны трансляциялау;

  4. загрузчик (жадқа жүктеуші программа) көмегімен трансляцияланған программаны (сандық кодтарды) өздігінен орындалатын модульге айналдыру;

  5. программаны орындау;

  6. отладчиктің көмегімен программаны жүргізу.

2-ші кезеңде қолданылатын редактор ретінде WORD редакторінен басқа кез келген текстік редакторді қолдануға болады. Негізгі программа операторлар тізбегінен тұрады. Оператор ретінде Ассемблер тілінің командалары немесе псевдокомандалар қолданылады.

Ассемблер тілінің синтаксисі, алфавиті. Тұрақтылар.

Программа сөйлемдерін (команда, макрокоманда, директива, коментарий) ассемблер трансляторы айқын анықтау үшін олар белгілі бір синтаксистік ережелерге сәйкес қалыптастырылуы тиіс.

Ассемблер тіліндегі әр команда 4 өрістен тұруы мүмкін.

Мысалы: get: mov cx,di; cx регистріне di регистрінің мәнін меншіктеу Бұл жерде get белгіні білдіреді, mov – меншіктеу командасыcx, di операндтарды білдіреді, ал; белгісінен кейін тұрған мәлімет – коментарий.



Директивалар (Псевдокомандалар)

Директивалардвң (псевдокомандалардың) көмегімен сегменттер мен пройедураларды анықтауға, командалар мен мәліметтер элементтеріне ат беруге, жадтың жұмысшы аумақтарын анықтауға және т.с.с. әрекеттерді орындауға болады. Директивалардвң жазылу түрлері:

Жиі кездесетін директивалардың түрлері :


  1. SEGMENT ENDS – негізгі прграмманы сегменттерге бөледі, сегменттің басын және аяғын білдіреді. Сегмент түрлерін анықтау үшін ASSUME директивасы қолданылады. Оның жазылу түрі: Мұндағы, сегмент_регистрі – DS, CS, SS, ES сегмент регистрінің аты, : сегмент_аты – SEGMENT ДИРЕКТИВАСЫНДА КӨРСЕТІЛГЕН АТ.

  2. PROC ENDP процедураның басын және соңын білдіреді. Процедура дегеніміз – программаның әр жерінде орындалатын командалардың тізбегі.

Ассемблер тілінде кездесетін тұрақтылардың түрлері:

  1. екілік сандық жүйесіндегі тұрақтылар: 0 және 1-ден тұратын сандар тізбегі. Тізбектің соңында В әрпі жазылады. Мысалы: 1011011В.

  2. орындық сандық жүйесіндегі тұрақтылар: 0+9 аралығында сандар. D әрпімен аяқталуы мүмкін. Мысалы: 927 не 927D.

  3. 16-лық сандық жүйесіндегі тұрақтылар: 0+9 аралығында сандар, А+Ғ латын әріптері. Н әрпімен аяқталады. Алғашқы символ сан болуы тиіс. Мысалы: 1Е23Н.

  4. символдардың тұрақтылар – тырнақшаға алынып жазылған әріп, сан не символдар тізбегі.

Теріс сандарды енгізу үшін келесі тәсілдер қолданылады: егер сан ондық жүйеде болса, алдына минус белгісі қойылады, егер сан 2-лік не 16-лық жүйеде болса, оны толықтырғыш кодқа ауыстыру керек.

Ассемблер тіліндегі мәндер түрлері

Мәндер өздерінің көлеміне байланысты келесі түрлерге бөлінеді:



  1. Байт - 8 бит

  2. Сөз – 2 байт, биттер (разрядтар) 0-ден 15-ке дейін нөмірленеді, нольдік разряды бар байт – кіші байт деп аталады., 15-ші разряды бар байт үлкен байт деп аталады.

  3. Қоз сөз – 4 байт-32 бит, үлкен сөз, кіші сөзден тұрады.

  4. Төрт сөз – 8 байт-64 бит, үлкен қос сөз, кіші қос сөзден тұрады.

Мәндер логика құрылысына байланысты келесі түрлерге бөлінеді:

1.таңбалы бүтін мән – 8, 16, 32 биттен тұратын екілік жүйедегі берілген таңбалы мән. Таңба белгісі 7, 15, 31 разрядтарда орналасады. Бұл разрядтардағы ноль саны мәннің теріс екенін білдіреді. Теріс сандар қосымша код арқылы беріледі.

Мәндердің берілу аралығы:


  • 8 разрядтық (1 байт) – 128-ден + 127-ге дейін

  • 16 разрядтық (2 байт) – 32768-ден + 32767 дейін

  • 32 разрядтық (4 байт) – 231 ден + 2 32 – 1

2.Таңбасыз бұтін мән – 8, 16, 32 биттен тұратын таңбасыз екілік жүйеде берілген мән. Мәндердің берілу аралығы:

  • Байт – 0+255

  • Сөз – 0+65535

  • Қос сөз – 0+2 32 – 1

3.Жадты көрсету мәні 2 түрден тұрады:

  • Жақын аралықтағы түрі – 32 разрядты логикалық адрес, сегменттің ығысу адресін көрсетеді.

  • Алыс аралықтағы түрі – 48 разрядты логикалық адрес, 32 разрядтық ығысу адресінен және 16 разрядтық селектордан тұрады.

4.Тізбек – байт, сөз, қос сөзден тұрады, көлемі 4 Гбайт-қа дейін болуы мүмкін.

5.Разрядтық аумақ – разрядтарлың тізбегі.



Ассемблер тілінің арифметикалық командалары

Арифметикалық командалар жиыны сандардың екі түрімен жұмыс істейді.



  1. Екілік бүтін оң және теріс сандар

  2. Бүтін ондық сандар.

Сандарды қосу командалары.

  1. ine ранд – инкремент амалы, яғни операнд мәнін 1-ге арттыру. Мысалы: ine bh – bh регистрінің мәнін 1-ге арттырады.

  2. add операнд 1, операнд 2 - қосу амалы. Нәтиже операнд 1-ге жазылады, яғни оп-д1=оп-д1+оп-д2

  3. ade оп-д 1, оп-д 2 – келесі разрядқа көшу жолаушысының (cf) нәтижесін қолданып қосу амалы. Нәтиже операнд 1-ге жазылады, яғни оп-д 1=оп-д 1+по-д 2+cf

Мысалы:

Сандарды алу командалары



  1. dec операнд – декремент амалы, яғни операнд мәнін 1-ге кеміту.

  2. sub операнд 1, операнд 2 – алу амалы, нәтиже операнд 1-ге жазылады.

  3. sbb операнд 1, операнд 2 – жоғарғы разрядтан алу негізінде алу амалы, нәтиже операнд 1-ге жазылады.

Мысалы:

Сандарды көбейту.



  • Команданың жазылу түрі: mul 1_көбейткіш [, 2_көбейткіш].

Мысалы:

Бұл команданың нәтижесінде нәтиженің жоғарғы үлкен бөлігі ah регистрінде, кіші бөлігі al регистрінде орналасады.

Сандарды бөлу.


  • Команданың жазылу түрі: div бөлінгіш.

Бөлінгіш жадта немесе регистрде орналасуы мүмкін және 8, 16, 32 разрядты болуы мүмкін. Нәтиже, яғни бөлінді al регистріне, қалдық ah регистріне орналасады.

Мысалы:


Нәтижесінде al регистріне бөлінді, ah регистріне қалдық орналасады.

Mысал


1.47, 25 екі саны берілген. Оларды bh, bl 1 байтты регистрлеріне орналастырып, олардың қосындысын, айырмасын табу , 25 санын 5-ке көбейту, 47 санын 16-ға бөлу.

[1]

Дереккөздер

  1. ↑ Қазақ тілі терминдерінің салалық ғылыми түсіндірме сөздігі: Информатика және компьютерлік техника / Жалпы редакциясын басқарған – түсіндірме сөздіктер топтамасын шығару жөніндегі ғылыми-баспа бағдарламасының ғылыми жетекшісі, педагогика ғылымдарының докторы, профессор, Қазақстан Республикасы Мемлекеттік сыйлығының лауреаты А. Қ. Құсайынов. – Алматы: «Мектеп» баспасы» ЖАҚ, 2002 жыл. – 456 бет. ISBN 5-7667-8284-5

Ішкі бағдарлама

Ішкі бағдарлама - көлемі жағынан орташа болып келетін бағдарламаларды (бірнеше мың жолды код) құрастырғанда құрылымды бағдарламалау қолданылады. Бағдарламаның құрылымы шығарылып жатқан есептің құрылымын көрсету керек, сонда бағдарлама мәтінінен есепті шығару алгоритмі түсінікті болады. Ол үшін қарапайым операторлар жеткіліксіз, алгоритмнің нақты құрылымын дәлірек көрсететін құралдар қажет. Сондықтан бағдарламалауға жаңа ұғым – ішкі бағдарламалар енгізілді.



Ассемблер және макроассемблер тілдері

Ассамблер таңбалар (символдар)тілі бола отырып,белгілі бір дәрежеде машина тілінде программа жасаудағы кемшіліктерді жоюға мүмкіндік береді.

Ассамблер тілінде программаның барлық элементтері таңбалармен берілетіндігі оның басты артықшылығы болып табылады.Басқаша айтқанда ассамблер тілінің машина командаларының цифрлық кодтарын әріптермен немесе әріп-цифрлармен таңбалауға және деректердің таңбалық аттарын пайдалануға мүмкіндік беретіндігі оның машина тілінен айырмашылығы болып табылады. Ассамблер тілінің командаларын машина тіліне аударғанда машина командасын білдіретін әрбір оператор осы команданың цифрлық кодтарымен алмастырылады. Командалардың таңбалық аттарын олардың екілік кодтарына түрлендіру жұмысы программа жасаушы адамды өте қиын әрі күрделі машақаты көп жұмыстан босататын және бұл жағдайда құтиылоуға болмайтын қателіктерден құтқаратын арнайы программа-ассамблерге жүктеледі.

Ассамблер тілінде программалауда пайдаланылатын таңбалық аттар программаның семантикасын, ал команданың қысқартылып берілген атаулары оның негізгі функциясын білдіреді.Мысалы, ADD-қосу, SUB-азайту, PARAM-параметр т.с.с.Мұндай аттарды программа жасаушылар оңай есінде сақтайтын болады.

Ассамблер тілінде программа жасау үшін машина тілінде программа жасағандағыдан көп күрделі құралдар қажет болады: ‘

• сыртқы құрылғылармен жабдықталған дербес компьютер;

• процессордың түріне қарай резиденттік немесе жүйелік программалар.

Машина тіліне қарағанда ассамблер тілі едәуір күрделі, программаларды ұтымды жазуға және жөндеуге мүмкіндік береді.

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

Программа жасауда ассамблер тілі машина тіліне қарағанда программа жасаушылардың еңбек өнімділігін арттыруға сонымен бірге процессордың программалық және аппараттық ресурстарын толық пайдалануға мүмкіндік береді.

Бұл біліктілігі жоғары программалаушыларға жоғары деңгейлі тілдермен жасалған программамен салыс–тырғанда компьютердің жадында аз орын алатын жылдам жұмыс істейтін программалар жасауға мүмкіндік береді.

Ассамблер тілінің осындай артықшылықтарына байланысты ендіру-шығару құрылғыларын басқарушы программалар неше түрлі жоғары деңгейлі тілдердің көптігіне қарамай ассамблер тілінде жазылады.

Ассамблер тілінің көмегімен программа жасаушы адам мынадай параметрлерді бере алады:

• процессордың машина тілінің әрбір командасының таңбалық атын;

• ассамблер тілінде жазылған программалық қатардың стандартты пішімін;

• командалардың нұсқаларын және адрестеудің тәсілдерін қалай көрсету керектігі туралы пішімді;

• таңбалық тұрақтыларды және бүтін сандық тұрақтыларды әртүрлі санақ жүйелерінде көрсету үлгілерін;

• программалауды ассамблерлеу (транслациялау) процесін басқарушы пседокомандаларды.

Ассамблер тілі кез келген компьютерге түсінікті,өйткені басқа барлық тілдерге қарағанда машина тіліне ең жақын тіл ол ассамблер тілі. Бұл тіл копьютнрмен жақынырақ танысуға мүмкіндік береді. Сондықтан да ассамблерді оқу дегеніміз процессордың өзін оқып үйрену деген сөз. Ассемблер тілінде жазылған программа кез келген басқа тілдерде жазылған программаларға қарағанда өте тез орындалады. Мысалы, ассемблер тілінде жазылған программа дәл осы программаға баламалы СИ немесе Паскаль тілдерінде жазылған программалардан екі-үш есе, ал BASIC тілінде жазылған программалардан он бес және онда да көп есе тез орындалады.

Ассемблер тіліндегі программалар басқа тілдерде жазылған программаларға қарағанда өлшемі жағынан шағын болады, сондықтан компьютердің жадын үнемдеуге мүмкіндік береді.

Ассемблер тіліндегі программалар компьютердің барлық мүмкіндіктерін толық ұтымды пайдалануға сізге жол ашады.

Ассемблер тілін әрқайсысы машина командаларының бір тобына баламалы макрокомандалармен толықтыру жүйе қолданылады. Мұндай тіл макроассемблер тілі деп аталады. Макрокомандаларды пайдалану ірі құрылыс блоктарының программалар құруға мүмкіндік береді және ассемблер тілін жоғары деңгейлі тілдерге жақындатады.



Ассемблерлеу тілі

Ассемблерлеу тілі (орыс. Язык ассемблирования; ағылш. assembly language) — адрестер мен операцияларға символдық атау қою мумкіндігі бар, нақты бір компьютердің командалар жиынымен тығыз байланысқан бағдарламалау тілі; әдетте, ассемблер коды машиналық бір кодқа ауыстырылады.



Аударғыш түрлері

Жоғары деңгейлі тілдер көптеген алгоритмдерді үйреншікті математикалық амалдардың жазылуына жақын ыңғайлы түрде жазып түсіндіруге мүмкіндік береді. Бұл тілдерді пайдалану программалаудағы кездесетін қиындықтарды азайтады.

Жоғары деңгейлі тілдерді программа жасауда пайдалану 60-шы жылдары басталды. Содан бері бүгінгі күнде дейін белгілі есептерді шешуге арналған әмбебап, сандай-ақ бағдарланған көптеген әртүрлі тілдер жасалып пайдаланылып келеді.

Әрбiр программалау тілінің өзінің аты бар. Көптеген программалау тілінің аты олар алғаш жасалғаннан бастап тіркелген. Содан бері программалау тілдерінде қолданылатын ережелер өзгергенімен тілдер аты сол бұрынғы күйінде өзгеріссіз қалуда.



Жұлдызша

Жұлдызша (Звездочка; asterisk) — программалау тілдерінде көбейту амалының белгісі ретінде және т.б. жағдайларда да қолданылады; операциялық жүйеде символдар тобы орнына қолданылатын символ. Мысалы, *.ТХТ жазылымы ТХТ тіркеулі (кеңейтулі) барлық файлдар үшін пайдаланылады; Ассемблер тілі термині.



Машиналық-бағдарланған тіл

Машиналық-бағдарланған тіл (машинно-ориентированный язык; machine-oriented language) — мәліметтер түрі мен алгоритмдік құрылымы белгілі бір есептеу машинасының немесе компьютер тобының құрылымын қамтып көрсететін, сонымен қатар, программалау процесін жеңілдететін және автоматтандыратын бірқатар сипаттамалары бар программалау тілі. Тиімділігі жағынан машина командаларында жазылған программалардан кем түспейтін программалар жазуға мүмкіндік береді. Көбіне жүйелік программалауда қолданылады. Машиналық-бағдарланған тіл арнаулы және әмбебап болып екіге бөлінеді. Машиналық-бағдарланған тіл арнаулы тілдерге мнемокодтарға автокодтар жатады. Жалпы бұл екеуін біріктіріп ассемблер тілі деп атайды. Машиналық-бағдарланған әмбебап тілдердің мысалы ретінде ALMO, UNCOL, СИ тілдерін келтіруге болады.



Төменгі дәрежедегі программа

Төменгі дәрежедегі программа-спецификалық аппаратурағаи ие, перифериялық құрылғымен байланысты процессор немесе контроллердің программасы. Аппаратураға жүктелген тапсырма аппаратурамен біріге жұмыс істеуі, енгізу-жою құрылғыларымен, уақытша диаграмма мен олардың интерфейстерімен және физикалық тапсырмамен тікелей байланысты. Салдары ретінде төменгі дәрежедегі программист тек тіл мен фазалық тығыздауды емес, бағдарлау әдістері мен құрылғыларын білуі қажет .



Төменгі дәрежедегі программаға Ассемблер тілі(архитектураға бағытталған) жатады. Программисттерге ақпарат көзі ретінде, процессорге User’s Manual,Programming Manual. Data Sheet болып табылады.

Файл пішімдерінің тізімі

Үлгі:Үйлестіру тізімі

Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет