Програмна модель навчальної ЕОМ G1

Автор: Пользователь скрыл имя, 23 Февраля 2012 в 20:12, курсовая работа

Описание работы

Мікропроцесори мають, як правило, обмежені можливості введення-висновку програм і оброблюваних даних, що утрудняє виконання робіт з налагодження програм. Такі роботи також утруднені або ж узагалі неможливі при розробці нових мікропроцесорних систем. Усе це стимулює використання універсальних ЕОМ G1 для налагодження програм мікроEOM і мікропроцесорів, тобто використання методики эмуляции програми.

Содержание

Вступ

1. Навчальна обчислювальна машина G1.
1.1 Архітектура ЕОМ G1.
1.2 Система команд.
1.3 Принцип роботи ЕОМ G1.

2. Програмування в кодах навчальної ЕОМ G1.
2.1 Програмування формул.
2.2 Циклічна програма з розвилками.
2.3 Виконання логічних команд із використанням підпрограм.
2.4 Додаткові режими емулятора.

3. Програмна модель навчальної ЕОМ G1.
3.1 Призначення й область застосування.
3.2 Технічні характеристики програми.
3.3 Опис програми.

Висновок.

Работа содержит 1 файл

ПЗ.doc

— 783.00 Кб (Скачать)

 

Результат арифметичної операції використовується для формування в регістрі RP ознаки S (S = 1, якщо результат менше нуля), Z (Z = 1, якщо результат дорівнює нулю) або C (C = 1, якщо відзначена некоректність виконання операції - переповнення акумулятора або спроба ділення на нуль). Необхідні зміни регістра RP відображені в табл.11.

Для логічних операцій проводиться лише аналіз результату на рівність нулю: S = 1, якщо результат операції не дорівнює нулю; Z = 1, якщо цей результат дорівнює нулю.

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

Сутність зміни регістра RP розглянемо на конкретному прикладі. Припустимо, що в програмі виконана команда додавання і при цьому отримано негативний результат. Тоді в стан «1» повинен бути встановлений лише перший біт регістра RP, інші біти повинні бути скинуті на нуль.

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

У командах «Умовний перехід по S» і «Умовний перехід по Z» формування адреси  і передача його в лічильник SAK провадиться, якщо значення відповідного ознаки дорівнює одиниці.

У регістрі RP немає біта, що встановлюється в 1, якщо результат арифметичної операції позитивний. Тут мається на увазі, що якщо результат такої операції не негативний і не нульовий, то він позитивний. Отже, в цьому випадку перші три біти регістра RP повинні бути встановлені в нульове положення.

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

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

При зверненні до підпрограми повинні бути виконані дві дії: передача управління на початковий ділянку підпрограми і повернення в зухвалу програму після відпрацювання підпрограми. Ця робота в ЕОМ G1 виконується фактично однією командою «Виклик підпрограми». Звернення до підпрограми має певні особливості. Тут передбачається, що команда повернення з підпрограми повинна знаходитися в першій команді підпрограми, а в останній її команді повинен бути безумовний перехід на першу команду. Адреса , що вказується в команді «Виклик підпрограми» - це адреса першої команди підпрограми. У своїй роботі команда «Виклик підпрограми» здійснює такі дії:

- Записує в першу клітинку підпрограми команду 1110 00 SAK, де в якості коду операції вказаний безумовний перехід, а в адресній частині знаходиться поточний зміст лічильника SAK, тобто адресу команди, записаної в зухвалій програмі після команди звернення до підпрограми;

- Пересилає в SAK адресу 

Тобто адреса другої команди підпрограми, з якої фактично починається її виконання. Команда «Інкремент осередку» використовується для реалізації циклічних алгоритмів. Як виконавчий адреси  в цій команді вказують адресу лічильника циклів, в який спочатку заносять від'ємне значення кількості повторень циклу. При кожному виконанні команди «Інкремент осередку» проводиться збільшення лічильника на одиницю і, коли це значення стане нульовим, виконується пропуск наступної команди, в якості якої записують безумовну передачу управління на початок циклу.

