Введення
Мова Ассе? мблера (англ. assemblylanguage) - машинно-орієнтована мова низького рівня з командами, зазвичай відповідними командам машини, який може забезпечити додаткові можливості начебто макрокоманд [1]; автокод, розширений конструкціями мов програмування високого рівня, такими як вирази, макрокоманди, засоби забезпечення модульності програм [2].
Автокод - мова програмування, пропозиції якого за своєю структурою в основному подібні командам і оброблюваних даних конкретного машинної мови [2].
Мова асемблера - система позначень, використовувана для подання в удобочитаемой формі програм, записаних в машинному коді. Мова асемблера дозволяє програмісту користуватися алфавітними мнемонічними кодами операцій, на свій розсуд привласнювати символічні імена регістрів ЕОМ і пам'яті, а також задавати зручні для себе схеми адресації (наприклад, індексну або непряму). Крім того, він дозволяє використовувати різні системи числення (наприклад, десяткову або шістнадцяткову) для представлення числових констант і дає можливість позначати рядки програми мітками з символічними іменами з тим, щоб до них можна було звертатися (за іменами, а не за адресами) з інших частин програми (наприклад, для передачі управління) [3].
Переклад програми на мові асемблера в здійсненний машинний код (обчислення виразів, розкриття макрокоманд, заміна мнемонік власне машинними кодами і символьних адрес на абсолютні або відносні адреси) проводиться ассемблером - програмою-транслятором, яка і дала мові асемблера його назва.
Команди мови асемблера одне одного відповідають командам процесора. Фактично, вони і являють собою більш зручну для людини символьну форму запису - Мнемокод - команд і їх аргументів. При цьому одній команді мови асемблера може відповідати кілька варіантів команд процесора [4].
Крім того, мова асемблера дозволяє використовувати символічні мітки замість адрес комірок пам'яті, які при асемблюванні замінюються на обчислювані ассемблером або компоновщиком абсолютні або відносні адреси, а також так звані директиви (команди асемблера, не переказуються в машинні команди процесора, а виконувані самим асемблером).
Директиви асемблера дозволяють, зокрема, включати блоки даних, задати ассемблирование фрагмента програми за умовою, задати значення міток, використовувати макрокоманди з параметрами.
Кожна модель (або сімейство) процесорів має свій набір - систему - команд і відповідний йому мова асемблера. Найбільш популярні синтаксиси мов асемблера - Intel-синтаксис і AT amp; T-синтаксис.
Існують комп'ютери, які реалізують в якості машинного мова програмування високого рівня (Форт, Лісп, Ель - 76). Фактично, в таких комп'ютерах вони виконують роль мов асемблера.
1. Системний аналіз
Метою курсового проекту є закріплення отриманих знань і професійних навичок розробки та налагодження підпрограм на мові Асемблера. Курсовий проект виконується відповідно до етапами розробки програмного забезпечення: аналіз і постановка задачі для розв'язання на ЕОМ, проектування, кодування, налагодження і тестування розробленої програми. Проектування ведеться відповідно до методології структурного програмування.
Потрібно розрахувати вираз (1):
(1)
Необхідно розробити програми для її обчислення на мовах Сі, Асемблер УМ і Асемблер IBMPC. З клавіатури вводяться 2 змінні і значення масиву, після виконується розрахунок 2 констант 2c і (a * a + 1) даної функції і розрахунок z. Далі виконується висновок результату на екран монітора. Програма складається з 4-х функцій: функція введення змінних, дві функція розрахунку констант, функція виведення результату.
2. Структурне програмування. Схема алгоритму. Програма на мові Сі для int, float
Програма мовою програмування Сі для int
# include stdafx.h
# include lt; iostream gt;
# include lt; conio.h gt ;; N=4; (int a, int c, int d [])
{int g, k, l, z; Y=0;=2 * c;=a * a + 1; lt; lt; g= lt; lt; 2 * lt; lt; c lt; lt; = Raquo; lt; lt; g lt; lt; endl; lt; lt; k= lt; lt; a * a lt; lt; + 1 lt; lt; = Raquo; lt; lt; k lt; lt; endl; (inti=1; i lt;=N; i ++)
{l=d [i]/4; lt; lt; i lt; lt; ) lt; lt; l [ lt; lt; d [i] lt; lt; ]= lt; lt; d [i] lt; lt; /4= lt; lt; l lt; lt; endl;=(g - l)/k; lt; lt; z [ lt; lt; d [i] lt; lt; ]= lt; lt; z lt; lt; endl;=Y + z; lt; lt; endl;} lt; lt; Y= lt; lt; Y ...