Вибір мови програмування для розробки програми
Порівняльна характеристика мов програмування. Застосування мнемонічного позначення для машинних команд. Особливість транслятора вихідних платформ в асемблері. Розробка блок-схеми алгоритму програми. Особливість трансляції проекту та пошуку помилок.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 20.06.2016 |
Размер файла | 31,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Вступ
Загальна характеристика теми проекту, та проблеми при його вирішенні
Я розробив курсовий проект з дисципліни ”Системне програмування ”, він являється моєю самостійною науково-дослідницькою роботою, яка підтверджує здібність самостійно і якісно виконувати поставлені переді мною завдання. В даному випадку, завдання у вигляді написання програми яка виводить на екран номер групи, мої прізвище ім'я та закривається по натисканню комбінації клавіш ”1” + ”2”. Головною проблемою при вирішенні курсового проекту був вибір мови програмування на якій я буду виконувати завдання, адже велика частина роботи програмістів пов'язана з написанням програмного коду, тестуванням і налагодженням програм на одній з мов програмування. Вихідні тексти і виконувані файли програм є об'єктами авторського права і є інтелектуальною власністю їх авторів і правовласників.
Різні мови програмування підтримують різні стилі програмування (парадигми програмування). Частково мистецтво програмування полягає в тому, щоб вибрати мову програмування, найбільш повно підходить для вирішення поставленого завдання. Різні мови вимагають від програміста різного рівня уваги до деталей при реалізації алгоритму, результатом чого часто буває компроміс між простотою і продуктивністю (або між часом програміста і часом користувача). Єдина мова, безпосередньо виконуваний ЕОМ - це машинний мову (також званий машинним кодом і мовою машинних команд). Спочатку всі програми писалися на машинному коді, але зараз цього практично вже не робиться. Виконуючи курсовий проект я систематично, закріплював теоретичні знання та розширював свої практичні навички в сфері програмування.
1. Аналіз та вибір мови програмування для виконання КП
1.1 Порівняльна характеристика мов програмування
Програмування - процес створення комп'ютерних програм, спектр діяльності, пов'язаний зі створенням і підтримкою в робочому стані програм - програмного забезпечення. Відповідно мова програмування це - формальна знакова система, призначена для запису комп'ютерних програм яка визначає набір лексичних, синтаксичних і семантичних правил, що визначають зовнішній вигляд програми і дії. Програма яка виконує перетворення вихідного тексту (звичайний текст програми у термінах мови програмування, оформлюється як звичайний текстовий файл створюється програмістом) програми користувача в бінарний код (програма у вигляді сукупності бінарних символів 0 або 1) називається транслятором. Є два види транслятора:
1. компілятор - тип транслятора, який переглядає відразу ввесь вихідний текст програми і у випадку відсутності помилок, виконує перетворення в бінарний код відразу для всього тексту;
2. інтерпретатор - тип транслятора, який переглядає вихідний текст програми покроково, тобто рядок за рядком.
Іншими словами, транслятор переводить вихідний текст програми з мови програмування високого рівня в двійкові коди інструкцій процесора.
Якщо програма написана на інтерпретованій мовою, то інтерпретатор безпосередньо виконує (інтерпретує) вихідний текст без попереднього перекладу. При цьому програма залишається мовою оригіналу і не може бути запущена без інтерпретатора. Процесор комп'ютера, в зв'язку з цим, можна назвати інтерпретатором для машинного коду. Поділ на компільовані й інтерпретовані мови є умовним. Є два основних види мов програмування:
1. низькорівнева мова програмування - мова програмування, близька до програмування безпосередньо в машинних кодах використовуваного реального або віртуального (наприклад, Java, Microsoft .NET) процесора.
Для позначення машинних команд зазвичай застосовується мнемонічне позначення. Це дозволяє запам'ятовувати команди не у вигляді послідовності двійкових нулів і одиниць, а у вигляді осмислених скорочень слів людської мови (зазвичай англійських). Прикладом мови низького рівня є асемблер. Мови низького рівня орієнтовані на конкретний тип процесора і враховують його особливості, тому для перенесення програми на асемблері на іншу апаратну платформу її потрібно майже повністю переписати. Певні відмінності є і в синтаксисі програм під різні компілятори. Правда, центральні процесори для комп'ютерів фірм AMD і Intel практично сумісні і відрізняються лише деякими специфічними командами. А ось спеціалізовані процесори для інших пристроїв, наприклад, відеокарт і телефонів містять суттєві відмінності;
2. високорівнева мова програмування - мова програмування, розроблена для швидкості і зручності використання програмістом. Основна риса високорівневих мов - це абстракція, тобто введення смислових конструкцій, коротко описують такі структури даних і операції над ними, опису яких на машинному коді (або іншому низкоуровневом мовою програмування) дуже довгі і складні для розуміння. Особливості конкретних комп'ютерних архітектур в них не враховуються, тому створені програми легко переносяться з комп'ютера на комп'ютер. У більшості випадків достатньо просто перекомпілювати програму під певну комп'ютерну архітектурну і операційну систему. Розробляти програми на таких мовах значно простіше і помилок допускається менше. Значно скорочується час розробки програми, що особливо важливо при роботі над великими програмними проектами.
Отже вибір мови програмування залежить від типу поставленого перед програмістом завдання
1.2 Особливості та переваги вибраної мови програмування
Для виконання свого завдання курсового проекту я обрав низькорівневу мову програмування асемблер. Термін “Асемблер” походить від англійського сло Assembler - збирач частин в одне ціле. В ролі частин виступають оператори, а результатом збірки послідовність машинних команд. Процес збірки називається асемблюванням. Мова Асемблер об'єднує в собі плюси мови машинних кодів і деякі риси мов високого рівня. Асемблер забезпечує можливість застосування символічних імен в початковій програмі і позбавляє програміста від розподілення пам'яті комп'ютера для команд, змінних чи констант. Він також дозволяє повністю використовувати технічні можливості комп'ютера, як і мови машинних команд. Транслятор вихідних програм в асемблері набагато простіший від транслятора який потребує будь-яка високорівнева мова програмування. На цій мові можна написати таку ж ефективну за розміром і часом програму, як і на мові машинних команд. Ця перевага відсутня у мов високого рівня. Асемблер часто застосовується для програмування систем реального часу, обладнання яке забезпечує працездатність інформаційно - вимірювальних комплексів. Часто асемблер доповнюється засобами формування макрокоманд, кожна з яких наближає еквівалентна цілій групі машинних коді, такий спосіб називають макроасемблюванням. Вихідна програма написана на цій мові, складається з одного або декількох вихідних модулів, а кожен модуль з оператора. Мова асемблера дозволяє писати найшвидший і компактний код, який взагалі можливий для даного процесора. Якщо код програми досить великий, - дані, якими він оперує, не поміщаються цілком в регістрах процесора, тобто частково або повністю перебувають в оперативній пам'яті, - то майстерний програміст, як правило, здатний значно оптимізувати програму в порівнянні з транслятором з мови високого рівня по одному або декільком параметрам і створити код близький до оптимального по Парето (як правило, швидкодія програми досягається за рахунок подовження коду і навпаки):
швидкість роботи - за рахунок оптимізації обчислювального алгоритму і / або більш раціонального звернення до оперативної пам'яті (ОП) (наприклад, якщо всі вихідні дані зберігаються в регістрах процесора, то можна виключити зайві звернення до ОП), перерозподілу даних, табличного обчислення функцій,обсяг коду (в тому числі за рахунок ефективного використання проміжних результатів). Скорочення обсягу коду також нерідко підвищує швидкість виконання програми. Забезпечення максимального використання специфічних можливостей конкретної платформи, що також дозволяє створювати більш ефективні програми, в тому числі менш ресурсомісткі. При програмуванні на мові асемблера можливий безпосередній доступ до апаратури, і, зокрема, портів введення-виведення, регістрів процесора і ін. У багатьох операційних системах пряме звернення з прикладних програм для запису в регістри периферійного обладнання блоковано для надійності роботи системи і виключення «зависань ». Мова асемблера часто застосовується для створення драйверів устаткування і ядра операційної системи (або машинозалежних підсистем ядра ОС), тоді, коли важливо тимчасове узгодження роботи периферійних пристроїв з центральним процесором. Мова асемблера використовується для створення «прошивок» BIOS. За допомогою мови асемблера часто створюються машино залежні підпрограми компіляторів і інтерпретатори мов високого рівня, а також реалізується сумісність платформ.
За допомогою програми дизассемблера можна зрозуміти алгоритми роботи досліджуваної програми при відсутності лістингу на високорівневої мовою, вивчаючи тільки машинні коди, але в складних нетривіальних програмах це дуже і дуже трудомістким. В силу машинної орієнтації ( «низького» рівня) мови асемблера людині складніше читати і розуміти програму на ньому в порівнянні з мовами програмування високого рівня; програма складається з надто «дрібних» елементів - машинних команд, відповідно, ускладнюються програмування і налагодження, ростуть трудомісткість і ймовірність внесення помилок.
Потрібна підвищена кваліфікація програміста для отримання якісного коду: код, написаний середнім програмістом на мові асемблера, зазвичай виявляється не краще або навіть гірше коду, що породжується компілятором з оптимізацією для порівнянних програм, написаних на мові високого рівня .
Програма на мові високого рівня може бути перекомпільована з автоматичною оптимізацією під особливості нової цільової платформи , програма ж на мові асемблера на новій платформі може втратити свою перевагу в швидкості без ручного переписування коду. Як правило, менша кількість доступних бібліотек в порівнянні з сучасними індустріальними мовами програмування. Відсутня переносимість програм на комп'ютери з іншою архітектурою і системою команд.
2. Індивідуальне завдання
Я розробив програму на мові асемблер яка, виводить на екран мої прізвище ім'я, номер групи на мові асемблер. Синтаксис мови асемблер визначається системою команд конкретного процесора. Типовими командами мови асемблера є: команди пересилання даних (mov і ін.), арифметичні команди (add, sub, imul і ін.), логічні і побітові операції (or, and, xor, shr і ін.), команди управління ходом виконання програми (jmp, loop, ret і ін.), команди виклику переривань (іноді відносять до команд управління), команди введення-виведення в порти (in, out). Типовий формат запису команд (інструкції) :
[Позначка:] [[префікс] мнемокод [операнд {, операнд}]] [; коментар]
Де:
мітка - ідентифікатор, що відрізняє дану директиву від інших однойменних директив. В результаті обробки асемблером певної директиви цьому імені можуть бути присвоєні певні характеристики;
мнемокод - безпосередньо мнемоніка інструкції процесору. До неї можуть бути додані префікси;
в якості операндів можуть виступати константи, адреси регістрів, адреси в оперативній пам'яті та ін.
При написанні своєї програми я використав:
1. 21-е переривання MS DOS це переривання відповідає за сервіс DOS і його функцію 9h - Задати рядок на дисплей;
2. 60-й порт тобто порт роботи з клавіатурою;
3. комнду call - передача управління близькій і далекій процедурі із запам'ятовуванням в стеці адреси точки повернення;
4. команду xor - операція логічного виключає АБО над двома операндами розмірністю байт, слово або подвійне слово;
5. команду push - включення інформації операнда джерело в стеці;
6. команду рор - витяг слова або подвійного слова з стека;
7. команду sti - установка прапора переривання if в одиницю, така необхідність може виникнути при розробці програм обробки переривань;
8. команду j** - перехід всередині поточного сегмента команд в залежності від деякої умови, команди умовного переходу зручно застосовувати для перевірки різних умов, що виникають в ході виконання програми. Як відомо, багато команд формують ознаки результатів своєї роботи в регістрі eflags / flags. Ця обставина і використовується командами умовного переходу для роботи;
9. команду ret - повернення управління з процедури викликає програмі,
команду ret необхідно застосовувати для повернення управління викликає програмі з процедури, управління якою було передано по команді call;
10. команду out - витяг значення в порт вводу-виводу, команда
застосовується для прямого управління обладнанням комп'ютера за допомогою портів. Номер порту задається першим операндом у вигляді безпосереднього значення або значення в регістрі dx. Безпосереднім значенням можна задати порт з номером в діапазоні 0 ... 255. Для вказівки порту з великим номером використовується регістр dx. Розмір даних визначається розмірністю другого операнда і може бути байтом, словом або подвійним словом.
Також я використав таблицю кодів ASCII для визначення комбінації клавіш для виходу з програми. Умовно я розбив програму на блоки, ці блоки починаються з мітки яка коротко характеризує призначення та зміст блоку.
При запуску програми одразу виводиться на екран мої прізвище ініціали та номер групи, потім йде перший умовний блок який починається з мітки first_msg. Тут виводиться інформативне повідомлення про вихід з програми, та діями для цього. Наступним умовним блоком являється test1, в якому перевіряється натискання клавіші “1” чи “2”, в наступному блоці повторяються дії описані в першому але для іншої клавіші в разі натискання обох цих клавіш виводиться повідомлення з таким змістом “Натиснуті клавіша 1 та 2 відпустіть їх для”. Блок irqlist головна частина програми, тут описується обробник переривань клавіатури саме в ньому обробляється скан - код, заноситься в буфер пам'яті, порівнюється з заданим в умові програми і в разі спів падіння виконується.
3. Розробка алгоритму виконання програми
3.1 Опис алгоритму програми
Алгоритм - набір інструкцій, які описують порядок дій виконавця, щоб досягти результату розв'язання задачі за скінченну кількість дій; система правил виконання дискретного процесу, яка досягає поставленої мети за скінченний час. Для візуалізації алгоритмів часто використовують блок-схеми.
Першим пунктом алгоритму є початок. На початку програми ми вказуємо модель за допомогою спеціальної директиви. Та покоління процесора для якого пишеться програма. Оскільки програма пишеться для com формату, то початок програми починається зі зміщення 100h. Воно здійснюється за допомогою команди ORG 100h.
Другим пунктом являється виведення інформації про розробника програми для цього я використав 9-у функцію 21-го переривання.
Третій пункт заносить в стек обробник переривань клавіатури для цього я використав команду push і вказав адресу в пам'яті за якою знаходиться обробник, щоб підключити обробник переривань я ввімкнув 60-й порт, цей порт відповідає за роботу клавіатури, командою cli я встановлюю прапорець if в 0 цим самим дозволяю процессору обробляти переривання від периферійних пристроїв, якщо натиснута клавіша то в молодший біт регістру al заноситься 1 а в старший 0.
Четвертий пункт виводить повідомлення “Натисніть 1 і 2 для виходу”. Для цього я використав 9-у функцію 21-го переривання.
П'ятий пункт перевіряє чи натиснуті клавіші “1” + “2” для цього я створив буфер пам'яті в який заніс скан - код необхідних клавіш, у разі натискання на іншу клавішу нічого не відбудеться.
Шостий пункт виводить повідомлення “1 і 2 натиснуті,відпустіть для виходу”
Сьомий пункт. Перевіряється чи відпущені обидві клавіші, якщо одна клавіша відпущена а інша ні то нічого не відбудеться.
Восьмий пункт виводить повідомлення про те що обидві клавіші відпущено. мнемонічний машинний транслятор асемблер
Для цього я використав 9-у функцію 21-го переривання
Дев'ятий пункт. Тут відбувається витяг обробника переривань клавіатури зі стекової пам'яті це реалізовано за допомогою команди pop, й також за допомогою команди sti я встановлюю прапорець if в 1, чим забороняю процессору обробляти переривання периферійних пристроїв.
Десятий пункт кінець програми.
4. Розробка коду програми
4.1 Розробка коду програми на вибраній мові програмування
З повним лістингом ви можете ознайомитися в додатку А.
; для компіляції NASM: nasm.exe -f bin kbd.asm -o kbd.com
bits 16
org 0x100
mov ah, 9
mov dx, sms
int 0x21
mov ah, 9
mov dx, sms1
int 0x21
xor ax, ax
mov es, ax
cli ; update ISR address w/ ints disabled
push word [es:9*4+2] ; preserve ISR address
push word [es:9*4]
mov word [es:9*4], irq1isr
mov [es:9*4+2],cs
sti
call first_msg
cli ; update ISR address w/ ints disabled
pop word [es:9*4] ; restore ISR address
pop word [es:9*4+2]
sti
ret
first_msg:
mov ah, 9
mov dx, msg1
int 0x21 ; print "Press and hold 1 and 2 for exit"
test1:
mov al, [kbdbuf + 02] ; check 1 key state (1 scan code = 1)
or al, al
jz test1 ; wait until it's nonzero (pressed/held)
mov al, [kbdbuf + 03] ; check 2 key state (2 scan code = 1)
or al, al
jz test1
mov dx, msg2
int 0x21 ; print " 1 and 2 pressed, release 1 and 2"
test2:
mov al, [kbdbuf + 02] ; check 1 key state (1 scan code = 0)
or al, al
jnz test2 ; wait until it's zero (released/not pressed)
mov al, [kbdbuf + 03] ; check 2 key state (2 scan code = 0)
or al, al
jnz test2
mov dx, msg3 ; print " 1 and 2 released"
int 0x21
ret
irq1isr:
pusha
; read keyboard scan code
in al, 0x60
; update keyboard state
xor bh, bh
mov bl, al
and bl, 0x7F ; bx = scan code
shr al, 7 ; al = 0 if pressed, 1 if released
xor al, 1 ; al = 1 if pressed, 0 if released
mov [cs:bx+kbdbuf], al
; send EOI to XT keyboard
in al, 0x61
mov ah, al
or al, 0x80
out 0x61, al
mov al, ah
out 0x61, al
; send EOI to master PIC
mov al, 0x20
out 0x20, al
popa
iret
kbdbuf:
times 256 db 0
sms db "Rozrobiv:Halimon",13,10,"$"
sms1 db "Anton",13,10,"$"
msg1 db "Press and hold 1 and 2 for exit", 13, 10, "$"
msg2 db "1 and 2 pressed, release 1 and 2", 13, 10, "$"
msg3 db "1 and 2 released", 13, 10, "$"
4.2 Трансляція програми та пошук помилок
Для трансляції програми я використав транслятор Nasm. Я використав його через те що в ньому програмно вже вбудовано компонувальник.
Nasm - вільний транслятор вихідного тексту програми, написаної на мові асемблера для архітектури Intel x86. Використовується для написання 16-, 32- і 64-розрядних програм. В NASM використовується Intel-синтаксис запису інструкцій. Пропозиція мови асемблера NASM (рядок програми) може складатися з наступних елементів:
Мітка Інструкція Операнди Коментар
Операнди відокремлюються між собою комою. Перед рядком і після інструкції можна використовувати будь-яку кількість символів пробілів. Коментар починається з крапки з комою, а кінцем коментаря вважається кінець рядка. Як інструкція може використовуватися команда або псевдокоманда (директива компілятора). Якщо рядок дуже довга, то її можна перенести на наступну, використовуючи зворотний слеш \. ASM компілює програми під різні операційні системи в межах x86-сумісних процесорів. Перебуваючи в одній операційній системі, можна безперешкодно відкомпілювати виконуваний файл для іншої. Компіляція програм в NASM складається з двох етапів. Перший - асемблюванння, другий - компонування. На етапі асемблювання створюється об'єктний код. У ньому міститься машинний код програми і дані, відповідно до вихідним кодом, але ідентифікатори (змінні, символи) поки не прив'язані до адрес пам'яті. На етапі компоновки з одного або декількох об'єктних модулів створюється виконуваний файл (програма). Операція компонування пов'язує ідентифікатори, певні в основній програмі, з ідентифікаторами, визначеними в інших модулях, після чого всім ідентифікаторів даються остаточні адреси пам'яті або забезпечується їх динамічне виділення.
Для компонування об'єктних файлів в виконувані в Windows можна використовувати вільний безкоштовно розповсюджуваний компонуванльник alink (для 64-х бітних програм компонувальник GoLink), а в Linux - компонувальник ld, який є в будь-якої версії цієї операційної системи.
Для компонування своєї програми я ввів в вікні Nasm команду:
nasm.exe -f bin kurs.asm -o kurs.com
Ключ -f: Вказівка формату вихідного файлу. Якщо ключ -f в командному рядку відсутня, NASM буде вибирати формат вихідного файлу самостійно. У поширюваної версією NASM формат за замовчуванням завжди bin; якщо ви створюєте власну копію NASM, то при компіляції можете перевизначити значення OF_DEFAULT на те, яке вам потрібно за замовчуванням.
Як і для ключа -o, розділовий пробіл між -f і форматом вихідного файлу необов'язковий: -f elf і -felf для NASM ідентичні
Ключ -o: Вказівка імені вихідного файлу. Зазвичай NASM вибирає ім'я вихідного файлу самостійно; так як це залежить від формату об'єктного файлу. Якщо формат об'єктного файлу - Microsoft (obj і win32), він видалить розширення .asm (або будь-яке інше, яке вам подобається використовувати - NASMу все одно) з імені вихідного файлу і замінить його на .obj. У об'єктних файлів Unix-формату (aout, coff, elf і as86) він буде замінювати розширення на .o. Для формату rdf він буде використовувати розширення .rdf, а в разі формату bin він просто видалить розширення, наприклад з myfile.asm вийде файл myfile.Якщо вихідний файл вже існує, NASM перезапише його, якщо тільки його ім'я не збігається з ім'ям вхідного файлу - в цьому випадку з'явиться попередження і в якості вихідного файлу буде використано ім'я nasm.out. У випадках, коли ім'я за замовчуванням неприпустимо, використовуйте ключ -o командного рядка, що дозволяє визначити необхідну вам ім'я вихідного файлу. Ім'я вихідного файлу має слідувати за ключем -o, неважливо з пропуском між ними або без. . Повний список доступних вихідних форматів може бути отриманий за допомогою команди nasm -h.
4.3 Розробка інструкції користувача
1. Запустіть програму за допомогою командного рядка або натисніть 2 рази ЛКМ на ярлику програми;
2. Ознайомтеся з інформацією виведеною на екрані;
3. Для виходу виконайте дії виведені на екрані;
4. Закрийте вікно командного рядку якщо ви запускали програму першим шляхом, я якщо другим то програма закриється автоматично.
5. Новітнє в програмуванні. Перспективи розвитку
Google, Microsoft і Mozilla почали розробку стандарту, що дозволяє писати сайти на C ++ та інших мовах програмування.
Як повідомили розробники web-оглядачів, програмні інженери з компаній Google, Microsoft і Mozilla, а також творці WebKit намір реалізувати спільний проект з розробки нового web-стандарту - WebAssembly.
Передбачається, що технологія буде кросбраузерності і дозволить прискорити завантаження web-сайтів до 20 разів за рахунок того, що відповідні ресурси будуть представляти собою виконувані програми. Крім того, популяризація готового проекту дозволить докорінно змінити підхід до використання Unity WebGL.
IT-експерти також відзначають, що їх другорядним завданням є створення нового низькорівневого мови програмування WebAssembly, який замінить JavaScript. В кінцевому підсумку виконувані частини сайту можна буде писати на JavaScript, C, C ++, Rust, Go, C # і т.д. а після компілювати вихідний код в виконуваний файл web-сайту.
Такий підхід помітно відрізняється від поточного методу, коли програми на JavaScript завантажуються з веб-сервера на комп'ютер користувача у вигляді текстових файлів і потім інтерпретуються браузером.
Також повідомляється, що швидкість декодування бінарного файлу в WebAssembly буде істотно вище (в порівнянні з Asm.js в 23 рази швидше).
В ході попередніх досліджень вчені з Інституту стовбурових клітин Гарвардського університету розробили технологію повторного перепрограмування нейронів, перетворення нейронів одного типу в нейрони інших типів прямо в мозку живих тварин. Тепер вони зробили наступний крок, продемонструвавши, що нейронні мережі також можуть бути схильні до реконфігурації шляхом розриву існуючих і встановлення нових синаптичних зв'язків між нейронами, які пройшли через процес перепрограмування.
Головною метою цієї роботи, виконаної професором біології Паолой Арлотті (Paola Arlotta) спільно з професором Такао Хенч (Takao Hensch), було з'ясування принципів, використовуваних нейронами для вибору своїх "партнерів". І отримані в результаті цих досліджень знання дозволять в майбутньому розробити стратегії зміни дефектних синаптичних зв'язків, які є джерелами деяких психічних захворювань, таких, як шизофренія і аутизм.
Проводячи дослідження, вчені повторно запрограмували нейрони одного певного типу на їх перетворення в нейрони іншого типу. Після перетворення нейронів вчені особливо уважно стежили за "забороненими" нейронними зв'язками, особливими зв'язками, які залишилися від нейронів старого типу, але які ніколи не встановлюються між нейронами нового типу.
Список літератури
1. Вострикова З. П. Программирование на языке ассемблера ЕС ЭВМ;
2. Владислав Пирогов. Ассемблер и дизассемблирование. -- СПб;
3. Калашников О. А. Ассемблер? Это просто! Учимся программировать;
4. Владислав Пирогов. Ассемблер для Windows. -- СПб;
5. Пирогов В.Ю., Ассемблер . Учебный курс, СПб.: БХВ-Петербург, 2003.
6. Юров В. И. Assembler: учебный курс. СПб.: «Питер», 1998.
7. Бэк. Введение в системное программирование
8. Пильщиков В.Н. Программирование на языке ассемблера IBM PC, М.: «ДИАЛОГ-МИФИ», 1994.
9. Pихтер Джеффри, Windows для профессионалов, СПб, Питер, 2003.
10. Финогенов К.Г., WIN32. Основы программирования, М., Диалог-Мифи, 2002.
Размещено на Allbest.ru
...Подобные документы
Розгляд оригінального візерунку, що складається із суперпозиції чотирьох кривих. Проект реалізації алгоритму побудови цих кривих у вигляді програми функціональною мовою програмування Lisp. Головна особливість кривої Серпінського. Створення програми Serp.
курсовая работа [200,9 K], добавлен 23.04.2010Принципи роботи команд мікросхеми 24LC08: читання, запису даних. Опис і блок-схеми програми і підпрограм, що обслуговує пристрій. Вибір середовища програмування і розробка програми, яка забезпечує можливість демонстрації команд. Проведення тестування.
курсовая работа [114,2 K], добавлен 08.12.2011Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.
курсовая работа [1,3 M], добавлен 23.06.2010Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.
курсовая работа [460,9 K], добавлен 04.03.2014Модель аналізу-синтезу компіляції. Формальний опис вхідної мови програмування. Вибір технології програмування, проектування таблиць транслятора та вибір структур даних. Опис програми реалізації лексичного аналізатора. Розробка дерев граматичного розбору.
курсовая работа [75,8 K], добавлен 26.12.2009Методика розробки компілятору з вхідної мови програмування Pascal, оболонка, якого розроблена в середовищі програмування Borland C під операційну систему Windows. Блок-схема програми. Розробка оптимізатора та генератора коду. Тестування компілятора.
курсовая работа [218,6 K], добавлен 04.06.2011Побудування блок-схеми рішення завдання зі знайдення центра ваги однорідної усіченої призми. Розробка програми за допомогою язика програмування C++, опис змінних та функцій програми та загальної математичної моделі. Розробка інструкції користувача.
курсовая работа [1,1 M], добавлен 04.01.2012Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.
курсовая работа [2,9 M], добавлен 05.12.2012Розв'язання задач мовою програмування VBA з використанням алгоритмів лінійної, розгалуженої та ітераційної циклічної структури. Розробка блок-схеми алгоритму, таблиці ідентифікаторів та тексту програми. Створення власної панелі інструментів користувача.
практическая работа [1012,6 K], добавлен 19.02.2010Розробка програми перевірки логічного мислення людини на мові програмування С++, результатом якої є моделювання координатного переміщення. Визначення структури вхідних та вихідних даних, вибір мови програмування. Розгляд алгоритму рішення задачі.
курсовая работа [55,8 K], добавлен 28.04.2015Основні переваги програмування на мові Delphi. Використання стандартних операторів при створенні інтерфейсу користувача. Вибір складу технічних і програмних засобів, організація вхідних і вихідних даних. Розробка програми, блок-схеми та тексту програми.
реферат [316,1 K], добавлен 22.01.2013Широкі можливості по використанню комп'ютерних навчальних систем. Розробка навчальної системи мультимедійного посібника з дисципліни "Інформатика і ОТ" на тему "Особливості мови програмування С++. Вказівники". Вимоги до розробки навчальної програми.
курсовая работа [2,9 M], добавлен 23.11.2010Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.
курсовая работа [991,4 K], добавлен 06.08.2013Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.
лекция [445,0 K], добавлен 24.07.2014Характеристика формування навичок розробки додатків із використанням кнопкових компонентів у середовищі програмування Visual Studio. Створення програми, що переводить числа з однієї системи числення до іншої. Особливість застосування додатку Converter.
практическая работа [249,7 K], добавлен 01.12.2022Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.
курсовая работа [335,3 K], добавлен 11.01.2015Побудова інформаційно-математичної моделі задачі. Визначення структури даних, розробка інтерфейсу. Складання коду програми за допомогою мови програмування Delphi 7.0. Реалізація проекту у візуальному середовищі. Інструкція з експлуатації програми.
курсовая работа [601,3 K], добавлен 03.09.2009Розробка кросплатформового інструменту електронного тестування учнів молодших та середніх класів по іноземній мові. Вибір середовища розробки та системи контролю версій. Опис мови програмування Java та лістинг програми. Апаратні та програмні вимоги.
дипломная работа [608,3 K], добавлен 26.10.2010Розробка програми імітації схеми життя лісового біому. Алгоритм пересування по головному полю. Основні глобальні функції програми. Динамічна ідентифікація типу даних. Вирішення завдань в області об’єктно-орієнтованого програмування засобами C++.
курсовая работа [423,1 K], добавлен 26.11.2014Розрахунок собівартості інструментальної системи створення електронних підручників. Вибір технології та мови програмування. Загальна характеристика програми і принцип роботи. Вибір мови програмування. Опис тегів, які підтримуються HTML-редактором.
дипломная работа [112,7 K], добавлен 04.06.2010