ого рівня. Надійність для драйверів відіграє особливу роль, оскільки в Windows NT і UNIX (у тому числі в Linux) драйвери працюють в режимі ядра. Одна помилка в драйвері може призвести до краху всієї системи.
Створення антивірусів та інших захисних програм.
Написання трансляторів мов програмування.
1.4 Зв'язування програм на різних мовах
Оскільки вже починаючи з епохи третього покоління комп'ютерів на мові асемблера часто розробляються лише тільки фрагменти програм, їх необхідно пов'язувати з іншими частинами програмної системи, написаними на інших мовах програмування (практично завжди на мовах високого рівня).
Це досягається двома основними способами:
На фазі трансляції - вставка в текст програми на мові високого рівня ассемблерних фрагментів (англ. inline assembler) за допомогою спеціальних директив мови. Зокрема, даний спосіб підтримується мовами програмування Сі та Delphi), у тому числі написання функцій на мові асемблера. Спосіб зручний для нескладних перетворень даних, але повноцінного ассемблерного коду, з даними і підпрограмами, включаючи підпрограми з безліччю входів і виходів, які не підтримуються мовою високого рівня, з його допомогою зробити неможливо.
На етапі компоновки при роздільній трансляції. Для взаємодії компонованих модулів достатньо, щоб імпортовані функції - певні в одних модулях і використовувані в інших підтримували угоди виклику (англ. Calling conventions) і типи даних, застосовувані в базовому мові високого рівня, використовуваного в якості основного засобу розробки. Написані ж окремі модулі можуть бути на будь-яких інших мовах, у тому числі і на мові асемблера.
2. Опис програми
Програма реалізує генерування рухомих зображень. На чорному екрані рухається біла смужка змійка raquo ;, яка управляється клавішами вгору raquo ;, вниз raquo ;, вправо і відповідно вліво raquo ;. Мета гри полягає в тому щоб поїдати raquo ;, тобто за допомогою натискань керуючих клавіш направити змійку на білий квадратик який у цей момент присутня на екрані. Після цього програма збільшить довжину ??laquo; змійки на довжину об'єкта з'їденого нею. Білі квадратики з'являються довільно на певній для гри області. Гра продовжується до тих пір поки користувач не натисне клавішу Esc або змійка НЕ перетне сама себе, тоді настане кінець гри. Ще одна особливість гри що якщо" змійка наближається до кордонів віконця то вона з'явитися на тому ж рівні вікна тільки з іншого боку, що дозволить значно збільшити сеанс гри.
Моя програма реалізована на мові асемблера і скомпільована в додатку Flat assembler (FASM) який є вільно поширюваним і багатопрохідним компілятором мови асемблер.
У початковий момент часу змійка знаходитися посередині ближче до нижнього краю вікна (Рис.1).
Після нетривалої гри і з'ївши кілька білих квадратів, ми отримуємо змійку довших розмірів (Мал. 2).
Висновок
асемблер мову додаток гра
У цій роботі я навчився застосовувати низькорівневий мову асемблер для створення простих додатків. Для створення програми на мові асемблера мені довелося працювати з переривання і регістрами. Як і всі мови програмування в асемблері ми зіткнулися зі змінними, і вони визначалися за певними директивам. У процесі роботи над програмою ми використовували так само цикли і умовні і безумовні переходи.
Хоч і асемблер і є одним з найвідоміших низькорівневих мов програмування, він не дуже затребуваний через те що багато їх об'єктно-орієнтованих мов пропонують більш багатий вибір можливостей для створення і компіляції додатки, так само забезпечують велику зрозумілість і приємний користувальницький інтерфейс.
Додаток
100hal, 316cx, - 10B800hesax, 255stosw [gs: 1Ch * 4 + 2], dsword [gs: 1Ch * 4], maindsfsesgs: a: ax, ax21h: mov si,snakebp,[fs:snakelen]ax,[fs:bx+snake]ax,[fs:step]di,[fs:snake+bp]byte[gs:di],255ax,diax,dinext
add di, [fs: step]
random: rdtsc
and ax, +4094
cmp ax, 3998
ja random
inc ax
mov [fs: snake + bp + 2], ax
add [fs:snakelen],2:cx,cxax,4000di,axdi,axax,cxdi,axdi,axax,cxdi,axbxbxbx,bpbx,cxbyte[gs:di],255quitdi,[fs:bx+snake][gs:di],cxal,60hcx,axbp,ax,17dx,[fs:move+bp- 144] bp, 144cx, 81cx, bpdx, [fs: step] [fs: step], dxaxquitdw 2
move dw - 160,0,0, - 2,0,2,0,0,160dw 6dw 2005,2001,2003,2007