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



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

ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Қазақ Ұлттық Аграрлық Университеті

Ақпараттық жүйелер кафедрасы

Курстық жұмыс
Тақырыбы: Ассемблер тілі

Орындаған:Мекебаева Г.Д.

ВТ-305К

Тексерген:Кенжалиева М.Д.

Алматы 2006 ж.
КУРСТЫҚ ЖҰМЫСТЫ ОРЫНДАУҒА ТАПСЫРМА

Студент:Мекебаева Г.Д.
Тақырыбы: Ассемблер тілі
Жұмыс барысында қолданылатын бастапқы мәліметтер мазмұны,Ассемблер
программалау тілінде бағдарлама құру, әдістің баяндалуы, пайдалануға
нұсқаулық пен әрекеттерді есептеуден, қорытындыдан құралады. Программа
листингі берілген.
Сызба материалдар саны: 11 сурет

Жұмыс жетекшісі: Кенжалиева М.Д .

Кіріспе

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

1.Ассемблер тіліне шолу

Машиналық тіл – негізі 0 мен 1-дің киындасуларының жиынынан тұратын
тіл.
1950-ші жылдары программалаушылар программалау үшін машиналық тілдің
символикалық (рәміздік) аналогін қолданған. Оны ассемблер деп атаған
Ассемблер тілі сөздер жинағынан тұрады. Бұл сөздер жинағы электрондық
есептеу машинасына қандай өрекет жасау керектігін көрсетеді. Жоғарғы
деңгейлі тілдерге қарағанда ассемблер тілінің командалар жинағы ЭЕМ-нің
буындарымен тікелей байланысты. Сондықтан ассемблер тілі машина-тәуелді
және машина-бағдарлы программалау тілі деп саналады.
Ассемблер тілінің тиімділігі:
• Тез орындалады, өйткені процессорды толығырақ басқарудың
мүмкіндігі бар;
• Компьтерге төмен деңгейде қатынас құруға болады.
Орындалатын программаны және бағдарламахананы немесе басқа алдын ала
аудармаланған ішпрограммаларды біріктіретін көмекші программа байланыстар
түзеткіші немесе программа құрастырғыш (LINKER) деп аталады. Орындалатын
программаны жадыға орналастырушы программа жүктемелеуіш (Loader) деп
аталады. Кейде байланыстарды түзету мен жүктемелеу жұмыстарын бір программа
атқарады.
Программаның бастапқы мәтіні кез келген мәтіндік редакторда теріледі
де, .asm кеңеймесі бар файл түрінде сақталады.
Сосын TASM.EXE аударғыш (оны кейде компилятор деп те атайды)
прграммасының көмегімен бастапқы мәтіндік файлдан Name.obj (машиналық
тілдегі программаның мәтіні, бірақ ішкі командалар арасындағы байланыстары
жөнге келтірілмеген) объектік кодасы бар файл алынады.Сонымен қатар ол
Name.lst (листинг) және Name.crf (ерсілі-қарсылы сілтемелер) файлдарын
қалыптастырады.
Осыдан кейін TLINK.EXE (құрастырғыш немесе байланыс редакторы)
программасының көмегімен объектік файлдан ( деп аталатын) орындалаиын
программа алынады. Сонымен қатар Name.map (карта файлын), Name.lib
(кітапхана файлын), Name .def (анықтамалар файлын) және Name.res
(ресурстар файлын) құрастыра алады.
Ассемблер – машиналық тілдің символдық аналогы, сондықтан прграмма
шағынпроцессордың архитектурасының барлық ерекшеліктерін бейнелеуге тиіс.
Олар жадыны ұйымдастыру, операндтарды адрестеу тәсілдері, регистрлерді
пайдалану ережелері т.б.
Ассемблер тілінде жазылған программаны жадының сегмент деп аталатын
бөлшектер жинағы ретінде қарастыруға болады. Әрбір сегмент тілдің сөйлемдер
жинығынан тұрады. Әрбір сөйлем программаның кодасында бөлек бір жолдан
тұрады.
Ассемблер сөйлемдері 3 түрлі болады:
• Командалар. Бұлардың объектік кодасы бар және бұлар
шағынпрпоцессорға не істеу керек екенін көрсетеді.
• Макрокомандалар. Макрокоманда- бсатапқы программадғы бірнеше
машиналық командалардың орнына жүретін символдық атау.
• Директивалар (жалғаноператорлар). Жалғаноператорлар Асссемблерге
деректермен және командаларамен не істеу керектігін анықтайтын
нұсқау береді. Сондықтан олар шағынпроцессордың емес,
аударғыштың жұмысын басқарады жне орындалатын EXE файлында бқл
жалғаноператоларға сәйкес машиналық кода болмайды.

