У вас вопросы?
У нас ответы:) SamZan.net

Варіанти індивідуальних завдань

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

i: Практична робота №1 до лекції №1. 

Практична робота № 1.

Реалізація лінійних алгоритмів на мові машинних команд.  

Мета роботи:

Отримання|здобуття| практичних навичок|навиків| розробки програми на мові машинних команд (ММК).

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

Варіанти індивідуальних завдань.      Див. додаток 1. 

Вимоги до звіту.      Див. додаток 2. 

Теоретична частина.

Щоб навчитися програмувати, треба розуміти, як працює комп'ютер. А для цього зовсім не обов'язково вивчати проходження електричних сигналів по мікросхемах, але знати архітектуру комп'ютера - бажано.

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

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

Розглянемо структурну схему комп'ютера.

  Можна виділити чотири структурні компоненти комп'ютера.

Процесор. Виконує функцію обробки даних і здійснює контроль за діями комп'ютера, Якщо в системі є тільки один процесор, він часто називається центральним процесором (central process - ing unit - CPU).

Оперативна пам'ять. Тут зберігаються дані і програми. Як правило, ця пам'ять є тимчасовою.

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

Системна шина. Служить для взаємодії між процесором, основною пам'яттю і пристроями введення-виведення

Оперативна пам'ять.

Комірку комп'ютера можна розглядати як набір з декількох перемикачів, кожен з яких знаходиться в одному з двох станів : верхньому (його часто означають одиницею) або нижньому (його означають нулем). У комірці машини таких перемикачів, як правило, вісім (кожен перемикач називають бітом і говорять, що в осередку 8 біт або 1 байт). Положення перемикачів означають цифрами: 1 - вкл.; 0 - вимк. Т. ч. вміст комірки  може бути представлено у вигляді послідовності нулів і одиниць.  Наприклад

1 0 0 0 1 1 0 0

Спробуємо підрахувати, скільки різних чисел здатний вмістити така комірка. Для цього уявимо комірку, в якій не 8, а всього один перемикач c двома станами: 1 і 0 (ВЕРХ і НИЗ). Значить, в такій комірці можуть зберігатися два числа.

Якщо тепер додати до комірки ще один перемикач, число її станів подвоїться:

00  01  10  11

Для 8 перемикачів число можливих станів вже 28=256. Значить, в комірку  з восьми біт можна записати числа від 0 до 255 (всього 256).

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

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

Однією з найважливіших характеристик процесора  є розрядність адреси. Нею обумовлений об'єм пам'яті, що адресується - адресного простору. Системи з n - розрядною адресою здатні адресувати 2n елементів пам'яті. Наприклад, системи з 16-розрядною адресою - 64Кбайт (65536) комірок, з 32-розрядним - 4 Гбайта (4 294 964 296), 64 - 18 446 744 073 709 551 616  елементів пам'яті.   

Приклад.

Нехай оперативна пам'ять має розмір 256 байт і ділиться на осередки (машинні слова) розміром 4 байти.

Адреси байтів лежать в інтервалі від 0 до 255. Але це десяткові адреси. А в комп'ютері вони двійкові. Переведемо число 25510 в двійкову систему. Це можна зробити діленням на 2 або  іншим способом:

255 = 256-1 = 28-1 = (100000000-1)2 = 111111112.

Отже, діапазон адрес байтів змінюється від

0 до 111111112

У шістнадцятковій системі це відповідає діапазону від

0 до FF

(шістнадцяткова  система числення має наступний набір символів :

0,1,2, ... 9, A, B, C, D, E, F

Групи з 4 байтів утворюють осередки. Адреса осередку дорівнює адресі молодшого байта, що входить в неї (байта з меншим номером).

Схематично структуру оперативної  пам'яті учбового комп'ютера  можна представити так:

Адреси комірок

Адреси байтів

00

00

01

02

03

04

04

05

06

07

08

08

09

0A

0B

0C

0C

0D

0E

0F

10

10

11

12

13

14

14

15

16

17

...

...

F8

F8

F9

FA

FB

FC

FC

FD

FE

FF

Адреси комірок міняються з кроком 4. Перший осередок має адресу 00, остання - FC.

Адреси представляються двозначними шістнадцятковими числами, що відповідає восьмизначним двійковим числам. Отже, при зберіганні адреси в пам'яті вона займає 1 байт (8 біт).

Всього в пам'яті 64 комірок (256/4). У комірці може зберігатися або число, або команда програми.

Розрядність адреси (довжина адресного коду) дорівнює 8 біт, тому розмір адресного простору дорівнює 28=256 байт.

Учбовий комп'ютер (УК) працює тільки з цілими числами у форматі з фіксованою точкою.

Згідно з принципом Неймана - принципом програми, що зберігається в пам'яті, разом з даними в оперативну пам'ять комп'ютера поміщається програма управління його роботою ( у процесорів гарвардської архітектури пам'ять для зберігання команд і даних розділена). Спосіб представлення програми "зрозумілий" процесору ЕОМ називається мовою машинних команд - ММК. Програма на ММК реалізує алгоритм розв’язання обчислювальної задачі на комп'ютері-виконавцеві.

