ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Бакалаврська робота. Програмна модель 32-разядной МЕВМ фірми Motorola
         

     

    Інформатика, програмування

    Міністерство освіти РФ

    Курський державний технічний університет

    Кафедра обчислювальної техніки

    Затверджую

    зав. Кафедрою професор

    __________________Тітов В. С.

    ____________________________

    ____________________________

    Випускна кваліфікаційна робота бакалавра

    Програмна модель 32-розрядного мікропроцесора фірми Motorola

    Автор випускної кваліфікаційної роботи: Денисов А. Н.

    Позначення випускної кваліфікаційної роботи____________________

    _______________________________Группа ВМ-81 < p> Направленіе____________________________________________________

    Керівник роботи: __________________ к.т.н. Жмакін А.П.

    Нормоконтроль __________________ Чернецька І. Е.

    З усіма питаннями звертайтеся [email protected]

    Анотація

    Метою даної роботи було вивчення організації 32-розрядногомікропроцесора фірми Motorola. Ця мета може бути досягнутаза допомогою написання програмної моделі цього мікропроцесора.
    У ході роботи велику увагу приділено функціональним особливостям об'єктарозробки, способів організації, системі команд. Це програмневиріб може бути використано при навчанні студентів. Пояснювальназаписка складається з 45 сторінок, до їх складу входить 7 таблиць і 4 рисунка.

    Summary.

    The purpose of the given work was the study of organization of the
    32-bit microprocessor of firm Motorola. The given purpose was achieved bymeans of a spelling of program model of the given microprocessor.
    During work the large attention is given to functional features of objectof development, ways of organization, command system. The given programproduct can be used at training the students. The explanatory slip consistsof 45 pages, their structure includes 7 tables and 4 figures.

    Зміст

    Введення 5
    Технічне завдання 7
    2. Постановка задачі 9
    3. Вибір засобів реалізації 10
    4. Опис машини користувача 11
    5. Інтерфейс, органи управління 33
    6. Застосування програмної моделі. 37
    7. Опис інтерпретатора 39
    Висновок 44
    Список використаних джерел 45

    Введення

    У сучасній техніці роль мікро-ЕОМ досить значуща. Сфера їхзастосування широка. Досить назвати лише кілька областей, у якихзастосування 16 - і 32-розрядних МК стало буденним явищем, щоб зрозуміти,чому виробники МК приділяють їм таку увагу:

    . цифрові пристрої дротового і бездротового зв'язку;

    . промислові контролери, системи управління двигунами;

    . портативні обчислювально-комунікаційні цифрові засоби;

    . цифрові побутові пристрої;

    . системи передачі інформації, і т.д.

    Це робить зручним техніку в експлуатації, заощаджує час людині,дозволяє більш раціонально витрачати електроенергію.

    Для вивчення мікро-ЕОМ у Курськом Державному Технічному
    Університеті відсутні лабораторні установки, які дозволяли бстудентам ознайомитися з новими перспективними моделями різнихмікропроцесорів фірми Motorola.

    Практика роботи з існуючими лабораторними установками,свідчить про те, що студенти змушені витрачати велику частину часуна рутинні операції (ассемблірованіе, дізассемблірованіе та ін.) Цепояснюється тим, що лабораторні установки мають не зручним,малофункціональних і не наочним інтерфейсом. Наприклад, якпристрої виведення використовуються шість семисегментний індикаторів, апрограмний код вводиться побайтно в шістнадцятковому форматі. З метоюспрощення роботи шляхом автоматизації рутинних операцій і вивченняелементної бази нових мікропроцесорів і була розроблена данапрограмна модель.

    Програмна модель дає широкі і зручні можливості для набору таналагодження програм (наприклад, може бути можливий одночасний переглядвсіх регістрів, пам'яті, введення команд у мнемонічних позначення,ассемблірованіе команд і т. д.).
    Застосування програмної моделі дає значну економію часу і сил, зарахунок більш зручною налагодження і набору програми. За допомогою розробленоїпрограми студентам надається можливість вивчити різні способиадресації, систему команд і пристрій MC 68300.

    Технічне завдання


    1.Призначення та цілі розробки.

    1.1. Змоделювати 32-розряд мікропроцесор фірми Motorola МС
    68300 на рівні програмно-доступних об'єктів.

    1.2. Мета роботи - створити програмну модель, яка використовується дляпочаткового знайомства з архітектурою МС 68300 та його системою команд,дозволяє налагоджувати прості програми мовою мнемокодов (Асемблера).

    Характеристики об'єкта розробки.

    2.Требованія до виробу.

    2.1. Функціональні вимоги.

    2.1.1. Чи не кваліфіковані користувачі можуть вводити дані за запитом комп'ютера.

    2.1.2. Діалоговий режим.

    2.1.3. Виконання функцій:

    2.1.3.1. Заборона редагування результатів навчання користувачам.

    2.1.3.2. Можливість перегляду та безпосереднього редагування регістрів даних і адреси, а також дампа

    ОЗУ.

    2.1.3.3. Розвинена система допомоги, що включає інформацію по процесору МС 68300 і його мови, а також інформацію з програмної моделі.

    2.1.4.Разработанная система налагодження, що дозволяє користувачеві легко визначити помилку введення даних.

    2.1.5. Можливість трасування програм.

    6. Підтримування різних систем числення (двійкова, десяткова, шістнадцяткова).

    2.1.7. Наочність і доступність інтерфейсу.

    2.2. Вимоги до надійності.

    2.2.1.Обеспеченіе збереження даних у файлі.

    2.2.2. Надійна робота програми, за умови стабільної роботи операційної системи і дотримання мінімальних вимог до апаратних ресурсів.

    2.3. Стандартний інтерфейс WINDOWS - додатків.

    3.Состав і зміст робіт зі створення (розвитку) системи.

    3.1. Граф-дерево структури системи.

    3.2. Складання алгоритму майбутньої програми.

    3.3. Написання тексту програми за алгоритмом.

    3.4. Тестування програми.

    3.5. Компонування всіх документів в єдине керівництво.

    4.Требованія до документування.

    4.1. Технічне завдання.

    4.2. Текст програми - роздруківка лістингу програми.

    4.3. Текст програми в об'єктно-орієнтованої формі.

    5. Джерела розробки.

    5.1. Internet. Сайти, присвячені мікроелектроніці, зокрема www.Gaw.ru, розділ присвячений мікропроцесорах.

    5.2. Жмакін А.П. Курс лекцій по мікропроцесорах.

    5.3. Фаронов В.В. Delphi 5. Навчальний курс, М., "Knowledge", 2001 рік.

    5.4 Юров. В. Assembler., Санкт-Петербург, "Пітер" 2000 р.

    2. Постановка завдання

    Метою даної роботи є з'ясування організації, принципів роботи,системи команд мікропроцесорів. Мета повинна бути досягнута шляхомрозробки програмної моделі мікро-ЕОМ на базі 32 розрядногомікропроцесора фірми Motorola.

    Програмна модель повинна продемонструвати роботу 32 розрядної ЕОМфірми Motorola. Програма працює в діалоговому режимі з користувачем, тоТобто існує можливість введення вихідних даних, перегляд проміжних ікінцевих результатів.

    Це програмне виріб повинен наочно моделювати процесроботи процесора, тобто дозволяти вводити асемблерні код програм ззастосуванням системи команд мікропроцесора і допустимих способів адресації,і виводити результат обробки. Має бути передбачений захист віднекоректного введення даних. Програмне виріб повинен забезпечити наочнуроботу об'єкта моделювання, з можливістю зміни проміжнихрезультатів.

    У функціональному відношенні програмне виріб повинен представлятисобою програму, розроблену з застосуванням стандартів інтерфейсуопераційної системи Microsoft Windows.

    Вибір засобів реалізації

    При постановці завдання на розробку цього програмного вироби булаобрана система Windows в зв'язку з широким розповсюдженням, доступністюі наявністю гнучких засобів розробки програмного забезпечення під цюплатформу, і відсутністю таких під інші програмні платформи вналичии.

    При виборі засобу розробки будь-який компілятор для системи Windows мігбути використаний для написання моделі. З найбільш поширених, такихяк Microsoft Visual C + +, Borland C + +, Borland C + + Builder, Watcom C + +,
    Borland Delphi, Symantec C + +, Power Builder, був обраний компілятор Borland
    Delphi. Вибір обгрунтований широким поширенням, зручністю використання,високою якістю генерується коду даного середовища. Крім того, незважаючи нате, що Delphi є компілятором розширеного мови Pascal, програми,написані на Delphi повністю сумісні з компілятором Borland C + +
    Builder, який не був застосований через більш високих вимог доапаратних ресурсів.

    Опис машини користувача

    Даний процесор реалізує архітектуру, прийняту в мікропроцесорахсімейства 68000, що дозволяє використовувати великий обсяг прикладного тасистемного програмного забезпечення, створеного для цього сімейства.
    Процесор CPU32 працює з 16-розрядної шиною даних і 24-розрядної шиноюадреси (адресується пам'ять до 16 Мбайт), аналогічно мікропроцессорамМС68000.

    Основним архітектурним принципом функціонування процесорівсімейства 68000 є поділ їх ресурсів і можливостей узалежно від класу вирішуваних завдань. Архітектура процесорів орієнтованана роздільне виконання двох класів завдань: управління роботою самоїмікропроцесорної системи за допомогою системного програмного забезпечення
    (операційної системи - супервізора) і рішення прикладних задачкористувача. В залежності від виконуваного завдання процесор CPU32 має дварежиму функціонування:

    . режим супервізора,

    . режим користувача.

    Залежно від режиму при виконанні програм дозволяється доступ довсіх ресурсів мікроконтролера або їх частини. У режимі супервізорадозволяється виконання будь-яких команд, реалізованих процесором, і доступ довсім регістрів. У режимі користувача забороняється виконання ряду команд ідоступ до деяких регістрів, щоб обмежити можливість таких змінстану системи, які можуть перешкодити виконанню інших програм абопорушити встановлений супервізорів режим роботи процесора. Режимфункціонування визначається значенням біта S в регістрі станупроцесора SR.

    МП МС68300 має 32-бітову внутрішню структуру і тому можевиконувати арифметичні та логічні операції над 32-розрядними числами.

    Технічні засоби МП 68300, які використовуються для програмування,показані на рис. Регістри загального призначення об'єднані в два набори --регістри даних (D0-D7) та адресні регістри (A0-A7).

    Регістри даних:

    31 16 15 8 7

    0
    | | | | | D0 |
    | | | | | D1 |
    | | | | | D2 |
    | | | | | D3 |
    | | | | | D4 |
    | | | | | D5 |
    | | | | | D6 |
    | | | | | D7 |

    Регістри адреса:

    31 16 15 8 7

    0
    | | | | | A0 |
    | | | | | A1 |
    | | | | | A2 |
    | | | | | A3 |
    | | | | | A4 |
    | | | | | A5 |
    | | | | | A6 |

    Два покажчика стека:

    31 0
    | Покажчик стека користувача | USP |
    | Покажчик стека супервізора | SSP |

    Програмний лічильник:

    31 0
    | | PC |

    Регістр стану:

    15 8 7 0
    | | CCR | SR |

    Регістри даних Dn

    У МП МС68300 програмно доступні вісім регістрів даних, позначених
    D0-D7. Кожен з них може бути використаний як джерело операнда, приймачоперанда або як сам операнд. Регістром даних можна оперувати як байтом
    (8 біт), словом (16 біт) або довгим словом (32 біти). При бітовихопераціях використовуються тільки молодші 8 біт, а при операціях зі словами -молодші 16 біт. Старші біти в цих операціях не беруть участь.

    Регістри адреси Аn

    Регістри адреси головним чином використовуються для отримання адресиоперанда виконуваної команди. Більша частина операцій маніпулюванняданими не може виконуватися за допомогою адресних регістрів. У адреснихрегістрах операції з байтами не дозволені.

    Як показано на малюнку в набір регістрів входять дев'ять регістрівадреси, два з яких використовуються як покажчики стека: покажчик стекасупервізора (SSP-Supervisor Stack Pointer) і призначений для користувача покажчикстека (USP-User Stack Pointer). Природно, що в кожний момент часупроцесор має доступ тільки до одного з регістрів стека в залежності відрежиму, в якому знаходиться процесор. Таким чином адресний регістр А7фізично являє собою два незалежних регістра. У програмах наасемблері він може вказуватися як A7 і як SP. Процесор автоматичноформує покажчик стека при виклику підпрограм і повернення з них, а такожпри обробці переривань.

    Програмний лічильник РС (Program Counter)

    Як і будь-який інший МП, МС68300 має у своєму наборі регістрівпрограмний лічильник РС.

    Після вибірки команди з пам'яті програмний лічильник завжди вказує нанаступну виконувану команду. На відміну від регістрів загального призначення вінне може бути явно визначений як операнд ні в якій із команд, виключеннястановить використання РС в якості базового регістра в командах зіндексного адресацією. При виконанні команд переходів в РС завантажуєтьсяадресу нової команди, якій передається керування. Для всіх іншихкоманд значення РС збільшується на довжину виконуваної команди.

    Незважаючи на те, що лічильник команд та адресні регістри MC68300 32 --розрядні, при зверненнях до пам'яті на зовнішню адресну шину передаютьсятільки 24 молодших біта адреси. З цієї причини забезпечується доступ тількидо 224 (16M) байти пам'яті. Модифікації процесора МС68020, МС68030 і 68040мають 32-розрядну адресну шину і здатні адресувати 4Г байт.

    Регістр стану SR містить два байти: системний байт і байткористувача. Повністю регістр SR доступний тільки в режимі супервізора. Урежимі користувача доступні лише молодші розряди (байт користувача),які утворюють регістр умов CCR. Окремі біти регістра CCR маютьнаступне призначення:

    С - ознака переносу, приймає значення C = 1 при виникненні переносузі старшого розряду оброблюваних операндів;

    V - ознака переповнення, приймає значення V = 1 у разі переповненнярозрядної сітки при обробці операндів зі знаком;

    Z - ознака нуля, приймає значення Z = 1 при отриманні нульовогорезультату операції;

    N - ознака знаку, приймає значення старшого (знакового) розрядурезультату операції: N = 0 - позитивне число, N = 1-негативне;

    X - ознака розширення, в більшості випадків копіює ознака С, алепри виконанні деяких операцій ці ознаки встановлюються по-різному.

    Біти системного байти регістра стану SR, що визначають режимифункціонування процесора, мають таке призначення:

    S-ознака супервізора, при S = 0 процесор працює в режимікористувача, при S = 1 - в режимі супервізора;

    T1-0 - поле режиму трасування (крок за кроком режим): при T1 = 1 процесорзупиняється після кожної команди, при T0 = 1 - тільки після командпереходів і розгалужень, які змінюють хід програми;

    I2-0 - поле маски переривань, визначає мінімальний рівень пріоритетудля обслуговування запитів переривання. Решта біти регістра SR НЕвикористовуються або резервовані для наступних моделей процесорів.

    При включенні мікроконтролера відбувається автоматичне встановленняпочаткового стану регістрів. У регістрі SR встановлюється значення біта
    S = 1, і процесор починає працювати в режимі супервізора. З пам'ятізавантажуються початкові значення вмісту програмного лічильника PC іпокажчика стека. Якщо в процесі подальшої роботи потрібно перекладпроцесора в режим користувача, то за допомогою команди MOVE to SR в регістр
    SR завантажується новий вміст, в якому біт S = 0. Зворотній переклад врежим супервізора проводиться при обслуговуванні запитів переривання абовиникненні виняткових ситуацій, а також у процесі встановленняпроцесора в початковий стан (повторний запуск) при вступізовнішнього сигналу скидання або команди RESET.

    Регістри VBR, SFC, DFC доступні тільки в режимі супервізора. У 32 --розрядний регістр VBR заноситься базовий адреса таблиці векторів винятків.
    Завантаження цього регістра проводиться командою MOVEC. При обслуговуваннівинятків сформоване процесором значення Av = 4Ne є відноснимадресою (зміщенням), що визначає положення обраного вектора в таблиці,яка може бути розміщена в будь-якому місці адресного простору. У 3 --розрядні регістри SFC, DFC за допомогою команди MOVEC заноситься код адресногопростору, який надходить на висновки FC2-0 мікроконтролера привиконанні команди MOVES. Таким чином забезпечується розширення адресногопростору за допомогою організації віртуальної пам'яті

    Формати даних

    Процесор виконує обробку бітів, байтів, 16-розрядних слів, 32 --розрядних довгих слів і двійковій-десяткових чисел (1 байт = 2 десятковихрозряду). Оброблювані дані - операнди можуть розташовуватися в регістрах
    (даних або адреси) або оперативної пам'яті. Для вибірки слова (байти B1-0)або довгого слова (байти B3-0) команда задає адресу старшого байта N,парний або кратний чотирьом. При цьому слова і довгі слова розміщуютьсятаким чином, що молодші байти (розряди D7-0 даних) розташовуються вкомірках пам'яті з великими адресами: N 1 або N = 3 (ріс.3.3). Таке розміщеннябайтів в пам'яті від старшого до молодшого соотв?? ствует природному порядкуїх написання ліворуч - праворуч. Цей порядок адресації байтів називається взарубіжної літератури "big-endian". Він відрізняється від порядку "little -endian ", прийнятого компанією INTEL і рядом інших виробників, колирозміщення слова починається з молодшого байта, адреса якого служить адресоюслова.

    МП МС86300 має можливість доступу в пам'яті до байта (8 біт), слову
    (16 біт) і довгим словом (32 біти). На відміну від МП фірми Intel (8086,
    80286, 80386, 80486) в МП 68300 прийняті наступні угоди:

    слова (довгі слова) можуть розміщуватися тільки по парних адресами; старші байти слова (подвійного слова) розташовуються в комірках з меншими адресами; адресою слова (подвійного слова) вважається його старший байт.

    Таким чином, відповідно до концепції, прийнятої фірмою Моторола,слово розміщується в пам'яті в двох сусідніх комірках і починається від найстаршогобайти. Це означає, що при читанні слова, розміщеного за адресою Х МС68300зчитує два сусідніх байти, причому байт за адресою Х інтерпретується якстарший, а байт за адресою Х +1 як молодший. Відповідно, довге словорозміщується в чотирьох суміжних комірках пам'яті, причому старший байт довгогослова знаходиться за меншим адресу.

    Способи адресації

    Процесор CPU32 реалізує наступні способи адресації операндів:

    . регістрова (операнд у регістрі даних або адреси),

    . побічно-регістрова (операнд в комірці пам'яті, що адресується вмістом регістра адреси),

    . побічно-регістрова з постінкрементом (операнд в комірці пам'яті, що адресується вмістом регістра адреси, яке автоматично збільшується після вибірки операнда для адресації наступної комірки),

    . побічно-регістрова з предекрементом (операнд в комірці пам'яті, що адресується вмістом регістра адреси, яке автоматично зменшується перед вибіркою операнда для адресації попередньої комірки),

    . побічно-регістрова із зсувом (операнд в комірці пам'яті, адреса якої є сумою вмісту регістра адреси і 16-розрядного зміщення d16, заданого в команді),

    . побічно-регістрова з індексацією (операнд в комірці пам'яті, адреса якої є сумою вмісту регістра адреси, індексного регістра і даного в команді 8-розрядного зміщення d8),

    . пряма (операнд в комірці пам'яті, адреса якої задається числом Abs, зазначеним у команді),

    . відносна (операнд в комірці пам'яті, адреса якої є сумою поточного вмісту програмного лічильника PC і даного в команді 16 - розрядного зміщення d16 або базового зміщення bd),

    . відносна з індексацією (операнд в комірці пам'яті, адреса якої є сумою вмісту програмного лічильника PC, індексного регістра і даного в команді 16-розрядного зміщення d16 або

    32-розрядного базового зміщення bd), < p>. безпосередня (значення операнда Im дано в команді).

    Формати команд

    Команди процесора МС68300 можуть містити від одного до п'яти слів.
    Будь-яка команда завжди розташована за парним адресою. Формат команди в загальномувигляді показано на малюнку 1:

    | Командна слово |
    | (перше слово, яке визначає операцію і спосіб адресації) |
    | Безпосередній операнд |
    | (одне або два слова) |
    | Ефективний адресу джерела |
    | (одне або два слова) |
    | Зсув |
    | (одне або два слова) |


    Малюнок 1.

    Система команд CPU32

    Процесор CPU32 виконує набір з 139 команд, які реалізуютьтакі групи операцій:

    . операції пересилання,

    . арифметичні операції,

    . логічні операції,

    . операції зсуву,

    . операції порівняння та тестування,

    . бітові операції,

    . операції управління;

    . операції умовної установки байтів.

    Таблиця1 - Набір команд процесора CPU32

    | Синтаксис асемблера | Розрядність | Операція | Адресація |
    | ADD Dn, | B, W, L | + Dn -> | 1, (3-9,13) |
    | | | | |
    | ADD, Dn | B, W, L | Dn + - Dn | (1-14), 1 |
    | ADDA, An | W, L | + An -> An | (1-14), 2 |
    | ADDI # Im, | B, W, L | + Im -> | 12, (1,3-9,13) |
    | | | | |
    | ADDQ # Im, | B, W, L | + Im -> | 12, (1-9,13) |
    | | | | |
    | ADDX Dy, Dx | B, W, L | Dx + Dy + X -> Dx | 1,1 |
    | ADDX - (Ay), - (Ax) | B, W, L | + + X | 5,5 |
    | | | -> | |
    | SUB Dn, | B, W, L | - Dn -> | 1, (3-9,13) |
    | | | | |
    | SUB, Dn | B, W, L | Dn + -> | (1-14), 1 |
    | SUBA, An | W, L | An--> An | (1-14), 2 |
    | SUBI # Im, | B, W, L | - Im -> | 12, (1,3-9,13) |
    | | | | |
    | SUBQ # Im, | B, W, L | - Im -> | 12, (1-9,13) |
    | | | | |
    | SUBX Dy, Dx | B, W, L | Dx - Dy - X -> | 1,1 |
    | | | | |
    | SUBX - (Ay), - (Ax) | B, W, L | - - X | 5,5 |
    | | | -> | |
    | NEG | B, W, L | O - -> | (1,3-9,13) |
    | NEGX | B, W, L | O - - X -> | (1,3-9,13) |
    | | | | |
    | ABCD Dy, Dx | W | Dx + Dy + X -> Dx | 1,1 |
    | ABCD - (Ay), - (Ax) | W | + + X | 5,5 |
    | | | -> | |
    | SBCD Dy, Dx | W | Dx-Dy - X -> Dx | 1,1 |
    | SBCD - (Ay), - (Ax) | W | - - X | 5,5 |
    | | | -> | |
    | NBCD | W | O - - X -> | (1,3-9,13) |
    | | | | |
    | MULS, Dn | W, L | Dn * -> Dn | (1,3-14), 1 |
    | MULS.L, Dh-Dl | L | Dn * -> Dn | (1,3-14), 1 |
    | MULU, Dn | W, L | Dn * -> Dn | (1,3-14), 1 |
    | MULU.L, Dh-Dl | L | Dl * -> | (1,3-14), 1 |
    | | | Dh: Dl | |
    | DIVS, Dn | W, L | Dn/-> Dn | (1,3-14), 1 |
    | DIVS.L, Dr: Dq | L | Dr: Dq/-> | (1,3-14), 1 |
    | | | Dr: Dq | |
    | DIVSL.L, Dr: Dq | L | Dq/-> | (1,3-14), 1 |
    | | | Dr: Dq | |
    | DIVU, Dn | W | Dn/-> Dn | (1,3-14), 1 |
    | DIVU.L, Dr: Dq | L | Dr: Dq/-> | (1,3-14), 1 |
    | | | Dr: Dq | |
    | DIVUL.L, Dr: Dq | L | Dq/-> | (1,3-14), 1 |
    | | | Dr: Dq | |
    | CLR | B, W, L | 0 -> | (1,3-9,13) |


    Таблиця2 - Команди логічних операцій

    | Синтаксис | Розрядність | Операції | Адресація |
    | асемблера | | | |
    | AND, Dn | B, W, L | Dn ^ -> Dn | (1, 3 - 14), 1 |
    | AND Dn, | B, W, L | ^ Dn -> | 1, (1,3 - 9,13) |
    | | | | |
    | ANDI # Im, | B, W, L | ^ Im -> | 12, (1, 3 - 9,13) |
    | | | | |
    | ANDI # Im, CCR | W | CCR ^ Im -> CCR | 12, - |
    | ANDI # Im, SR | W | SR ^ Im -> SR | 12, - |
    | OR, Dn | B, W, L | Dn -> Dn | (1, 3 - 14), 1 |
    | OR Dn, | B, W, L | Dn -> | 1, (1,3 - 9,13) |
    | ORI # Im, | B, W, L | Im -> | 12, (1, 3 - 9,13) |
    | ORI # Im, CCR | W | CCR Im -> CCR | 12, - |
    | ORI # Im, SR | W | SR Im -> SR | 12, - |
    | EOR Dn, | B, W, L | + Dn -> | 1, (1, 3 - 9,13) |
    | | | | |
    | EORI # Im, | B, W, L | dst> + Im -> | 12, (1, 3 - 9,13) |
    | | | | |
    | EORI # Im, CCR | W | CCR + Im -> CCR | 12, - |
    | EORI # Im, SR | W | SR + Im -> SR | 12, - |
    | NOT | B, W, L | -> | (1, 3 - 9.13) |


    Табліца3 - Команди зрушень
    | Синтаксис | Розрядність | Адресація |
    | асемблера | | |
    | ASL Dx, Dv | B, W, L | 1, 1 |
    | ASL # Ns, Dv | B, W, L | 12, 1 |
    | ASL | W | (3 - 9,13) |
    | ASR Dx, Dv | B, W, L | 1,1 |
    | ASR # Ns, Dv | B, W, L | 12,1 |
    | ASR | W | (3 - 9,13) |
    | LSL Dx, Dv | B, W, L | 1,1 |
    | LSL # Ns, Dv | B, W, L | 12,1 |
    | LSL | W | (3 - 9,13) |
    | LSR Dx, Dv | B, W, L | 1,1 |
    | LSR # Ns, Dv | B, W, L | 12,1 |
    | LSR | W | (3 - 9,13) |
    | ROL Dx, Dv | B, W, L | 1,1 |
    | ROL # Ns, Dv | B, W, L | 12,1 |
    | ROL | W | (3 - 9,13) |
    | ROR Dx, Dv | B, W, L | 1,1 |
    | ROR # Ns, Dv | B, W, L | 12,1 |
    | ROR | W | (3 - 9,13) |
    | ROXL Dx, Dv | B, W, L | 1,1 |
    | ROXL # Ns, Dv | B, W, L | 12,1 |
    | ROXL | W | (3 - 9,13) |
    | ROXR Dx, Dv | B, W, L | 1,1 |
    | ROXR # Ns, Dv | B, W, L | 12,1 |
    | ROXR | W | (3 - 9,13) |

    Табліца4 - Команди порівняння та тестування.
    | Синтаксис асемблера | Розрядність | Операції | Адресація |
    | СMP, Dn | B, W, L | Dn - | (1 - 14), 1 |
    | СMP, An | W, L | An - | (1 - 14), 2 |
    | CMPI # Im, | B, W, L | - Im | 12, (1, 3 - |
    | | | | 11,13,14) |
    | CMPM (Av) +, (Ax) + | B, W, L | - | 4,4 |
    | CMP2, Rn | B, W, L | (Rn) UB | (3,6-11,13,14), |
    | | | | (1,2) |
    | TST | B, W, L | - 0 | (1, 3 - 9,13) |
    | TAS | B | - 0, 1 -> b7 | (1, 3 - 14) |

    Таблиця 5 - Команди бітових операцій.
    | Синтаксис | Розрядність | Операції | Адресація |
    | асемблера | | | |
    | BTST Dn, | B, L | bn -> Z | 1, (1, 3 - 14) |
    | BTST # Nb, | B, L | bn -> Z | 12, (1, 3 - 14) |
    | BSET Dn, | B, L | bn -> Z, 1 -> bn | 1, (1, 3 - |
    | | | | 9,13,14) |
    | BSET # Nb, | B, L | bn -> Z, 1 -> bn | 12, (1, 3 - |
    | | | | 9,13,14) |
    | BCLR Dn, | B, L | bn -> Z, 0 -> bn | 1, (1, 3 - |
    | | | | 9,13,14) |
    | BCLR # Nb, | B, L | bn -> Z, 0 -> bn | 12, (1, 3 - |
    | | | | 9,13,14) |
    | BCHG Dn, | B, L | bn -> Z, bn -> bn | 1, (1, 3 - |
    | | | | 9,13,14) |
    | BCHG # Nb, | B, L | bn -> Z, bn -> bn | 12, (1, 3 - |
    | | | | 9,13,14) |

    Таблиця 6 - Команди управління та установки байтів.
    | Синтаксис | Операції | Адресація |
    | асемблера | | |
    | JMP | -> PC | (3, 6 - |
    | | | 11,13,14) |
    | JSR | SP - 4 -> SP, PC -> | (3, 6 - |
    | | (SP), -> PC | 11,13,14) |
    | RTS | (SP) -> PC, SP + 4 -> | |
    | | SP | |
    | RTR | (SP) -> CCR, SP + Z | |
    | | -> SP, (SP) -> PC, SP | |
    | | + 4 -> SP | |
    | Scc | Якщо (сс) | (1, 3 - |
    | | Виконується, то 1 ... | 9,13,14) |
    | | 1 ->, | |
    | | Якщо (сс) не | |
    | | Виконується, то 0 ... | |
    | | 0 -> | |


    Таблиця 7 - Зміна ознак після виконання команд

    | Команди | X | N | Z | V | C | Примітка |
    | ABCD, SBCD, NBCD | + |? | * |? | + | X = С - десятковий |
    | | | | | | | Перенесення |
    | ADD, ADDI, ADDQ, SUB, SUBI, SUBQ, | + | + | + | + | + | X = С - десятковий |
    | NEG | | | | | | перенесення |
    | ADDX, SUBX, NEGX | + | + | * | + | + | X = С - десятковий |
    | | | | | | | Перенесення |
    | MULS, MULU, DIVS, DIVU | - | + | + | + | 0 | |
    | MOVE, MOVEQ, AND, ANDI, | - | + | + | 0 | 0 | |
    | OR, ORI, EOR, EORI, NOT, CLR, | | | | | | |
    | EXT, TAS, TST | | | | | | |
    | CMP, CMPI, CMPM | - | + | + | + | + | |
    | CMP2 | - |? | + |? | + | |
    | BTST, BSET, BCLR, BCHG | - | - | + | - | - | Z = bn (інверсія) |
    | ASL, ASR | + | + | - | + | + | V = 1 при зміні |
    | | | | | | | Знака |
    | LSL, LSR | + | + | + | 0 | + | |
    | ROL, ROR | - | + | + | 0 | + | |
    | ROXL, ROXR | + | + | + | 0 | + | |
    | CHK | + | + | + | + | + | |
    | MOVE, ANDI, ORI, EORI to CCR або | + | + | + | + | + | |
    | SR | | | | | | |

    У загальному вигляді запис типовий двоадресного команди на мові асемблерамає такий вигляд:

    COP.x,

    де як COP вказується мнемокод відповідної команди, а замість xставиться символ, що визначає розрядність операндів: B - байт, W - слово, L
    - Довге слово. Якщо після мнемокода відсутній символ розрядності, то позамовчуванням операндом служить слово.

    Операнд умовно позначаються як - джерело, - приймач,причому в якості приймача вказується операнд, на місці якогопоміщається результат операції. Під час запису конкретних команд в якості
    , Вказуються символічні адреси операндів на мові асемблеравідповідно до використовуваним способом їх адресації. Для одноадреснихкоманд в полі операндів дається один символічний адресу, в безадреснихкомандах адреса операнда в явному вигляді не задається. За безпосередньоїадресації замість вказується значення операнда Im, перед яким ставитьсяпрефіксний символ #.

    Числа Im, d8, d16, bd, Abs.W, Abs.L в полі операндів можуть даватисяв різних системах числення, які визначаються префіксним символом:

    & - десяткове число,

    % - двійкове число,

    @ - вісімкове число,

    $ - шестнадцатірічное число.

    При відсутності префіксного символу число сприймається як десяткове.

    З метою підвищення продуктивності в CPU32 організованийтриступеневий конвеєр виконуваних команд. Контроль стану конвеєразабезпечується за допомогою вихідних сигналів процесора:

    IPIPE # - приймає значення 0 в першому такті виконання кожної командив конвеєрі;

    IFETCH # - приймає значення 0 при завантаженні чергової команди вконвеєр, а також при звільненні конвеєра (відсутності команд).

    Дані сигнали можуть використовуватися зовнішнім аналізатором для контролюпоточного стану процесора.

    Нижче в цьому розділі розглядаються команди, що виконуються процесором
    CPU32. У таблицях для кожної команди дано її синтаксис мовою асемблера івказана розрядність операндів: фіксована (вказується числом) абозмінна (визначається символом B, W, L, який ставиться після мнемокодакоманди). Операнди, адреса яких обчислюється відповідно до заданогоспособом адресації, позначені символами. При виконанні багатьох команддля обчислення EA можна використовувати лише певні способиадресації.

    Команди MOVE, MOVEA і MOVEQ

    Команда MOVE, залежно від формату її операнда, може переміщатибайт, слово або довге слово з регістра в регістр, між регістром іпам'яттю і між пам'яттю і пам'яттю. Ця команда може також переміщати словов (з) регістра стану і довге слово між користувальницьким покажчикомстека (USP) і регістром адреси. Коли USP визначений як операнд, аборегістр стану (SR) - як приймач операнда, команда стаєпривілейоване і, отже, не може бути виконана врежимі користувача.

    Команда MOVEA (move address) призначена для ініціалізації адресногорегістра. Тільки слово і довге слово, як операнди, можливо переміщатибезпосередньо в адресний регістр. Для операції зі словом, операнд -джерело перед приміщенням в регістр адреси переводиться в 32-х розряднусітку з урахуванням знака.

    Команда MOVEQ (move quick) - це скорочена форма команди переміщеннябезпосереднього операнда в регістр даних. Безпосередній операндобмежений діапазоном від -128 до 127. Під розмірністю операціїмається на увазі довге слово. Отже, 8-бітний безпосереднійоперанд повинен бути перетворений у 32-бітовий знаковий перед переміщеннямйого в приймач, яким є регістр даних. Деякі асемблери можутьрозрізняти три форми: MOVE data, MOVEA і MOVEQ по операнда, тому що кожнаформа визначається своїм єдиним типом операнда. Для таких асемблеромдеякі мнемоніки команди MOVE можуть бути використані також успішно для
    MOVEA і MOVEQ, тому що відповідні коди операції ассембліруются згіднооперанд.

    Для ілюстрації роботи команди MOVE, привласнимо D1 = 56789ABC, A1 = 01020304і CCR = 0010001 встановимо перед виконанням команди. Після того, якпоказані нижче команди будуть виконані, ми отримаємо наступні результати:

    MOVE # 0, CCR На регістр або пам'ять немає впливу,

    N = 0, Z = 0, V = 0, C = 0, X = 0

    MOVE.W A1, D1 D1 = 56780304,

    N = 0, Z = 0, V = 0, C = 0, X = 1

    MOVE D1, A1 A1 = FFFF9ABC,

    N = 0, Z = 0, V = 0, C = 1, X = 1

    MOVE # -- 10, D1 D1 = FFFFFFF6,

    N = 1, Z = 0, V = 0, C = 0, X = 1

    Команди MOVEM і MOVEP

    Команда MOVEM (move multiple register) переносить слово або довгеслово між списком регістрів і послідовно йдуть ділянками пам'яті. Увипадку, коли слово переміщують до реєстру, кожне слово пам'яті повинно бутиперетворено в 32-х розрядну сітку з урахуванням знака перед завантаженням увідповідний реєстр. Кожен регістр, що бере участь у переміщенні, можебути зазначений у списку і відділений символом "/", можливо також вказівка всписку початкового і кінцевого регістра, розділених символом "-". У пам'ятівиділені регістри завжди розташовуються так, що D0 переписується помолодшому адресою, D1 в наступний, ... , Потім з A0 по A7, причому A7записується в самий верхній адреса пам'яті. При переміщенні регістрів впам'ять адреса операнда пам'яті може визначатися в залежності відкеруючого способу адресації або режимом з предекрементом. Для зворотногопереміщення ефективний адреса може бути визначений в залежності відкеруючого способу адресації або режимом з постінкрементом.

    Типове застосування команди MOVEM - це запис і відновленнярегістрів в стек при зверненні до підпрограм. Перед викликом підпрограмивсі регістри можуть бути записані в стек системи за допомогою виконаннякоманди

    MOVEM.L D0-D7/A0-A6, - (A7)

    При поверненні в керуючу програму, ці регістри відновлюються досвого початкового виду командою

    MOVEM.L (A7) +, D0-D7/A0-A6

    Зауважте, що хоча команда MOVEM.L (A7), D0-D7/A0 -A6 буде такожвідновлювати вміст записаних регістрів, але покажчик стека A7 прицьому не буде оновлено з присвоєнням значення, яке було спочатку ввершині стека.

    Команда MOVEP (move peripherial data) призначена для полегшенняпрограмного введення/виводу. Безліч інтерфейсів вводу/виводу - 8-бітніпристрою. Для простоти зв'язку між 16-бітної адресною шиною і 8-бітовимпристроєм введення/виводу, пристрій з'єднується з кожним молодшим абостаршим байтом шини даних. У випадку з'єднання з молодшим байтом, всевнутрішні регістри пристрої доступні через послідовність непарнихадрес. В іншій конфігурації всі внутрішні регістри доступні черезпослідовність парних адрес. Команда MOVEP може здійснювативвід/вивід даних з (в) двох (для операції зі словом) або чотирьох (дляоперації з довгим словом) послідовно розташованих регістрівпристрої введення/виводу. Тільки непрямий регістровий спосіб адресації ззсувом допускається для визначення порту введення/виводу. На Рис. 14показані два приклади роботи команди MOVEP.

    Команди EXG і SWAP

    Команда EXG (exchange) здійснює обмін вмісту двох регістрів,в той час як команда SWAP обмінює молодше слово в регістрі даних зістаршим словом. Мається на увазі, що розмірність операнда для EXG - довгеслово, для SWAP - слово.

    Команди LEA і PEA

    Команда LEA (load effective address) переміщує адреса операнда -джерела (а не його вміст) в адресний регістр - приймач.
    Отже, команда

    MOVEA.L # OPER, A1 еквівалентна команді

    LEA OPER, A1

    Команда PEA (push effective address) записує адресу операнда -джерела в стек системи. Ця команда звичайно використовується для передачіадрес параметра в підпрограму через стек. Операндами-джерелами дляобох команд LEA і PEA повинні бути операнди пам'яті.

    Як деякої ілюстрації до описаних командам, припустимо,що ми хочемо записати нескладну послідовність команд, яка будепереміщати 4 довгих слова з масиву ABC в початок масиву XYZ. Простапослідовність, що виконує це, така:

    MOVE.L ABC, XYZ

    MOVE.L ABC 4, XYZ 4

    MOVE.L ABC 8 , XYZ 8

    MOVE.L ABC 12, XYZ 12

    Ті ж дії можуть бути виконані двома командами:

    MOVEM ABC, D0-D3

    MOVEM D0-D3, XYZ

    Ще один спосіб ілюструється наступною послідовністю команд:

    MOVEA.L # ABC, A1

    MOVEA . L # XYZ, A2

    MOVE.L (A1) +, (A2) +

    MOVE.L (A1) +, (A2) +

    MOVE.L (A1) +, (A2) +

    MOVE.L (A1) +, (A2) +

    У цьому способі, що використовує постінкрементний спосіб адресації, один іта ж команда MOVE.L повторюється для переміщення наступних елементів.
    Отже, ця послідовність команд може бути легше перетворенав ітераційний цикл для переміщення великої кількості елементів між двомамасивами.

    Результатом проектування є програмна модель, найбільш точнореалізує всі перераховані вище особливості мікропроцесора MC 68300.
    Особливу увагу приділено способам адресації, зокрема програмна модельреалізує 14 способів адресації передбачених у мікропроцесорі,можливості введення даних в різних системах числення, зокрема всистемах за основою 2, 10, 16. Загальну структуру програми для наочностіможна представити на малюнку 2:

    Введення даних

    Малюнок 2 - Загальна структура програми.

    Модуль інтерпретатора реалізує наступні функції:

    -- перевірку на наявність помилок в синтаксисі команд, введених користувачем,

    - приведення всіх операндів до системи числення з основою 16,

    - можливість перегляду ефективного адреси операндів (ЕА);

    --приведення всіх команд до форми, зрозумілою обробнику.

    Модуль обробки команд, за бажанням користувача може здійснюватияк виконання всієї програми, так і її покрокову трасування іздійснює виконання команд відповідно до їх мнемокодом.

    Після обробки команд, у користувача є можливість переглядурезультату їх виконання, тобто активним стає модуль інтерфейсу.

    5. Інтерфейс, органи управління

    Після запуску програми користувач отримує доступ до графічногоінтерфейсу, що дозволяє здійснювати введення, корегування і виведення даних вдіалоговому режимі (рис.1).

    Програмна модель підтримує два режими роботи: супервізора ікористувача, кожен з яких характеризується своїм безліччю операцій.
    Після запуску програми з'являється вікно, що дозволяє користувачеві вибратирежим роботи. У режимі користувача процесор працює з певнимиобмеженнями. Хоча більшість команд мікропроцесора виконуєтьсяоднаково в обох режимах, деякі команди, що викликають особливі дії всистемі, в режимі користувача заборонені.

    Рис. 3

    Основний екран програми складається з двох вікон: вікно для введення текступрограми (діалогове вікно) і вікно відладчика, в якому відображається адресакоманди в пам'яті, положення покажчика стека, Мнемоніка команди і їїмашинний код. Програмна модель володіє можливістю перегляду ікоригування проміжних результатів виконання мікропроцесорнихпрограм. Для цієї мети в неї включені можливості перегляду вмістурегістрів мікропроцесора. Здійснюється це шляхом вибору відповідногопідменю у меню, що випадає PopUp (Перегляд/Регістри). Мікропроцесор має
    17 32-розрядних регістрів (вісім регістрів даних, сім адресних регістріві два покажчика стека). Крім того, в ньому є 32-розрядний счетік команд,в якому використовуються тільки молодші 24 розряду. Регістр станумікропроцесора має 16 розрядів. Всі ці регістри відображені ввідповідному вікні (мал. 2). Закрити вікна перегляду регістрів можнаклацнувши на системну іконку закриття вікна або ж вибравши в меню пункт
    "Вікно", "Закрити все"

    Переключення між режимами здійснюється шляхом виборувідповідного режиму в меню "Режим". При перемиканні між режимами вседані, введені користувачем повинні бути збережені, про що з'явитьсявідповідна підказка.

    Рис. 4

    Програмна модель надає користувачеві можливість роботи зфайлами. Для цієї мети в меню "Файл" необхідно вибрати потрібну дію
    (Створення нового програмного листа, відкриття вже існуючого, збереженняредагованого, його закриття). Тут також існує можливість виходу зпрограми, все в подальшому необхідні дані повинні бути попередньозбережені.

    У меню "Пуск" відображені команди, що керують виконанням і налагодженняммікропроцесорних програм. Команда "Виконати" виконує програму здіалогового вікна. Команда "Зупинка" перериває виконання програми. Команда
    "Ассемблірованіе" п

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status