Скачиваний:
56
Добавлен:
09.05.2014
Размер:
1.87 Mб
Скачать

Лабораторная работа №8

Синтез команд базовой ЭВМ.

Работу выполнил студент 1120 группы Гришуль Евгений

Преподаватель: Афанасьев Д.Б.

2004 год.

Вариант №1.

Команда 7ххх

Адрес

Код

Комментарии

Назначение

B0

B1

B2

0100

4035

838F

РДБР

БРA, N, Z

GOTO ПРЕ(8F)

ЗАГРУЗКА (записать в аккумулятор содержимое ячейки памяти, на которую указывает адресная часть команды);

Команда Dххх

Адрес

Код

Комментарии

Назначение

D0

D1

D2

D3

F08F

0100

4004

838F

IF BIT(0,AK)=1 THEN GOTO ПРЕ(8F)

РДБР

БРCK

GOTO ПРЕ(8F)

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

Команда FСхх

Адрес

Код

Комментарии

Назначение

E0

E1

E2

E3

E4

E5

E6

E98F

E88F

0008

4045

0008

4075

838F

IF BIT(9,РК)=1 THEN GOTO ПРЕ(8F)

IF BIT(8,РК)=1 THEN GOTO ПРЕ(8F)

RAL(A)БР

БРA,C

RAL(A)БР

БРA,C,N,Z

GOTO ПРЕ(8F)

Циклический сдвиг влево на 2 разряда.

Программа проверки арифметической команды:

Адрес

Код

Мнемоника

Комментарии

010

011

012

013

014

015

016

017

018

FFFA

7010

A015

3017

C016

3018

F000

0000

0000

7ххх

BMI 15

MOV 17

BR 16

MOV 18

HLT

Число для проверки

Тестируемая команда

Если (A)<0 то 15СК

(A)17

16CK

(A)18

Останов

Ячейка для хранения положительного результата

Ячейка для хранения отрицательного результата

Программа проверки команды перехода:

Адрес

Код

Мнемоника

Комментарии

010

011

012

013

014

015

016

017

018

019

01A

01B

01C

01D

01E

01F

020

0020

F200

4010

D016

301D

С017

301E

F800

D01B

301F

С01C

3020

F000

0000

0000

0000

0000

CLA

ADD 10

Dxxx

MOV 1D

BR 17

MOV 1E

INC

Dxxx

MOV 1F

BR 1C

MOV 20

HLT

Число для проверки

0A

(A)+(10)A

Если (A)/2=int((A)/2) то 16СK

(A)1D

17CK

(A)1E

(A)+1A

Если (A)/2=int((A)/2) то 1BСK

(A)1F

1CCK

(A)20

Останов

Ячейка для хранения нечетного числа (1-я проверка)

Ячейка для хранения четного числа(1-я проверка)

Ячейка для хранения нечетного числа(2-я проверка)

Ячейка для хранения четного числа(2-я проверка)

Программа проверки безадресной команды:

Адрес

Код

Мнемоника

Комментарии

010

011

012

013

014

015

016

017

018

019

01A

0080

F200

4010

F500

FC00

3019

A018

301A

F000

0000

0000

CLA

ADD 10

CMC

FCxx

MOV 19

BMI 18

MOV 1A

HLT

Число для проверки

0A

(A)+(10)A

!(C)C

(A)<<=2

(A)19

Если (A)<0 то 18СК

(A)1A

Останов

Ячейка для хранения результата

Ячейка для хранения положительного результата

Экспериментальная таблица проверки команды 7xxx.

СчМК до выборки МК

Содержимое регистров после выборки и исполнения МК

РМК

СК

РА

РК

РД

А

С

БР

N

Z

СчМК

Команда 7010, расположенная по адресу 011

89

8301

011

000

0000

0000

0000

0

0000

0

1

01

01

0300

011

000

0000

0000

0000

0

0002

0

1

02

02

4001

011

011

0000

0000

0000

0

0011

0

1

03

03

0311

011

011

0000

7010

0000

0

0012

0

1

04

04

4004

012

011

0000

7010

0000

0

0012

0

1

05

05

0100

012

011

0000

7010

0000

0

0012

0

1

06

06

4003

012

011

7010

7010

0000

0

7010

0

1

07

07

AF0C

012

011

7010

7010

0000

0

7010

0

1

0C

0C

AB1D

012

011

7010

7010

0000

0

7010

0

1

1D

1D

EF2D

012

011

7010

7010

0000

0

7010

0

1

1E

1E

0100

012

011

7010

7010

0000

0

7010

0

1

1F

1F

4001

012

010

7010

7010

0000

0

7010

0

1

20

20

EE27

012

010

7010

7010

0000

0

7010

0

1

27

27

0001

012

010

7010

FFFA

0000

0

0000

0

1

28

28

AD2B

012

010

7010

FFFA

0000

0

0000

0

1

29

29

AC43

012

010

7010

FFFA

0000

0

7010

0

1

2A

2A

83B0

012

010

7010

FFFA

0000

0

7010

0

1

B0

B0

0100

012

010

7010

FFFA

0000

0

0802

0

1

B1

B1

4035

012

010

7010

FFFA

FFFA

0

FFFA

1

0

B2

B2

838F

012

010

7010

FFFA

FFFA

0

FFFA

1

0

8F

8F

8788

012

010

7010

FFFA

FFFA

0

0004

1

0

88

88

4008

012

010

7010

FFFA

FFFA

0

0004

1

0

89

Команда A015, расположенная по адресу 012

88

4008

015

012

A015

A015

FFFA

0

0004

1

0

89

Команда 3018, расположенная по адресу 015

88

4008

016

018

3018

FFFA

FFFA

0

0004

1

0

89

Команда F000, расположенная по адресу 016

88

4008

017

016

F000

F000

FFFA

0

F000

1

0

89