Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КP схемотехника =МУ=.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.17 Mб
Скачать

Словесная характеристика состава команд позволяет рационально организовать формат команды при вертикальном микропрограммировании, выполнять как дешифрацию команд, так и адресную выборку операндов.

  1. Таблица кодирования команд.

Таблица кодирования команд является завершением аналитической разработки формата вертикального микропрограммирования всех команд.

Анализируя словесные характеристики исполняемых команд, на основании вертикального кодирования и структуры их формата, можно сделать вывод, что команды, приведенные в ТЗ подразделяются на:

  • безадресные – возврат из подпрограммы обработки прерываний (11);

  • безадресные с константой – переход по условию (1), абсолютный вызов подпрограммы (2);

  • одноадресные – сброс содержимого РОНа (3), перевод в дополнительный код содержимого РОНа (6), декремент содержимого РОНа (7), сохранение в стеке содержимого регистра (10); функция преобразования кода (12);

  • двухадресные – сложение содержимого двух РОН с переносом (4), сложение содержимого двух РОН (5), пересылка данных между двумя РОНами (8), косвенное чтение данных в РОН из ячейки памяти данных (9).

Обобщив краткие словесные характеристики исполняемых команд, формируется таблица их вертикального кодирования, исполняемая центральным процессорным элементом, как показано в табл. 4.

Таблица 4.

Кодирование всех ассемблерных команд.

Мнемоническое обозначение команды

Код коман-ды

Слов

Формат ассемблерной команды.

коли-чество

номер

6

5

4

3

2

1

0

3

6

7

CLR Rd; NEG Rd; DEC Rd.

**

1

1

Rd

КОп – 1, 2, 3

CLR R11; (обнулить регистр 11)

59h

1

1

1

0

1

1

0

0

1

CLR R1; (обнулить регистр 1)

09h

1

1

0

0

0

1

0

0

1

NEG R7; (перевод в доп. код рег. 7)

3Ah

1

1

0

1

1

1

0

1

0

NEG R9; (перевод в доп. код рег. 9)

4Ah

1

1

1

0

0

1

0

1

0

DEC R8; (уменьшить на 1 регистр 8)

43h

1

1

1

0

0

0

0

1

1

DEC R12; (уменьшить на 1 регистр 12)

63h

1

1

1

1

0

0

0

1

1

10

PUSH Rr;

**

1

1

Rr

КОп – 4

PUSH R7; (внести в стек регистр 7)

3Ch

1

1

0

1

1

1

1

0

0

PUSH R1; (внести в стек регистр 1)

0Ch

1

1

0

0

0

1

1

0

0

8

MOV Rd, Rr;

**

2

1

Rr

КОп – 5

2

Rd

резерв

MOV R13, R5; (данные регистра 5 внести в регистр 13)

6D,28h

2

1

1

1

0

1

1

0

1

2

0

1

0

1

*(0)

*(0)

*(0)

12

FUN1 Rd, PORTB;

**

1

1

Rd

КОп – 6

FUN1 R5, PORTB; (в регистр 5 вносится двоичный код с выходов ПК)

2Eh

1

1

0

1

0

1

1

1

0

1

BREQ k;

**

2

1

ДКОп – 15

КОп – 7

2

Константа перехода – k

BREQ 117; (переход на минус 53 слова, при установленном флаге Z )

7F,75h

2

1

1

1

1

1

1

1

1

2

1

1

1

0

1

0

1

9

LD Rd, Z;

**

2

1

Z

ДКОп – 2

КОп – 7

2

Rd

резерв

LD R5, Z; (данные ячейки памяти адр. которой указан в рег.Z внести в рег. 5)

77,28h

2

1

1

1

1

0

1

1

1

2

0

1

0

1

*(0)

*(0)

*(0)

2

CALL K

**

4

1

ДКОп – 0

КОп – 7

2

Константы абсолютного вызова подпрограммы – k (три слова)

3

4

CALL 5DF5h; (переход по абсолютному адресу вызываемой подпрограммы 5DF5h)

07,

5DF5h

4

1

0

0

0

0

1

1

1

2

1

1

1

0

1

0

1

3

0

1

1

1

0

1

1

4

*(0)

*(0)

*(0)

*(0)

*(0)

0

1

4

5

ADC Rd, Rr;

ADD Rd, Rr;

**

2

1

ДКОп – 12, 4

КОп – 7

2

Rd

Rr

ADC R8, R5; (сложение с учетом переноса, содержимого регистров 8 и 5)

67,45h

2

1

1

1

0

0

1

1

1

2

1

0

0

0

1

0

1

ADD R10, R7; (сложение содержимого регистров 10 и 7)

27,57h

2

1

0

1

0

0

1

1

1

2

1

0

1

0

1

1

1

11

RET I

**

1

1

ДКОп – 8

КОп – 7

RET I; (возврат из прерывания)

47h

1

1

1

0

0

0

1

1

1

П римечания к таблице 2. ** – выделены коды без указания конкретных регистров; .  выделены ключевые поля дополнительного кода;  выделены определяющие поля дополнительного кода.