При виконанні команди «Інкремент комірки» сформований адресу  з поля А регістра команд RK надходить в регістр RA, потім з ОЗУ вибирається осередок з адресою  , І її вміст через регістр RS надходить на другий вхід АЛП. В АЛП до надійшов чисельному значенню додається одиниця, і результат через регістр RS повертається в ОЗУ за колишньою адресою. За значенням результату формується ознака Е регістра RP. Якщо результат дорівнює нулю, то встановлюється значення Е = 1, в іншому випадку записується Е = 0. Якщо Е = 1, то вміст лічильника SAK збільшується на одиницю, що призводить до пропуску наступної команди.


2. ПРОГРАМУВАННЯ В КОДАХ НАВЧАЛЬНОЇ ЕОМ G1

 

2.1         Програмування формул

              Таблиця 2. Мнемомокод тесту 1

адрес

метки

мнемокод

операнды

Hex

1

 

Load

0,0,a

0416

2

 

Mul

0,0,a

1416

3

 

Add

0,0,c1

0C1E

4

 

Mul

0,0,c18

1419

5

 

Load

1,0,b

0617

6

 

Mul

1,0, c288

161A

7

 

Save

1,0,y

0A18

8

 

Sub

0,0,y

1018

9

 

Save

0,0,y

0818

10

 

Load

0,0,a

0416

11

 

Mul

0,0,c22

141B

12

 

Load

1,0,b

0617

13

 

Mul

1,0,c8

161C 

14

 

Save

1,0,b

0A17

15

 

Add

0,0,b

0C17

16

 

Load

1,0,y

0618

17

 

Save

0,0,y

0818

18

 

Div

1,0,y

1A18

19

 

Sub

1,0,c60

121D

20

 

Save

1,0,y

0A18

21

 

halt

-

0000

22

A

Dw

9

0009

23

B

Dw

-10

FFF6

24

Y

Dw

0

0000

25

C18

Dw

18

0012

26

C288

Dw

288

0120

27

C22

Dw

22

0016

28

C8

Dw

8

0008

29

C60

Dw

60

003C 

30

C1

dw

1

0001

Тест 1

  а=9  в=-10 у=-24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

             


Мал.2 Дамп пам’яті до виконання теста 1               після виконання теста 1

 


 

 

 

 


2.2. Циклічна програма з розвилками.

Тест 2              Таблиця 3. Мнемомокод тесту 2

адрес

метки

мнемокод

операнды

HEX

1

M0 

Load

0,1, adr x

052A

2

 

Sub

0,0,a

1026

3

 

Js

M1

300D

4

 

Jz

M2

3415

5

 

Load

0,1,adr x

052A

6

 

Add

0,0,a

0C26

7

 

Load

1,1, adr x

072A

8

 

Sub

1,0,a

1226

9

 

Save

1,0,tmp

0A27

10

 

Div

0,0,tmp

1827

11

 

Save

0,1, adr y

092B

12

 

Jmp

M3

3817

13

M1

Load

0,1,adr x

052A

14

 

Add

0,0,a

0C26

15

 

Load

1,1,adr x

072A

16

 

Sub

1,0,a

1226

17

 

Save

1,0,tmp

0A27

18

 

Mul

0,0,tmp

1427

19

 

Save

0,1, adr y

092B

20

 

Jmp

M3

3817

21

M2

Load

0,0,a

0426

22

 

Save

0,1, adr y

092B

23

M3

Load

0,0, adr x

042A

24

 

Add

0,0,c1

0C28

25

 

save

0,0,adr x

082A

26

 

Load

0,0, adr y

042B

27

 

Add

0,0,c1

0C28

28

 

Save

0,0,adr y

082B

29

 

Inc

0,0,c3

2C29

30

 

Jmp

Mo

3801

31

 

Halt

-

0000

32

X1

Dw

-30

FFE2

33

X2

Dw

60

003C 

34

X3

Dw

100

0064

35

Y1

Dw

0

0000

36

Y2

Dw

0

0000