Машинна команда повинна містити в собі відповіді на наступні питання:

  1.  яку операцію виконати?
  2.  де знаходяться операнди?
  3.  куди помістити результат операції?
  4.  яку команду виконувати наступною?

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

Їх позначимо таким чином:

КОП - код операції, А1 - адреса першого операнда, А2 - адреса другого операнда, А3 - адреса результату.

КОП

А1

А2

А3

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

Приклад команди складання двох чисел :

КОП

А1

А2

А3

01

44

48

де

01 - це код операції складання;

44 - адреса комірки, в якій зберігається  перший доданок;

48 - адреса комірки, в якій зберігається  другий доданок;

4С - адреса комірки, в яку поміщається результат (сума).

Для усіх арифметичних операцій відповідь на питання: "Яку команду виконувати наступною"? завжди однаковий - наступною виконується команда, що знаходиться в наступному осередку.

Записувати команди будемо в шістнадцятковій формі. У пам'яті ЕОМ команда має двійковий вигляд. Використовуючи зв'язок між двійковою і шістнадцятковою системами, можна отримати внутрішнє представлення приведеної команди.

КОП

А1

А2

А3

00000001

01000100

01001000

01001100

У таблиці.1 знаходиться система команд нашого УК .

Запис(A2) ==> A3 потрібно розуміти так: вміст осередку з адресою A1 скласти з вмістом осередки з адресою A2 і результат записати в осередок A3; (A1) ==> A3 - вміст осередку A1 занести (скопіювати) в осередок A3.

Таблиця 1.

КОП

Операція

Пояснення

00

Пересилка

