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

  • Цель работы

  • Архитектура ЭВМ лабораторная работа 1. Лабораторная работа 1. Лабораторная работа 1 Ознакомление с работой мп кр580 и работой эмулятора emКР580


    Скачать 2.87 Mb.
    НазваниеЛабораторная работа 1 Ознакомление с работой мп кр580 и работой эмулятора emКР580
    АнкорАрхитектура ЭВМ лабораторная работа 1
    Дата28.01.2022
    Размер2.87 Mb.
    Формат файлаdocx
    Имя файлаЛабораторная работа 1.docx
    ТипЛабораторная работа
    #344612





















    Лабораторная работа 1

    Ознакомление с работой МП КР580 и работой эмулятора emКР580


    Тимиров И. Х. ст. гр. ЗИВТ-181

    Цель работы:

    1. Ознакомиться с руководством пользования эмулятором emКР580 (п. 1.1).

    2. Изучить типовую структуру МП КР580, назначение выводов МП, струк-туру памяти МП-системы, форматы команд МП по вводному разделу практикума и по [1, 2, 3].

    3. Изучить работу программы Прогр. 1.1.

    Рис. 1. Структурная схема МП КР580
    Выводы микропроцессора имеют следующее назначение:

     Выводы C1 и C2 используются для ввода в микропроцессор синхросиг-налов от тактового генератора.

     Выводы ШД0 … ШД7 образуют двунаправленную шину данных для обмена данными между процессором и внешней памятью или внешними устройствами.

     Выводы ША0 … ША15 образуют шину адреса, которая используется процессором для вывода адреса ячейки памяти или адреса внешнего устройства, с которой(ым) будет проводиться обмен данными.

     Вывод СНХР (СИНХР) используется для синхронизации процессором внешних устройств.

     Вывод СБР – это аппаратный сброс микропроцессорной системы.

     Вывод ГТ используется процессором для приема сигналов от внешнего устройства или памяти о готовности его (ее) к обмену данными.

     Вывод ОЖ используется МП для формирования им сигналов внешнему устройству или памяти об ожидании готовности устройства (па-мяти) к обмену информацией между ним и процессором.

     Выводы ЧТ и ЗП используются процессором для формирования им сигналов чтения и записи для внешней памяти и устройств ввода/вывода.

     Выводы ЗПР и РПР – выводы для сигналов запроса и разрешения прерывания.

     Выводы ЗПДП и РПДП – выводы для сигналов запроса и разрешения прямого доступа к памяти.



    На Рис. 2 показана структура памяти МП КР580



    Рис. 3. Форматы 1-, 2-х и 3-хбайтных команд МП КР580.

    Система команд КР580.


    В Табл.  – 11 приведена справочная информация о системе команд МП КР580, разбитая по подгруппам команд.

    Табл. 1. Однобайтные пересылки.

    MOV R1, R

    {5/7}

    R



    R1

    MVI R, D8

    {7/10}

    D8



    R

    STAX YZ

    {7}

    A



    M(YZ)

    LDAX YZ

    {7}

    M(YZ)



    A

    STA ADR

    {13}

    A



    M(ADR)

    LDA ADR

    {13}

    M(ADR)



    A

    Табл. 2. Двухбайтные пересылки.

    LXI YZ, D16

    {10}

    D16



    YZ

    SHLD ADR

    {16}

    H

    L





    M(ADR+1)

    M(ADR)

    LHLD ADR

    {16}

    M(ADR)

    M(ADR+1)





    L

    H

    PUSH YZ

    {11}

    YZ

    SP-2





    M(SP-1) M(SP-2)

    SP

    POP YZ

    {10}

    M(SP) M(SP+1)

    SP+2





    YZ

    SP

    (POP' PSW)

    {10}

    M(SP) M(SP+1)

    SP+2





    YZ

    SP

    SPHL

    {5}

    HL



    SP

    Табл. 3. Обмен байтами.

    XCHG

    {4}

    HL



    DE

    XTHL

    {18}

    H

    L





    M(SP+1)

    M(SP)

    Табл. 4. Команды ввода и вывода.

    IN N

    {10}

    (N)



    A

    OUT N

    {10}

    A



    (N)

    Табл. 5. Арифметические и логические операции с одним операндом.

    CMC ''

    {4}

    C



    INV C

    STC ''

    {4}

    1



    C

    CMA

    {4}

    A



    INV A

    DAA '

    {4}

    Десятичная коррекция

    INR ''' R

    {5/10}

    R+1



    R

    DCR ''' R

    {5/10}

    R-1



    R

    INX YZ

    {5}

    YZ+1



    YZ

    DCX YZ

    {5}

    YZ-1



    YZ

    Табл. 6. Арифметические и логические операции с двумя операндами.

    CPI' D8

    {7}

    Установка признаков в соответствии с A-D8 или A-R1

    CMP' R

    {4/7}

    8-битные операции

    ADD' R

    {4/7}

    A+R



    A

    ADC' R

    {4/7}

    A+R+C



    A

    SUB' R

    {4/7}

    A-R



    A

    SBB' R

    {4/7}

    A-R-C



    A

    ANA' R

    {4/7}

    A AND R



    A

    ORA' R

    {4/7}

    A OR R



    A

    XRA' R

    {4/7}

    A XOR R



    A

    ADI' D8

    {7}

    A+D8



    A

    ACI' D8

    {7}

    A+D8+C



    A

    SUI' D8

    {7}

    A-D8



    A

    SBI' D8

    {7}

    A-D8-C



    A

    ANI' D8

    {7}

    A AND D8



    A

    ORI' D8

    {7}

    A OR D8



    A

    XRI' D8

    {7}

    A X0R D8



    A

    16-битные операции

    DAD'' YZ

    {10}

    HL+YZ



    HL

    Табл. 7. Команды сдвига содержимого аккумулятора.

    RLC''

    {4}

    Циклический сдвиг влево.

    RAL''

    {4}

    Циклический сдвиг влево через бит флага C.

    RRC''

    {4}

    Циклический сдвиг вправо.

    RAR''

    {4}

    Циклический сдвиг вправо через бит флага C.

    Табл. 8. Команды передачи управления

    PCHL

    {5}

    HL



    PC

    JMP ADR

    {10}

    ADR



    PC

    J-CON ADR

    {10}

    ADR



    PC

    Табл. 9. Команды условной передачи управления.

    Условие

    Команда, устанавливающая бит регистра признаков F

    Команда передачи управления

    Любой бит аккум. = 0

    ani d8 (1 в соответств. разряде d8 выбирает бит)

    jz adr

    Любой бит аккум. = 1

    ani d8 (1 в соответств. разряде d8 выбирает бит)

    jnz adr

    Бит 7 аккум. = 0

    ral, rlc или add a

    jnc adr

    Бит 7 аккум. = 1

    ral, rlc или add a

    jc adr

    Бит 6 аккум. = 0

    add a

    jp adr

    Бит 6 аккум. = 1

    add a

    jm adr

    Бит 0 аккум. = 0

    rar или rrc

    jnc adr

    Бит 0 аккум. = 1

    rar или rrc

    jc adr

    Все биты аккум. = 0

    ana a или ora a

    jz adr

    Содержимое аккум. <> 0

    ana a или ora a

    jnz adr

    Содержимое аккум. положительно (d7 = 0)

    ana a или ora a

    jp adr

    Содержимое аккум. отрицательно (d7 = 1)

    ana a или ora a

    jm adr

    Сод. Акк. = d8

    cpi d8

    jz adr

    Сод. Акк. <> d8

    cpi d8

    jnz adr

    Сод. Акк. >= d8

    cpi d8

    jnc adr

    Сод. Акк. < d8

    cpi d8

    jc adr

    Содержимое аккум. = r

    cmp r

    jz adr

    Содержимое аккум. <> r

    cmp r

    jnz adr

    Содержимое аккум. >= r

    cmp r

    jnc adr

    Содержимое аккум. < r

    cmp r

    jc adr

    Табл. 10. Команды вызова и возврата из подпрограммы.

    CALL ADR

    {17}

    PC

    ADR





    M(SP-1) M(SP-2)

    PC

    C-CON ADR

    {11(17)}

    PC

    ADR





    M(SP-1) M(SP-2)

    PC

    RST X

    {11}

    PC

    ADR





    M(SP-1) M(SP-2)

    PC, где X = 0, 1 ..., 7

    RET

    {10}

    M(SP) M(SP+1)

    SP+2





    PC

    SP

    R-CON

    {5(11)}

    M(SP) M(SP+1)

    SP+2





    PC

    SP

    Табл. 11. Специальные команды.

    EI

    {4}

    Разрешение прерывания.

    DI

    {4}

    Запрещение прерывания.

    HLT

    {7}

    Останов.

    NOP

    {4}

    Холостая операция.


    Коды команд МП КР580.


    В Табл.  приведены условные обозначения типов операндов, а в Табл.  информация для определения машинного кода любой команды процессора КР580.

    Табл. 12 Обозначения типов операндов.

    N

    Номер порта ввода/вывода

    &

    двухбайтный операнд D16

    *

    Двухбайтный операнд

    ADR #

    однобайтный операнд D8

    Табл. 13. Перечень всех команд процессора с указанием кода каждой команды.



    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    A

    B

    C

    D

    E

    F

    0

    NOP

    LXI B,&

    STAX B

    INX B

    INR B

    DCR B

    MVI B,#

    RLC



    DAD B

    LDAX B

    DCX B

    INR C

    DCR C

    MVI C,#

    RRC

    1



    LXI D,&

    STAX D

    INX D

    INR D

    DCR D

    MVI D,#

    RAL



    DAD D

    LDAX D

    DCX D

    INR E

    DCR E

    MVI E,#

    RAR

    2



    LXI H,&

    SHLD *

    INX H

    INR H

    DCR H

    MVI H,#

    DAA



    DAD H

    LHLD *

    DCX H

    INR L

    DCR L

    MVI L,#

    CMA

    3



    LXI SP,&

    STA *

    INX SP

    INR M

    DCR M

    MVI M,#

    STC



    DAD SP

    LDA *

    DCX SP

    INR A

    DCR A

    MVI A,#

    CMC

    4

    MOV B,B

    MOV B,C

    MOV B,D

    MOV B,E

    MOV B,H

    MOV B,L

    MOV B,M

    MOV B,A

    MOV C,B

    MOV C,C

    MOV C,D

    MOV C,E

    MOV C,H

    MOV C,L

    MOV C,M

    MOV C,A

    5

    MOV D,B

    MOV D,C

    MOV D,D

    MOV D,E

    MOV D,H

    MOV D,L

    MOV D,M

    MOV D,A

    MOV E,B

    MOV E,C

    MOV E,D

    MOV E,E

    MOV E,H

    MOV E,L

    MOV E,M

    MOV E,A

    6

    MOV H,B

    MOV H,C

    MOV H,D

    MOV H,E

    MOV H,H

    MOV H,L

    MOV H,M

    MOV H,A

    MOV L,B

    MOV L,C

    MOV L,D

    MOV L,E

    MOV L,H

    MOV L,L

    MOV L,M

    MOV L,A

    7

    MOV M,B

    MOV M,C

    MOV M,D

    MOV M,E

    MOV M,H

    MOV M,L

    HLT

    MOV M,A

    MOV A,B

    MOV A,C

    MOV A,D

    MOV A,E

    MOV A,H

    MOV A,L

    MOV A,M

    MOV A,A

    8

    ADD B

    ADD C

    ADD D

    ADD E

    ADD H

    ADD L

    ADD M

    ADD A

    ADC B

    ADC C

    ADC D

    ADC E

    ADC H

    ADC L

    ADC M

    ADC A

    9

    SUB B

    SUB C

    SUB D

    SUB E

    SUB H

    SUB L

    SUB M

    SUB A

    SBB B

    SBB C

    SBB D

    SBB E

    SBB H

    SBB L

    SBB M

    SBB A

    A

    ANA B

    ANA C

    ANA D

    ANA E

    ANA H

    ANA L

    ANA M

    ANA A

    XRA B

    XRA C

    XRA D

    XRA E

    XRA H

    XRA L

    XRA M

    XRA A

    B

    ORA B

    ORA C

    ORA D

    ORA E

    ORA H

    ORA L

    ORA M

    ORA A

    CMP B

    CMP C

    CMP D

    CMP E

    CMP H

    CMP L

    CMP M

    CMP A

    C

    RNZ

    POP B

    JNZ *

    JMP *

    CNZ *

    PUSH B

    ADI #

    RST 0

    RZ

    RET

    JZ *



    CZ *

    CALL *

    ACI #

    RST 1

    D

    RNC

    POP D

    JNC *

    OUT N

    CNC *

    PUSH D

    SVI #

    RST 2

    RC



    JC *

    IN N

    CC *



    SBI #

    RST 3

    E

    RP0

    POP H

    JP0 *

    XTHL

    CP0

    PUSH H

    ANI #

    RST 4

    RPE

    PCHL

    JPE *

    XCHG

    CPE *



    XRI #

    RST 5

    F

    RP

    POP PSW

    JP *

    DI

    CP *

    PUSH PSW

    ORI #

    RST 6

    RM

    SPHL

    JM *

    EI

    CM *



    CPI #

    RST 7

    Меню эмулятора содержит следующие пункты:

    • Команды. Список всех команд вызываемых при просмотре или отладки работы программы.

      • Выполнить до курсора. Выполнение программы до выделенной строки в поле команд (F4).

      • Выполнить одну команду. Выполнение одной команды программы (F7).

      • Выполнить процедуру. Выполнение одной команды, не заходя в процедуры (F8). Процедурами считаются команды условного и безусловного перехода к подпрограммам, а также команды обработки прерываний.

      • Запустить программу. Запуск программы до ее завершения (F9).

      • Прервать. Остановка выполнения программы (Esc) при запуске ее до завершения. Это единственное действие, которое доступно во время отработки команд программы, оно позволяет в любой момент прерват выполнение программы процессором. При остановке выполнения программы курсор команды будет показывать на следующую выполняемую команду.

      • Установить точку. Установка точки останова в выделенной строке в поле команд (Ctrl + F8). При этом возможно установление только одной точки останова. Установка точки останова в строке, где она уже установлена, приведет к удалению из этой строки точки останова. Если точка останова устанавливается в другой строке, то предыдущая точка удаляется.

      • Выход. Выход из эмулятора в текстовый редактор (Alt + x, Alt + F4).



    Ход работы

    1. В программе emKP580 был написан код на языке Assambler:



    1. После сохранения и ассемблирования я перешла в программе в режим эмулирования:



    1. Анализ программы в режиме пошагового выполнения:



    Произошла адресация содержимого регистра (В) в Аккумулятор.



    Сложение (А) с байтов в ячейке, расположенной по адресу в паре регистров В, L.



    Флаг (P) установлен на 1, поэтому программа не переходит по метке LAB_1. После происходит декрементация (В) и инкрементация пары регистров (Н, L) и переход в подпрограмму PROC_1:



    В подпрограмме PROC_1 происходит сдвиг значения (А) влево и запись результата в регистр (В). После чего подпрограмма закрывается и продолжается работа основной программы:



    Следующий шаг заключается в записи содержимого регистра (В) в ячейку по адресу пары регистров (H, L) и из (А) вычетается байт в регистр (В), а результат заносится в (А):



    В результате чего флаг (Z) устанавливается на единицу.

    1. Анализ программы в режиме одного приёма:



    Результаты совпадают с пошаговым выполнением программы.

    1. Анализ программы в пошаговом режиме без захода в подпрограмму:

    Все шаги до вызова подпрограммы PROC_1 идентичны:



    Результат выполнения программы такой же, как и в уже рассмотренных режимах:



    1. Результат работы программы при изменении адреса ячейки и вводимых данных в первых трёх строках кода:





    Перед вызовом подпрограммы PROC_1:



    После вызова подпрограммы:



    Конечный результат выполнения программы:



    Вывод

    Ознакомилась с МП KP580 и его работой, а также работой эмулятора emKP580, который представляет программу, имитирующую все основные действия, выполняемые МП при обработке им определённого кода. Также узнала о командах МП и его архитектуре. Анализировала работу программы, написанную на языке Ассемблер в трёх режимах. Помимо этого, проанализировала работу программы с изменёнными числовыми значениями адреса и данных.


    1



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