Ассемблермен жұмыс


Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 12 бет
Таңдаулыға:
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ
МИНИСТРЛІГІ
Қаныш Сәтбаев атындағы Қазақ ұлттық техникалық университеті
Есептеу техника кафедрасы
Курстық жобаға
Түсініктеме қағаз
жетекші: Мустафина Б. Ж.
Нормаконтроллер:
Азимбаева Г. Т.
тапсырған күні:
“ ” мамыр 2003 ж.
қолы:
студент Қалдаров А. Қ.
тобы: ЗБИ-00-01қ
мамандығы: 3704
Алматы 2003
Мазмұндама
Кіріспе. .
- Жалпы ассеблер жөнінде . . . Ассемблермен жұмысКомпьютерде мәліметтердің көрінісі.
- MS - DOS - та программалауПроцедура және функция.
- WindowsWindows - та программалау. Консольді қосымшаГрафикалық қосымшалар. . МенюДиалогтар
- Программа туралы
- Блоксхема. .
Қорынты
Пайдаланылған әдебиеттер.
Программа листингі.
Кіріспе
Адам бірінші рет ассемблер деген сөзді естігенде - ол не үшін керек?, ол не нәрсе?, қажеті қанша? - деп өзіне сұрақ қояды. Көбінесе адамдар С/С++, Delphi және басқа да жоғарғы деңгейдегі тілдерде программа жазып жатқанда бұл тіл неге көмектеседі дейді. Шын С тілінде көп нәрсе жазуға болады, бірақ ассемблерге ешқандай тіл бәсекеге түсе алмайды.
Ассемблерде :
- Ең жылдам программалар жазуға болады
- Сыртқы құрылғыларға байланысты программалар
- Процессордың барлық мүмкіндіктерін қолдануға болады
- Операция жүйесінің барлық мүмкіншіліктерін қолдануға болады
- Басқа да қолайшылықтар
Жалпы ассемблер жөнінде
Ассемблермен жұмыс
Ассемблермен жұмыс істеу үшін ең алдымен өзі қажет. Ағылшын тілінде аты (assembly language) . Ассемблер - адамға түсінікті тілді процессорге түсінікті тілге аударатын программа, яғни ассемблер тілін машиналық кодқа аударады. Ассемлер тілімен қатар тағы қосымша программа компоновщик (linker) болуы қажет, ол ассемблер жүктелгеннен кейін бірнеше объектті модульдер үшін орындалатын файлдар құрады.
Ассемблердің басқа программалау тілдерден тағы да бір ерекшелігі дизассемблерлеу. Яғни орындалып жатқан файл болып, оның текстін дизассемблерлеу арқылы алуға болады. Мысалыға, сіз өзіңіздің компьютердегі BIOS - ты дизассемблерлеп, сондағы видеорежимдердің қосылу процестерін және DOS - тағы драйверлерді көруге болады. Тура осындай Windows үшін жазуға болады.
1. 2 Компьютердегі мәліметтердің көрінісі :
Ассемблер тілінде программалау үшін 16 - лық және 2 - лік санақ жүйесін білу қажет. Бірақта 10 - дық санақ жүйесімен де программа құруға болады, дегенмен де компьютер жадысында сақталған мәліметтер тілін түсінбеушіліктен логикалық және биттік операцияларды қолдану көптеген қиыншылықтар тудырады.
2. MS-DOS - та программалау
Ассемблерде жазылған программа басқа тілде жазылған программа сияқты өзінен өзі жұмыс жасамайды, ол тек операциялық жүйе көмегімен ғана жұмыс істейді. Операциялық жүйе программа үшін ең алдымен орын бөледі, кейін оны жүктейді, жүктегеннен соң оған басқаруын береді және кіріс - шығыс порттарымен байланысты қамтамасыз етеді. Басқа жүйелік файлдармен және программалармен қарым қатынас құра алады.
Intel процессорлары үшін ең көп тараған операциялық жүйе ол - DOS(дискілік операциялық жүйе) . Программа операциялық жүйеде жұмыс істеуі үшін орындалатын файл компиляция жасалынуы керек. Көбінесе DOS - та орындалатын файл екі форматта болады - СОМ және ЕХЕ.
Қарапайым программалардан басқа DOS сыртқы құрылғы драйверлерін жүктей алады. Драйверлер жазу жай программа жазуға қарағанда өте күрделі болып келеді.
2. 1 Процедура және функция :
Программалау тілдерін процедура жағынан екіге бөлуге болады: процедуралық және процедуралық емес. Процедуралық тілдерге C, Pascal, Fortran, Basic - тілдерін жатқызуға болады. Ал процедуралық емес тілдерге LISP, FORTH, PROLOG жатады. Асемблерді болса екеуіне де жатқызса болады.
3. Windows
Windows 95/NT DOS - қа қарағанда күрделі операциялық жүйе болғанымен де онда ассемблер тілінде программалау өте оңай болады. Windows Flat жады модельінде 32 биттік режимде жүктеледі. Қазіргі операциялық ортада программалар жүйелік шақырулар арқылы іске асады. Барлық Windows - тың қосалқы программалары орындалатын файл - формат РЕ арнайы форматын қолданады. Бұндай файлдар қарапайым ЕХЕ файылының ескі үлгісінде басталады (оларды сондай - ақ тақырыптың басқы екі символына сәйкес MZ деп те атайды) . Егер бұл файлды DOS - та жүктесе онда ол орындалып және қате туралы хабар береді. Windows сол уақытта қарапайым MZ файл тақырыбынан кейін РЕ тақырыпшасын байқағандықтан соны жүктейді. Бұл программаны компиляциялау үшін коман14далық жолда басқа параметрлерді қоюды керек ететіндігін көрсетеді.
3. 1 Windows - та программалау
Windows - та қаншалықты оңай екенін көруге болады, тағы да басқа программаны жүктеуге болатынын көреміз. DOS - та жадыны бөлу керек, сосын мәліметтер блогын толтырамыз кейін ғана DOS - ты шақырамыз. Бұл жерде процедуралар тек қана бір шақыруға қысқармайды, тағы да сондай программалар жүктеп, документтер, графикалық және текстік файлдар керек десең пошталық және Internet - адрестер шақыруға болады. Windows -тың жүйелік функциясын арттыру үшін программаның барлық параметрлерін стекке орналастыру керек және басқару СALL - ға береміз. Берілген функциялар стектен өздігінен босатылып ЕАХ регистрінде жұмыстың нәтижесін қайтарады. Бұндай параметрлерінің берілуінің келісімі STD CALL деп аталады. Бұл бір жағынан тиянақталмаған сандардың параметрлерінің функциясын шақыруға мүмкіндік береді, ал келесі жағынан стектан босатылуына көп мән берілмейді. Windows функциялары ЕВР регистірінің мәнін сақтайды. Барлық жүйелік функциялардың аттарының алдында сызықша ал атынан кейін @ белгісі және байт саны қойылады. Бұлар стекке берілетін параметрлерді көрсетеді: ExitProcess - _ExitProcess@4 - ке айналады. Жоғары деңгейдегі тілдердің компиляторы жиі осы функцияның атымен _ExitProcess@4 шақырылады.
Сондай - ақ компиляцияға kernel32. lib, shell32. lib файлдары
қажет, бірінші және үшінші жағдайларға арналған. Ал екінші жағдайға - import32. lib файлы қажет.
3. 2 Консольді қосымша
Windows - тың орындалатын программалары екі негізгі типке бөлінеді - консольді және графикалық қосымшалар. Консольді қосымшаны жүктегенде мәтіндік терезе ашылады, бұл программалар WriteConsole/ReadConsol және басқа функциялармен байланыса алады. Графикалық қосымша консолға ұқсас емес, ол экранға бірдеңені шығару үшін терезе ашады. Сонымен қатар def32. inc файлы қажет, біз онда С тілі үшін константалармен құрылымын анықтайтын файлдарды көшіреміз.
Консольді қосымша үшін компиляция жасау келесі командаларды қолданамыз:
MASM :
ml /c /coff /Cp winurl. asm
link winurl. asm /subsystem : console
TASM:
tasm /m /ml /D_TASM_winurl. asm
tlink32 /Tpe /ap /c /x /winurl. obj
WASM :
wasm winurl. asm
wlink file winurl. obj form windows nt runtime console op c
3. 3 Графикалық қосымшалар
Экранға кез - келген терезені шығару үшін программа оның сыртқы көрінісі мен барлық құрамын, яғни терезенің класын баяндап беруі керек. Ең бірінші бізге терезені жабу хабарын шығару қажет (WM_DESTROY және WM_QUIT) осыдан кейін программа аяқталады. Def32, user32 файлдарына қосымша мәліметтер енгізіледі. Windows - та программалау оңай деп айтқанмен де экранға қарапайым терезе шығару үлкен орын алады. Оңай жағы қайда деп ойласаңыз ол былай. Window. asm - ды жазғаннан кейін диалогпен байланыстырсақ болғаны, басқа ештеңе жазудың қажеті жоқ.
3. 4 Меню
Бірінші менюдің өзін алу қажет. Оны диалог, сурет және басқа мәліметтер сияқты файлдар қорына жазамыз. Файлдар қоры мәтіндік файлдар үшін *. RC кеңейтілуі немесе бинарлық файл үшін *. RES кеңейтілуі бар. Windows - та ассемблер тілінде программалау бір процедураны әр жерде қолдануға болады. Мысалыға, *. RC - ны Win. asm - ға қосу үшін оныкомпиляция жасау қажет және компоновщик үшін *. RES үшін атын корсету керек:
MASM:
ml /c /coff /Cp winmenu. asm
rc /r winmenu. rc
link winmenu. obj winmenu. res /subsystem : windows
TASM:
tasm /x /m /ml /D_TASM_ winmenu. asm
brcc32 winmenu. res
tlink32 /Tpe /aa /c winmenu. obj, ,, ,, winmenu. res
WASM:
wasm winmenu. asm
wrc /r /bt = nt winmenu. rc
wlink file winmenu. obj res winmenu. res form windows nt op c
3. 5 Диалогтар
Диалогтар меню сияқты файлдар қорында жазылады, егер менюді жазу жеңілдірек болса онда диалогтар үшін қандайда бір редактор қолданылады. Ол үшін CreateDialog командалық диалогын құру керек. Диалогтағы және терезедегі барлық мәліметтер DialogProc типті процедурасына жіберіледі.
Менюді, диалогты қолданып жасалған мына программа өте қолайлы және өте қарапайым болып есептеледі.
4. Программа туралы
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

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