((A1) ==> A3

01

Складання

((A1) + (A2) ==> A3

02

Віднімання

((A1) - (A2) ==> A3

03

Множення

((A1) x (A2) ==> A3

04

Ділення без остачі

((A1) div (A2) ==> A3 ціла частина від ділення

0A

Умовний перехід

Перехід до комірки з адресою A3 по регістру-ознаці результату W=1

0B

Безумовний перехід

Безумовний перехід до комірки з адресою  A3

77

Останов

Припинення виконання програми

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


Приклад розв’язання задачі.

Постановка задачі.

Обчислити цілочисельний вираз

( А + B ) x C

де А, В, С - цілі числа.

Під величини А, В, С виділимо елементи пам'яті з адресами:

Ідентифікатор

А

В

С

Адреса комірки

20

24

28

Результат обчислення вираження помістимо в комірку 2С.

Фрагмент програми, що вирішує цю задачу :

Адреса

КОП

А1

А2

А3

Пояснення

0C

01

20

24

2C

(20) + (24) ==> 2C

A+B

10

03

2C

28

2C

(2C) x (28) => 2C

(A+B) x C

У графі "Адреса" вказуються номери комірок, в яких розташовуються команди. Команди цієї програми виконуються в "природньому порядку" зростання адрес : спочатку 0С, потім 10.

Комірці з адресою 2С значення присвоюється двічі: спочатку результат підсумовування, потім - множення. Перший результат - проміжний, другий - остаточний.

Проте ця програма не може бути виконана тому, що:

  1.  не визначені значення початкових даних А, В, С.
  2.  користувач не зможе упізнати результати обчислень, оскільки вони залишаться усередині пам'яті, в осередку 2С, а в неї не заглянеш.

Початкові дані задаються введенням.

Введення - це занесення даних в оперативну пам'ять через пристрої введення. Пристроєм введення на УК є клавіатура.

Результати обчислень мають бути виведені. Виведення - це віддзеркалення інформації з оперативної пам'яті на пристроях виводу.

Пристроєм виведення УК  є дисплей.

Домовимося про наступний спосіб організації введення-виводу. З клавіатурою і дисплеєм пов'язаний останній елемент пам'яті - комірка FC. Називатимемо її буферною коміркою введення-виводу.

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

Комірка FC грає роль своєрідної відеопам'яті. На індикаторі користувач завжди бачить вміст комірки FC.

Структура команди пересилки наступна:

00

А1

- -

А3

Ця команда, фактично, двоадресна. Вміст другої адреси (А2) не впливає на її виконання (надалі на місці другої адреси писатимемо нулі). В результаті виконання команди пересилки значення в комірці А3 стає рівним (А1). При цьому значення в комірці А1 не міняється. Інакше це називається так: комірці А3 присвоюється  значення комірки  А1.

Пояснимо це на прикладі.

Нехай в комірці з адресою 10 знаходиться число 5, а з адресою  20 - число 7:

Розмістимо двійкове представлення числа 5 в одному байті:

Розмістимо двійкове представлення числа 7 в одному байті:

Система числення

Тетради

Двійкова

0000

0101

Шістнадцяткова

0

5

Система числення

Тетради

Двійкова

0000

0111

Шістнадцяткова

0

7

Розмістимо числа 5 і 7 в чотирьох байтах:

Адреси байтів

10

00

00

00

05

20

00

00

00

07

Після виконання команди

00 10 00 20

їх значення стануть однаковими

Адреси байтів

10

00

00

00

05

20

00

00

00

05

Повернемося до нашої програми. На дисплей треба вивести результат обчислень, отриманий в комірці з адресою 2С. Для цього його слід присвоїти комірці FC. Значить, команда виводу буде такою:

00 2С 00 FC.

Тепер  запрограмуємо  введення значення А в комірку з адресою 20.

00 FC 00 20.

Процесор, виявивши команду, у якої код операції дорівнює 00 і А1=FC, перериває роботу і чекає дій користувача. Користувач набирає на клавіатурі число. Це число заноситься в комірку з адресою  FC і, одночасно, висвічується на дисплеї. Потім користувач натискає клавішу <ВВЕДЕННЯ>. Процесор виконує команду пересилки з комірки з адресою  FC в комірку з адресою  20. Введення завершилося, процесор переходить до виконання наступної команди.

Запишемо команди введення і виводу в загальному вигляді:

00 FC 00 A3

- введення числа в комірку з адресою  А3

00 А1 00 FC

-  виведення числа з комірку з адресою   А1

А тепер запишемо програму обчислення виразу (А+В)*С в остаточному виді.

Домовимося, що будь-яка програма займатиме комірки на початку пам'яті. Перша команда завжди знаходиться в комірці з адресою  00.

Адреса комірки

КОП

А1

А2

A3

Пояснення

00

00

FC

00

20

введення А

04

00

FC

00

24

введення В

08

00

FC

00

28

введення С

0C

01

20

24

2C

A+B

10

03

2C

28

2C

((A+B)*C

14

00

2C

00

FC

виведення результату

18

77

00

00

00

Стоп

20

00

00

00

00

А

24

00

00

00

00

В

28

00

00

00

00

С

00

00

00

00

результат

У комірці з адресою  18 знаходиться команда останову з кодом операції 77. Результат її виконання - зупинка роботи машини. Вміст адресної частини в цій команді не має значення.

Припустимо, що за цією програмою ми хочемо обчислити вираз при  значеннях А=26, В=74, С=3.

Процесор починає виконувати програму з команди, що знаходиться в осередку 00. У нашій програмі це команда введення А. ЕОМ зупиняється і чекає дій користувача. Користувач набирає на клавіатурі шістнадцятковий код числа 26:

00 00 00 1А <ВВОД>

Після натиснення клавіші <ВВЕДЕННЯ> число 26 введено в комірку з адресою 20.

Наступна команда вимагає введення значення В. Користувач вводить:

00 00 00 4А <ВВОД>

Останнім вводиться значення С:

00 00 00 03 <ВВОД>

Наступні команди програми виконуються автоматично. Після виконання команди виводу (комірка з адресою 14) відбувається зупинка. Вона потрібна для того, щоб користувач встиг розгледіти результат на дисплеї, якщо в програмі декілька команд виводу. Для введених значень початкових даних результат на дисплеї буде таким:

00 00 01 2С

Програма продовжить виконання після натиснення клавіші <ВВЕДЕННЯ>. Робота програми завершиться по команді останову.

Отриманий результат - це шістнадцяткова форма внутрішнього представлення. Щоб отримати відповідь в десятковій системі, треба виконати переведення: 12С16 = 30010

Ми бачимо, що числа вводяться і виводяться в шістнадцятковому виді. Виконуючи розрахунки на сучасних ЕОМ, користувач має справу з десятковими числами. Про двійкову і шістнадцяткову системи він може взагалі нічого не знати. Але не потрібно забувати, що наш комп'ютер - учбовий. На його прикладі ми прагнемо зрозуміти, як працює ЕОМ. Рідна мова комп'ютера - це мова машинних команд і двійкових чисел. Автоматичне переведення чисел з двійкової в десяткову систему і назад проводиться за допомогою спеціальних програм переведення, а це вже програмний сервіс. Але ми зараз розглядаємо ЕОМ, позбавлену всякого програмного забезпечення. З такою машиною можна спілкуватися тільки на мові двійково-шістнадцяткових кодів.


Додаток 1.

Варіанти індивідуальних завдань|задавань|.

  1.  2*с|із| - d + 23
  2.  -2*с|із| + d*82|
  3.  с/4 - d*62|
  4.  2*с|із| - d/4
  5.  2*с|із| - d/3
  6.  2*c-d*42|
  7.  с|із| — d/2 + 33
  8.  c*d| + 23
  9.  2*с|із| + d*51|
  10.  2*с|із| — d/2 +l
  11.  12/с|із| - d*4| +73
  12.  -53/а + d -4*a
  13.  -25/а +c-b*a
  14.  8*b + 1 - с|із|
  15.  b/c-l
  16.  а + c/b - 28
  17.  2*b - а + b*c|
  18.  а - b*4| - l
  19.  21 - a*c/4
  20.  2*b - 38*c|
  21.  a*b/4 - l
  22.  a*b| + 2*c|
  23.  2*с|із| + а - 21
  24.  8*b - 1 - с|із|
  25.  4*b/c + l
  26.  а - c*b| + 28
  27.  2*b - а + (4*b/c)
  28.  а + b/4- l)
  29.  25 + 2*a/c
  30.  b/2 - 53/c
  31.  с|із| + 4*d| - 123
  32.  25/с|із| - d + 2
  33.  4*с|із| - d/2 + 23
  34.  c/d + 3*а/2
  35.  2*с|із| + d/4 + 23

Повернутися назад 


Додаток 2.

Вимоги до звіту.

Звіт по лабораторній роботі повинен відповідати наступній структурі.

  1.  Титульний аркуш.
  2.  Словесна постановка завдання. У цьому підрозділі проводиться повний опис завдання. Описується суть завдання, аналіз фізичних величин, що входять в неї, область їх допустимих значень, одиниці їх виміру, можливі обмеження, аналіз умов при яких завдання має рішення (не має рішення), аналіз очікуваних результатів.
  3.  Алгоритм розв’язання задачі. У підрозділі описується розробка структури алгоритму. Блок-схема алгоритму.
  4.  Лістинг програми. .
  5.  Контрольний тест. Підрозділ містить набори початкових даних і отримані в ході виконання програми результати.
  6.  Висновки по лабораторній роботі.
  7.  Відповіді на контрольні питання.

Повернутися назад 

PAGE  9

FILENAME \p C:\TEXNICUM_2012\ASM_2012\Lesson_ASM_01_MMK\Lab\ASM_01_MMK_I_lineynye_LAB_ukr.doc  DATE \@ "M/d/yyyy" 9/7/2013




1. Введение- В мировой практике под пропагандистскими коммуникациями принято понимать коммуникации связа.html
2.  для земнородных Два божества то Смерть и Сон Как брат с сестрою дивно сходных Она угрюмей кротче он
3. накопилось в хранилищах накопителях складах могильниках полигонах свалках и других объектах наблюдения
4. Доклад- Икарус
5. Genocide in Australia
6. История медной промышленности Урала XVIII-XX вв
7. Информатика Текстовый редактор
8. Игорь Стравинский
9. ТЕМА 1 БУХГАЛТЕРСЬКИЙ ОБЛІК ЙОГО ПРЕДМЕТ І МЕТОДТЕМА 2
10. Наследие Потебни и Веселовского
11. Цветок Жизни который проводился как живое подношение СОФИЯ 2001 МатериЗемле с 1985 по 1994 год.
12. Основи фінансової діяльності субєктів господарювання
13. передавать сообщать ~ это то в чем каждый из нас участвует ежедневно но лишь немногие делают это согласо
14. золотое сердце чистую как хрусталь душу благородство и голубиную неясность
15. Клонирование.html
16. 1] Натуральное хозяйство ~ изначальная форма организации производственной деятельности
17. ЛАБОРАТОРНАЯ РАБОТА 6 по теме - Определение положения центра изгиба тонкостенного стержня
18. .И.О. Группа ТЕСТ
19. перешагнули возрастной рубеж 60 лет
20. ПРАВОВОЕ РЕГУЛИРОВАНИЕ В СФЕРЕ БИОТЕХНОЛОГИИ В ЗАРУБЕЖНЫХ СТРАНАХ