Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫЙ ПРАКТИКУМ 2012.docx
Скачиваний:
24
Добавлен:
16.08.2019
Размер:
1.27 Mб
Скачать

Варианты заданий для лабораторной работы

Варианты заданий для лабораторной работы выбираются из таблицы 3.

Таблица 3

№ п/п

задание

1

Y= min(A,B,C)*min(F,D,E) + min(K,N,L);

2

Y= min(B2+K2,A), где B=min(C,D), K=min(E2/2,F);

3

Y= min(A,B,C)-max(F,D,E)/ min(K,N,L);

4

Y= max(A,B,C)-min(F,D,E)/ min(K,N,L);

5

Y= P(X2) - P(X-1) +P(X), где P(Z)=azn-an+1;

6

Y= AZN+BQP+CO(N/2);

7

Y=XP(A,D) + ZP(B,E) /GP(C,K) , где P(S,K)=S2/K + D - 1;

8

Y= X(AB/C) - P(D/K);

9

Y= (A+B)ZN/DKP+CS(N/2);

10

11

12

13

Y= F(1) - F(T) +F2(S-T) - F3(1) , где F(X)=ax2+bx+c;

14

Y= F(A,B,C) + F(D,E,K), где F(X,N,M)= XN – M2;

15

Y= min(F(A,B,C),F(D,E,K) + max(F(D,E,K),F(L,Q,G)), где F(X,N,M)= XN – M2;

16

Y=F(S,T) + max(F(F(S+T,S*T),S*T2), F2(S-T,S/T)), где F(A,B)=(A2+1)/B

17

Y= F(A,B,C)/ F(D,E,K) + F(D,E,K), где F(X,N,M)= XN – M2;

18

Y=A!+(B-C)!/F!;

19

Y= F(1,1)+F(S,T) + max(F(F(S+T,S*T),S*T2), F2(S-T,S/T)), где F(A,B)=(A2+B)/A

20

Y= F(1)* F(T) +F2(S-T)/ F3(1) , где F(X)=ax2+bx+c;

21

Y= F(A,B,C)* F(L,J,Q) + F(D,E,K), где F(X,N,M)= XN – M2;

22

Y= F(S,T) + max(F(S-T,S*T),F2(S-T,S+T)) +F(1,1), где

F(A,B)= (B2+1)/A;

23

Y= min(F(1),..., F(n))N + min(C(1),..., C(k))K

24

Y= (max(A,A+B) * max(A,B+C))/(1+ max(A+B*C,D));

25

Y= F(1) - F(S+T) +F2(S-T) - F3(1) , где F(X)=ax2+bx+c;

Тема: Организация прерываний

Цель лабораторной работы:

Данная лабораторная работа посвящена знакомству с аппаратными и программными прерываниями и механизмами их обработки.

Задание к лабораторной работе:

- изучить соответствующий теоретический материал, используя конспекты и литературу;

- на примере функциональной модели ЭВМ-2 ознакомиться с командами организации и обработки аппаратных и программных прерываний;

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

- оформить отчет по лабораторной работе.

Пример реализации программы

Ниже рассматривается уже известная программа вычисления суммы степеней, к которой добавлен небольшой отладчик, работающий в режиме прерываний и позволяющий в любой момент времени в ходе выполнения программы изменить содержимое регистров модели и любой ячейки памяти, после чего продолжить выполнение программы с точки прерывания.

адрес

код

мнемокод

комментарий

00

.org 08

; вектоp пpеpывания для выхода в отладчик

08

b0

.db 0b0

09

.org 10

; начало программы с адреса 10h

10

40

in 0

; ввод z

11

0a

mov b,a

;

12

41

in 1

; ввод n

13

19 39

stor b,z

; запомнить z

15

31 01

mvi b,1

;

17

19 3b

stor b,I

; i:=1

19

31 00

mvi b,0

;

1b

19 3a

stor b,Y

; Y:=0

1d

20

cycl: push a

; сохранить счетчик цикла

1e

20

push a

; зарезервировать ячейку стека для zi

1f

10 3b

load a,I

21

20

push a

; записать в стек текущее значение I

22

10 39

load a,z

24

20

push a

; записать в стек значение z

25

c0 3c

call power

; вызов п/п вычисления степени

27

28

pop a

; извлечь z из стека

28

28

pop a

; извлечь i из стека

29

29

pop b

; извлечь zi из стека и записать в rB

2a

59 3a

adm b,Y

; Y:=Y+ZI

2c

19 3a

stor b,Y

; запомнить новое значение Y

2e

60 01

adi a,1

; I:=I+1;

30

18 3b

stor a,I

; запомнить новое значение I

32

28

pop a

; восстановить счетчик цикла из стека

33

e0 1d

loop a,cycl

; замкнуть цикл

35

10 3a

load a,Y

; в rA - Y

37

4a

out 2

; вывести результат в канал 2

38

f8

stop

39

00

Z: .ds 1

3a

00

Y: .ds 1

3b

00

I: .ds 1

3c

31 01

power: mvi b,1

; p:=1 - результат изначально равен 1

3e

14 83

load a,3(sp)

; в rA - показатель степени- счетчик цикла

40

20

intcyc: push a

; сохранить счетчик цикла

41

8c 83

mum a,3(sp)

; p:=p*z

43

28

pop a

; восстановить из стека счетчик цикла

44

e0 40

loop a,intcyc

; замкнуть цикл

46

1d 84

stor b,4(sp)

; запомнить y:=zi

48

c8

ret

; возврат в вызывающую программу

; Пример очень маленкого отладчика программ для модели ЭВМ 2.

; обеспечивает корректировку содержимого ячеек памяти и регистров

; функция 0 - завершение работы;

; функция 1 - корректировка регистров

; функция 2 - корректировка содержимого памяти

; отладчик получает управление через внешнее прерывание 0

; (вектор прерывания - 08)

b0

.org 0b0

; отладчик размещается с адреса B0

b0

f0

di

; запpетить пpеpывания

b1

20

push a

; (ra)¯(sp) сохранить rA в стеке

b2

21

push b

; (rB)¯(sp) сохранить rB в стеке

b3

40

fun: in 0

; ввести номер функции

b4

b0 00

cmi a,00

; номер функции 0 ?

b6

ba c2

jz exit

; на завершение работы отладчика

b8

b0 01

cmi a,01

; номер функции 1 ?

ba

ba c6

jz reg

; на модификацию регистров

bc

b0 02

cmi a,02

; номер функции 2 ?

be

ba d4

jz mem

; на модификацию ячеек памяти

c0

b8 b3

jmp fun

; иначе повтор ввода номера функции

c2

29

exit: pop b

; (sp)­(ra) Восстановить rA

c3

28

pop a

; (sp)­(rB) восстановить rB

c4

e8

ei

; разрешить прерывания

c5

d8

rin

; возврат из прерывания

; модификация содержимого регистров программы

c6

14 82

reg: load a,02(sp)

; (rA) - содержимое rA из стека

c8

48

out 0

; (rA) -> port 0

c9

14 81

load a,01(sp)

; (rA) - содержимое rB из стека

cb

49

out 1

; (rA) -> port 1

cc

40

in 0

; ввести новое содержимое (rA)

cd

1c 82

stor a,02(sp)

; запомнить новое содержимое rA

cf

41

in 1

; ввести новое содержимое rB

d0

1c 81

stor a,01(sp)

; запомнить новое содержимое rB

d2

ba b3

jz fun

; перейти на ввод номера функции

; модификация содержимого ячеек памяти программы

d4

40

mem: in 0

; ввод ядреса модифицируемой ячейки

d5

0a

mov b,a

;

d6

14 40

load a,00(b)

; (rA) <- содержимое ячейки с адр в (rB)

d8

48

out 0

; вывод содержимого яч. памяти в канал 0

d9

40

in 0

; ввод обновленного содержимого ячейки

da

1c 40

stor a,00(b)

; и запись по относительному адресу

dc

ba b3

jz fun

; переход на ввод фукции

Варианты заданий к лабораторной работе

Варианты заданий к лабораторной работе выбираются из таблицы 3.