Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_ABC.doc
Скачиваний:
11
Добавлен:
17.09.2019
Размер:
6.14 Mб
Скачать

Формат одноадресной эвм

КОП

Адрес

операнда1

Однако при таком сокращении требуются дополнительные аппаратные средства для хранения второго операнда. Прежде всего, для этого нужно ввести специальную ячейку, некий регистр – аккумулятор, (АСС или (А)). Он предназначен для хранения операнда, а также результата соответствующей операции. А также необходимо опять же расширить множество команд на две операции: загрузки (LAC A) и освобождения аккумулятора (DAC A). Команда загрузки аккумулятора помещает содержимое ячейки памяти в регистр ACC, а команда выгрузки выполняет обратную операцию.

A = (B*C) - (D*E)

1

РС

LAC

D

(ACC)(D)

2

РС+1

MUL

E

(ACC)(ACC)*(E)

3

РС+2

DAC

T1

(T1)(ACC)

4

РС+3

LAC

B

(ACC)(B)

5

РС+4

MUL

C

(ACC)(ACC)*(C)

6

РС+5

SUB

T1

(ACC)(ACC)-(T1)

7

РС+6

DAC

A

(A)(ACC)

8

РС+7

STOP

Формат безадресной ЭВМ

Убирая еще одно поле «Адрес операнда 1», получаем безадресную ЭВМ. Команда в таких ЭВМ состоит только из кода операции.

В машинах такого типа реализована особая структура данных, типа стек (stack). Стек – это особым способом организованный участок оперативной памяти (так называемая стековая или магазинная память). Существуют два основных способа работы со стеком: принцип 1)LIFO (Last-In-First-Out) - «последний поступивший обслуживается первым» и принцип 2)FIFO (First-In-First-Out) - «первый поступивший обслуживается первым».

  1. указатель стека хранит адрес верхушки стека. При записи в стек его содержимое увеличивается на 1, а при выталкивании - уменьшается на 1.

  2. Данные поступают в стек по 8 разрядов одновременно, содержимое указателя стека при этом уменьшается на 1, чтобы всегда указывать на дно свободного пространства стека. Когда данные выталкиваются из стека, содержимое указателя стека увеличивается на 1 с каждым выбранным байтом

1

SP

РС

PUSH

D

(ACC1)(D)

2

SP-1

РС+1

PUSH

E

(ACC2)(Е)

3

SP

РС+2

MUL

Результат помещен в стек

4

SP-1

РС+3

PUSH

B

(ACC1)(В)

5

SP-2

РС+4

PUSH

С

(ACC2)(С)

6

SP-1

РС+5

MUL

Результат помещен в стек

7

SP

РС+6

SUB

8

РС+7

POP

A

9

РС+8

STOP