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

  • Команды сопроцессора

  • 9305_АникинаАА. Курсовая работа по дисциплине архитектура эвм вариант 3 студентка группы 9305 Аникина Анна Проверил


    Скачать 0.6 Mb.
    НазваниеКурсовая работа по дисциплине архитектура эвм вариант 3 студентка группы 9305 Аникина Анна Проверил
    Дата08.12.2021
    Размер0.6 Mb.
    Формат файлаdocx
    Имя файла9305_АникинаАА.docx
    ТипКурсовая
    #295724
    страница6 из 7
    1   2   3   4   5   6   7

    2.2.6. Разработка системы команд


    Система команд включает следующие команды:

    1) обращения к памяти по чтению и записи;

    2) целочисленные арифметические для чисел со знаком и без знака (сложение, вычитание, умножение, деление, сравнение);

    3) арифметические с ПТ (сложение, вычитание, умножение, деление, сравнение);

    4) логические (поразрядное “И”, “ИЛИ” и “Исключающее ИЛИ”);

    5) сдвигов на произвольное число тактов;

    6) условных и безусловных переходов;

    7) работы с подпрограммами;

    8) загрузки в регистры непосредственных операндов;

    9) ввода-вывода;

    10) управления вычислительным процессом.




    Мнемоника

    Название

    Содержание

    Флаги

    Код

    Форматы команд

    Z

    C

    S

    O

    I

    T




    Арифметические операции с целыми числами

    1

    ADD

    Сложение

    R1<-R1+R2

    +

    +

    +

    +

    -

    -

    0000001

    1.1

    2

    ADDC

    Сложение с учетом переноса

    R1<-R1+R2+C

    +

    +

    +

    +

    -

    -

    0000010

    1.1

    3

    SUB

    Вычитание

    R1<-R1-R2

    +

    +

    +

    +

    -

    -

    0000011

    1.1

    4

    SUBC

    Вычитание с учетом переноса

    R1<-R1-R2-C

    +

    +

    +

    +

    -

    -

    0000100

    1.1

    5

    MUL

    Умножение

    без знака

    R2,R1<-R1*R2

    +

    +

    -

    -

    -

    -

    0000101

    1.1*

    6

    DIV

    Деление без знака

    R2,R1<-R1\R2

    +

    +

    -

    -

    -

    -

    0000110

    1.1*

    7

    CP

    Сравнение

    R1-R2

    +

    +

    +

    -

    -

    -

    0000111

    1.1

    Арифметические операции с числами с плавающей точкой




    8

    FADD

    Сложение

    F1<-F1+F2

    +

    -

    +

    +

    -

    -

    1000001

    1.1

    9

    FSUB

    Вычитание

    F1<-F1-F2

    +

    -

    +

    +

    -

    -

    1000010

    1.1

    10

    FMUL

    Умножение

    F1<-F1*F2

    +

    -

    +

    +

    -

    -

    1000011

    1.1

    12

    FDIV

    Деление

    F1<-F1/F2

    +

    -

    +

    +

    -

    -

    1000100

    1.1

    Логические операции




    13

    AND

    Поразрядное «И»

    R1<-R1&R2

    +

    -

    +

    -

    -

    -

    0001000

    1.1

    14

    OR

    Поразрядное «ИЛИ»

    R1<-R1|R2

    +

    -

    +

    -

    -

    -

    0001001

    1.1

    15

    XOR

    Поразрядное «Исключающее ИЛИ»

    R1<-R1xorR2

    +

    -

    +

    -

    -

    -

    0001010

    1.1

    16

    CPL

    Инверсия

    R1<-R1

    +

    -

    +

    -

    -

    -

    0001011

    1.3

    17

    SLL

    Логический сдвиг влево




    +

    +

    +

    -

    -

    -

    0001100

    1.3

    18

    SRL

    Логический сдвиг вправо




    +

    +

    +

    -

    -

    -

    0001101

    1.3

    19

    SRA

    Арифметический сдвиг вправо




    +

    +

    +

    -

    -

    -

    0001110

    1.3

    Переходы




    20

    JMP

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

    PC<=

    -

    -

    -

    -

    -

    -

    0001111

    1.4

    21

    JZ

    Переход по нулю

    if (R1 = 0)

    PC <- + K

    else

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010000

    2.2

    22

    JNZ

    Переход не по нулю

    if (R1 != 0)

    PC <- + K

    else

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010001

    2.2

    23

    JO

    Переход по переполнению

    if (O = 1)

    PC <- + K

    else

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010010

    2.2

    24

    JNO

    Переход не по переполнению

    if (O= 0)

    PC <- + K

    else

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010011

    2.2

    25

    JC

    Переход по переносу

    if (C = 1)

    PC <- PC + K

    else

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010100

    2.2

    26

    JNC

    Переход не по переносу

    if (C = 0)

    PC <- PC + K

    else

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010101

    2.2

    27

    JE

    Переход, если равны

    if (R1 = R2)

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010110

    2.1

    28

    JNE

    Переход, если не равны

    if (R1 != R2)

    PC <- PC + 1

    -

    -

    -

    -

    -

    -

    0010111

    2.1

    Команды работы с памятью




    29

    LDDW

    Загрузка двойного слова

    R1<-

    +

    -

    +

    -

    -

    -

    0011000

    1.4

    30

    LDW

    Загрузка слова

    R1<-

    +

    -

    +

    -

    -

    -

    0011001

    1.4

    31

    LDB

    Загрузка байта

    R1<-

    +

    -

    +

    -

    -

    -

    0011010

    1.4

    32

    STDW

    Запись двойного слова

    R1<-

    -

    -

    -

    -

    -

    -

    0011011

    1.4

    33

    STW

    Запись слова

    R1<-

    -

    -

    -

    -

    -

    -

    0011100

    1.4

    34

    STB

    Запись байта

    R1<-

    -

    -

    -

    -

    -

    -

    0011101

    1.4

    Специальные




    35

    MOV

    Запись в регистр значения

    R1<=R2

    +

    -

    +

    -

    -

    -

    0011110

    1.4

    36

    SFLG

    Запись регистра флагов

    R1<=F1



















    0011111

    1.4

    37

    LFLG

    Загрузка регистра флагов

    F1<=R1



















    0100000

    1.4

    38

    NOP

    Нет операции

    PC<=PC+1

    -

    -

    -

    -

    -

    -

    0100001

    1.2

    39

    CALL

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


    <=R3



















    0100010

    1.4

    40

    RET

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






















    0100011

    1.4

    41

    IN

    Ввод из порта

    R2<=



















    0100100

    1.4

    42

    OUT

    Вывод в порт

    <=R2



















    0100101

    1.4

    43

    INT

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


    <=R3

    F1<=R4

    -

    -

    -

    -

    -

    +

    0100110

    1.4

    45

    RETI

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






















    0100111

    1.4

    46

    WAIT

    Ожидать завершения вычисления сопроцессора






















    0101000

    1.4


    Пояснения к таблице
    1.1* - при умножении и делении результат записывается не только в содержимое регистра R1, но и в содержимое регистра R2
    Пояснения к командам
    IN R2, R1 – прочитать из порта R1 в регистр R2.

    OUT R1, R2 – записать в порт R1 значение регистра R2.
    Команды сопроцессора
    Все команды сопроцессора делятся на группы:

    1. Команды записи и чтения в регистры сопроцессора.

    2. Арифметические команды с плавающей точкой.


    сложение, вычитание, умножение, деление


    1. Графические команды


    Сопроцессор следит за операциями, поступающими на процессор, и если операция не предназначена сопроцессору, то он её игнорирует, иначе операция исполняется. Результат вместе с исключениями синхронно передается в центральный процессор.
    Сопроцессор может генерировать исключения:

    1. Переполнение

    2. Деление на ноль

    3. Неверная операция
    1   2   3   4   5   6   7


    написать администратору сайта