37

Y3

Dw

0

0000

38

A

Dw

60

003C 

39

Tmp

Dw

0

0000

30

C1

Dw

1

0001

30

C3

Dw

-3

FFFD

30

Adrx

Dw

32

0020

30

adry

Dw

35

0023

 

 

 

 

 


Мал.3 Дамп пам’яті до виконання теста 2               після виконання теста

                                                                                                            
 

 

2.3 Виконання логічних команд із використанням підпрограм.

Тест 3              Таблиця 4. Мнемомокод тесту 3

адрес

метки

мнемокод

операнды

HEX

1

mo

Call

M1

3C0E

2

 

Load

0,0,adr a

041E

3

 

Add

0,0,c1

0C1C

4

 

Save

0,0,adr a

081E

5

 

Load

0,0,adr b

041F 

6

 

Add

0,0, c1

0C1C

7

 

Save

0,0, adr b

081F 

8

 

Load

0,0, adr y

0420

9

 

Add

0,0, c1

0C1C

10

 

Save

0,0, adr y

0820

11

 

Inc

C2

2C1D

12

 

Jmp

M0

3801

13

 

Halt

-

0000

14

M1

Адрес возврата

0

0000

15

 

Load

0,1,adr a

051E

16

 

Subm

0,1,adr b

1D1F

17

 

And

0,1,adr a

211E

18

 

Or

0,1, adr b

251F 

19

 

Xor

0,1,adr a

291E

20

 

Save

0,1, adr y

0920

21

 

Jmp

M1

380E

22

A1

dw

-10

FFF6

23

A2

dw

-5

FFFB

24

B1

dw

-4

FFFC

25

B2

dw

-1

FFFF

26

Y1

dw

0

0000

27

Y2

dw

0

0000

28

C1

dw

1

0001

29

C2

dw

-2

FFFE

30

Adr a

dw

22

0016

31

Adr b

dw

24

0018

32

Adr y

dw

26

001A

 

   

a1=-10    a2=-5     b1=-4        b2=-1    у1=8    y2=4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мал.4Дамп пам’яті до виконання теста 3               після виконання теста

 

 


 


2.4 Додатковий режим емулятора.

 

Використовуючи процедури GetDate і GetTime, вивести на екран інформацію про поточну дату і поточний час в наведеному нижче вигляді.

Перший рядок: "15 січня 2011 року".

Другий рядок: "10 годині 15 хвилин 32 секунди".

При цьому залежно від значень числівників треба формувати відповідний відмінок іменника. Наприклад, 10 хвилин, але 21 хвилина, 22 хвилини.

 

 

 

Мал.5 Додатковий режим емулятора
3. ПРОГРАМНА МОДЕЛЬ НАВЧАЛЬНОЇ ЕОМ G1

 

3.1 Призначення й область застосування.

 

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

Програма-емулятор повинна володіти наступними характеристиками:

      повністю відповідати архітектурі пристрою, що моделюється ;

      програма-емулятор повинна моделювати гранично жорсткі умови роботи фізичного пристрою;

      програма повинна обробляти як можна більшу кількість станів фізичного пристрою;

      програма повинна забезпечувати перевірку правильності роботи всіх блоків пристрою, що досліджуються;

 

3.2 Технічні характеристики програми

Програма містить головну частину та 5 допоміжних модулів.

Взагалі робочий файл програми Project1.exe має об’єм 553 КБ (566 272 байт)

Детальна інформація приведена у таблиці 5

Таблиця 5

Модуль

Розмір

Примітка

1

Unit1

9,20 КБ (9 421 байт)

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

 

2

COMMAND

9,39 КБ (9 617 байт)

містить реалізацію усіх команд емулюємої машини G1

3

ad

3,17 КБ (3 254 байт)

містить допоміжні процедури

4

Rab

2,36 КБ (2 423 байт)

містить глобальний опис констант, типів та змінних

5

Unit2

1,93 КБ (1 983 байт)

Додатковий режим емулятора

Информация о работе Програмна модель навчальної ЕОМ G1