Тіркегіштер
Шағын санашықтың ішінде әдейі ұяшықтар бар.Олар тіркегіштер деп
аталады.Тіркегіштерге деректерді жады мекендерін жазуға болады.Тіркегіштер
тікелей шағын санашықтың ішінде болғандықтан,ол өте жылдам .Егер
программада кейбір мәндерге жылдам қатынас құру қажет болса,онда оны
тіркегіште сақталуы программаның орындалуын жылдамдатады.8088 шағын
санашықтың тіркегіштер жиынтығы мынадай топтардан тұрады:
• жалпы міндетті тіркегіштер;
• мекендететін тіркегіштер;
• сегментті тіркегіштер;
• басқару тіркегіштері.

AX—AH AL
BX—BH BL
CX—CH CL
DX—DH DL
Жалпы міндетті тіркегіштер
АХ-тіркегіші бұрынғы шағын санағыштың аккуммуляторына сәйкес.Арифметикалық
функцияларынан басқа АХ тіркегішінде т.б.функциялар бар.Команданың кіші
көлемі прграмманы қысқартуға және оны орындалуын жылдамдатуға мүмкіншілігін
береді.
ВХ тіркегіші-мекендету тіркегіші және есептеу тіркегіші сияқты қолданылады.
СХ 8088 шағын санашықтың командалары СХ тіркегішін санашық ретінде
қолданады.Онда айнымалының қайталау саны сақталынады.
DХ тіркегіші аккумулятордың ұлғайтқышы ретінде жоғарғы дәлдікті есептеуүшін
пайдаланады және сонымен бірге көбейтуде ж\е бөлуде қолданылады.
Мекендету тіркегіштері
8088 шағынсанашығында лперандтарды адрестеуге қатысатын 4,16 биттік
тіркегіш бар.Олардың біреуі бір уақытта жалпы міндетті тіркегіш болады.Бұл
ВХ тіркегіші немесе базалық тіркегіш және де одан басқа 3 тіркегіш бар.Олар
мыналар:
ВР бұл база көрсеткіші;
SI бұл таратқыш индексі;
DI бұл қабылдағыш индексі.

Басқару тіркегіштері.8088 шағынсанашығында 3 16 биттік тіркегіштер
бар.Олар алдымен басқару операцияларында қолданылады.
SP стектің көрсеткіші;
IP команданың көрсеткіші және тіркегіш жалаушалары.
Сегменттер
регистрі(BIOS,IO.SYS,MsDOS.SYS,макр оанықтауыш,макрокомандалар,жинақтау ыш
есептеулері(Д,С,В,А обьектілер модулі.) )
CS программаны анықтау сегменттер регистрі
DS деректер құрылымымен жұмыс істейтін сегменттер регистрі
SS стекті сегментті регеистр
ES қосымша сегменттер регистрі.
Қандайда нақты жазылған қолданушы программалардыбасқа тілге
түрлендіретін программаларды транслятор деп атайды.Трансляторларды 2 топқа
бөлуге болады.Кіруші тіл сандық машиналық тілдің символдығы болса,ал кіруші
тіл ассемблер деп аталады.
Ассемблер тілі әр бір жеткізу машинаға әр бір машиналық командаға
сәйкес болатынтіл.Мұнда екілік,сегіздік әдіс,адрестердің орнына символдық
белгілер қолданылады.

SEGMENT -дерективасы жаңа ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Ассемблер тілінің синтаксисі, алфавиті
Ассемблер тілінде программалау туралы ақпарат жайлы
Ассемблер тілінде программалау жайлы ақпарат
Ассемблер тілінде бағдарламалау
Ассемблер тілінде программалау туралы мәлімет
Ішкі бағдарламалар
Төменгі деңгейлі бағдарламалау тілдері
«Ассемблер-күрделі машиналық тіл»
Ассемблерде бағдарламаны өңдеу этаптары
Жүйелік программалаудың негізгі ұғымдары мен анықтамалары туралы
Пәндер