Главная страница
Навигация по странице:

  • Режим микрокоманд

  • Микрокомандный уровень

  • Вспомогательные таблицы В данном разделе представлены вспомогательные таблицы (табл. 8.4—8.8) для работы с моделью учебной ЭВМ.Таблица 8.4.

  • Обозначение Код Тип адресации

  • Текст программы

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



    Скачать 336.5 Kb.
    НазваниеПрактическая работа Тема Построение последовательности машинных операций для реализации простых вычислений
    АнкорПрактическая работа_последов.doc
    Дата18.12.2017
    Размер336.5 Kb.
    Формат файлаdoc
    Имя файлаПрактическая работа_последов.doc
    ТипПрактическая работа
    #12969
    КатегорияИнформатика. Вычислительная техника
    страница2 из 3
    1   2   3

    Окно Микрокомандный уровень

    Окно Микрокомандный уровень (рис. 8.8) используется только в режиме микрокоманд, который устанавливается командой Режим микрокоманд меню Работа. В это окно выводится мнемокод выполняемой команды, список микрокоманд, ее реализующих, и указатель на текущую выполняемую микрокоманду.

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

    Если открыть окно Микрокомандный уровень, не установив режим микрокоманд в меню Работа, то после начала выполнения программы в режиме Шаг (или в автоматическом режиме) в строке сообщений окна будет выдано сообщение "Режим микрокоманд неактивен".



    Рис. 8.8. Окно Микрокомандный уровень



    Рис. 8.9. Окна в режиме микрокомандного уровня

    Вспомогательные таблицы

    В данном разделе представлены вспомогательные таблицы (табл. 8.4—8.8) для работы с моделью учебной ЭВМ.

    Таблица 8.4. Таблица команд учебной ЭВМ

    Мл/Ст.

    0

    1

    2

    3

    4

    0

    NOP

    JMP




    MOV




    1

    IN

    JZ

    RD

    RD

    RDI

    2

    OUT

    JNZ

    WR

    WR




    3

    IRET

    JS

    ADD

    ADD

    ADI

    4

    WRRB

    JNS

    SUB

    SUB

    SBI

    5

    WRSP

    JO

    MUL

    MUL

    MULI

    6

    PUSH

    JNO

    DIV

    DIV

    DIVI

    7

    POP

    JRNZ




    IN




    8

    RET

    INT

    EI

    OUT




    9

    HLT

    CALL

    DI








    Таблица 8.5. Типы адресации, их коды и обозначение

    Обозначение

    Код

    Тип адресации

    Пример команды




    0

    Прямая (регистровая)

    ADD 23 (ADD R3)

    #

    1

    Непосредственная

    ADD #33

    @

    2

    Косвенная

    ADD @33

    [ ]

    3

    Относительная

    ADD [33]

    @R

    4

    Косвенно-регистровая

    ADD @R3

    @R+

    5

    Индексная с постинкрементом

    ADD @R3+

    -@R

    6

    Индексная с преддекрементом

    ADD -@R3

    В табл. 8.6 приняты следующие обозначения:
    DD— данные, формируемые командой в качестве (второго) операнда: прямо или косвенно адресуемая ячейка памяти или трехразрядный непосредственный операнд;

    R* — содержимое регистра или косвенно адресуемая через регистр ячейка памяти;

    ADR* — два младших разряда ADR поля регистра CR;

    V — адрес памяти, соответствующий вектору прерывания;

    М(*) — ячейка памяти, прямо или косвенно адресуемая в команде; I — пятиразрядный непосредственный операнд со знаком.
    Таблица 8.6. Система команд учебной ЭВМ

    КОП

    Мнемокод

    Название

    Действие

    00

    NOP

    Пустая операция

    Нет

    01

    IN

    Ввод

    Асc <-IR

    02

    OUT

    Вывод

    OR <- Асc

    03

    I RET

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

    FLAGS.PC <- M(SP); INC(SP)

    04

    WRRB

    Загрузка RB

    RB <- CR[ADR]

    05

    WRSP

    Загрузка SP

    SP <- CR[ADR]

    06

    PUSH

    Поместить в стек

    DEC(SP); M(SP) <- R

    07

    POP

    Извлечь из стека

    R -> M(SP); INC(SP)

    08

    RET

    Возврат

    PC -> M(SP); INC(SP)

    09

    HLT

    Стоп

    Конец командных циклов

    10

    JMP

    Безусловный переход

    PC <- CR[ADR]

    11

    JZ

    Переход, если 0

    if Acc = 0 then PC <- CR[ADR]

    12

    JNZ

    Переход, если не 0

    if Асc <>0 then PC <-CR[ADR]

    13

    JS

    Переход, если отрицательно

    if Асc < 0 then PC <- CR[ADR]

    14

    JNS

    Переход, если положительно

    if Acc > 0 then PC <- CR[ADR]

    15

    JO

    Переход, если переполнение

    if |Acc| > 99999 then PC <- CR[ADR]

    16

    JNO

    Переход, если нет переполнения

    if |Acc| < =99999 then PC <- CR[ADR]

    17

    JRNZ

    Цикл

    DEC(R); if R > 0 then PC <- CR[ADR]

    18

    INT

    Программное прерывание

    DEC(SP); M(SP) <- FLAGS.PC;

    PC <- M(V)

    19

    CALL

    Вызов подпрограммы

    DEC(SP); M(SP) <- PC; PC <- CR(ADR)

    20

    Нет







    21

    RD

    Чтение

    Acc <- DD

    22

    WR

    Запись

    M(*) <- Acc

    23

    ADD

    Сложение

    Acc <- Acc + DD

    24

    SUB

    Вычитание

    Acc <- Acc – DD

    25

    MUL

    Умножение

    Acc <- Acc x DD

    26

    DIV

    Деление

    Acc <— Acc/DD

    27

    Нет







    28

    EI

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

    IF<- 1

    29

    DI

    Запретить прерывание

    IF<-0

    30

    MOV

    Пересылка

    Rl <-R2

    31

    RD

    Чтение

    Acc <- R*

    32

    WR

    Запись

    R* <- Acc

    33

    ADD

    Сложение

    Acc<-Acc + R*

    34

    SUB

    Вычитание

    Acc <- Acc - R*

    35

    MUL

    Умножение

    Acc <- Acc x R*

    36

    DIV

    Деление

    Acc <- Acc/R*

    37

    IN

    Ввод

    Acc <- ВУ(CR[ADR*])

    38

    OUT

    Вывод

    BУ(CR[ADR*]) <- Асс

    39

    Нет







    40

    Нет







    41

    RDI

    Чтение

    Асс <-I

    42

    Нет







    43

    ADI

    Сложение

    Асc <— Асc + I

    44

    SBI

    Вычитание

    Асc <- Асc - I

    45

    MULI

    Умножение

    Асc <- Асc х I

    46

    DIVI

    Деление

    Асc <- Асс/I


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

    Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.
    1   2   3
    написать администратору сайта