Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Кодування та виконання команд в комп'ютеріСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Більшість сучасних комп’ютерів працюють за принципом програмного керування, згідно з яким над даними виконуються операції, тип яких вказується командами, які зберігаються в тій же пам’яті, що і дані. Послідовність команд, за яким виконується задача, називається програмою. Для того, щоб виконати на комп’ютері задачу, необхідно: ■ забезпечити вибірку команд програми із його пам’яті в заданій послідовності, організувавши звернення до неї за відповідними адресами; ■ забезпечити розпізнавання типів виконуваних операцій; ■ організувати звернення до пам’яті за відповідними адресами для вибірки необхідних для виконання кожної команди даних; ■ організувати виконання над даними операцій відповідно до вказівок команд; ■ запам’ятати результати обчислень. Розглянемо як це відбувається в комп’ютері детальніше. Кодування команди та програми Команда в комп’ютері зберігається в двійковій формі. Вона вказує тип операції, яка має бути виконаною, адреси операндів, над якими виконується операція, та адреси розміщення результатів виконання операції. Відповідно до цього команда складається з двох частин, як це показано на рис. 3.1: коду операції та адресної частини. Поле коду операції (КОП) займає k розрядів. Ним може бути закодовано до N = 2k різних операцій. Кількість двійкових розрядів, які відводяться під код операції, вибирається таким чином, щоб ними можна було закодувати всі виконувані в даному комп'ютері операції. Якщо деякий комп’ютер може виконувати Nc різних операцій, то мінімальна розрядність поля коду операції k визначається наступним чином: k = [log2Nc], де вираз в дужках означає заокруглення до більшого цілого. Поле адреси (адресна частина) займає ш розрядів. В ньому знаходяться адреси операндів. Кожна адреса займає ш. розрядів, де і - номер адреси (і=1,2,...1), 1 - кількість адресних полів. Кожною адресою можна адресувати пам’ять ємністю 2ті слів. Детальна інформація про зв’язок між ємністю пам’яті та розрядністю адреси наведена в розділі 9, в якому описана будова пам’яті. Розмір команди k + m повинен бути узгодженим з розміром даних, тобто бути з ним однаковим або кратним цілому числу, що спрощує організацію роботи з пам’яттю. Як правило, розмір команди рівний 8, 16, 32 біти. При написанні програми крім двійкової можуть використовуватись й інші форми представлення команд: вісімкова, шістнадцяткова, символьна (мнемонічна). Використання вісімкового і шістнадцяткового кодування дозволяє скоротити записи і спростити роботу програміста. Як відомо 3 двійкових розряди (тріада) замінюються на 1 вісімковий, а 4 двійкових розряди (тетрада) - на 1 шістнадцятковий. Приклад: (000011111111)2 = (0377)8 = (0FF)l6 Мнемонічне кодування спрощує процес написання, читання і відлагодження програми. Основний принцип такого кодування - кожна команда представляється 3-х або 4-х буквеним символом, який показує назву команди. Деякі приклади мнемонічного кодування: ADD - додати (add), SUB - відняти (subtract), MPY - перемножити (multiply), DIV - поділити (divide), LOAD - зчитати дані з пам’яті (load data from memory), STORE - записати дані в пам’ять (store data to memory). Операнди також представляються символічно. Наприклад команда ADD R, Y означає додавання вмісту комірки пам’яті Y до вмісту регістра R. Зауважимо, що операція виконується над вмістом, а не над адресою комірки пам’яті та регістра. Таким чином, з’являється можливість написання машинних програм в символічній формі. Повний набір символічних назв і правила їх використання утворюють мову програмування, відому як асемблерна мова. Символічні імена називаються мнемонічними, а правила їх використання для створення команд і програм називаються синтаксисом мови. Програма, яка переводить із мнемонічного коду асемблерної мови в машинний, називається асемблером. Команди, які використовуються для переводу вихідної програми в асемблерну, називаються командами асемблера. Ці команди вказують як інтерпретувати назви, де розмістити програму в пам’яті, яка кількість комірок пам’яті необхідна для зберігання даних. Асемблерна мова є дуже далекою від мови людини і заставляє програміста думати виходячи з принципів побудови комп’ютера. Тому були створені мови високого рівня та компілятори, які переводять програми з цих мов на мову асемблера. Використання мов високого рівня має цілий ряд переваг в порівнянні з використанням асемблера. По-перше, програміст пише програми на мові, близькій до його мови спілкування. Більше того, мови високого рівня орієнтуються на класи вирішуваних задач. По-друге, скорочується час написання програм. І по-третє, мови високого рівня є незалежними від типу та архітектури комп’ютера, що дозволяє використовувати написані на цих мовах програми на всіх комп’ютерах, а програміста звільнити від знання їх структури та організації роботи. Разом з тим, хоча більшість програм сьогодні пишуться на мовах високого рівня, асемблерна мова є корисним засобом для написання машинних команд завдяки близькості до машинної мови, наочності та компактності, і ми також будемо її для цього використовувати. Порядок виконання команд Команди зберігаються в основній пам’яті комп’ютера за відповідними адресами. Для того, щоб виконати команду та здійснити обробку даних, команду та дані потрібно зчитати з основної пам’яті та заслати до відповідних регістрів процесора. Комп’ютер виконує кожну команду як послідовність простих операцій: 1. Вибірка чергової команди із основної пам’яті. 2. Визначення типу вибраної команди, тобто її дешифрування. 3. Визначення адрес даних, необхідних для виконання цієї команди. 4. Виконання операцій пересилання даних (зчитування даних із пам’яті в регістри процесора). 5. Виконання операції відповідно до її коду в полі коду операції команди. 6. Визначення адрес, за якими запам’ятовуються результати. 7. Запам’ятовування результатів. 8. Підготовка до виконання наступної команди, тобто обчислення її адреси. На рис. 3.2 показана діаграма циклу виконання команди, причому в нижній стрічці наведені операції, які виконуються всередині процесора, а в верхній стрічці - операції запису та вибірки із основної пам’яті. Операції 3 та 4 можуть повторюватись стільки разів, скільки потрібно вибрати операндів з основної пам’яті. Така ситуація відбувається при виконанні багатомісних операцій. Аналогічно можуть повторюватись операції 6 та 7, якщо отримано кілька результатів. При обробці декількох даних за однією командою операції 3-7 повторюються відповідну кількість разів. Такі операції називають векторними.
|
||||
Последнее изменение этой страницы: 2016-08-01; просмотров: 658; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.189.173 (0.01 с.) |