Рефераты. Микропроцессор В1801ВМ1 архитектура и система комманд

Система команд микропроцессора К1801ВМ1

Данный процессор содержит 8 регистров общего назначения (РОН, обозначение в описании команд RN, ãäå N=0..7)один внутренний регистр состояния процессора PSW в котором задействовано 5 битов, каждый из которых имеет свои имена:

·     C-бит переполнения

·     T-бит трассировки

·     V-бит арифметического переполнения

·     Z-бит равенства 0

·     N-бит отрицательного числа

Два регистра из РОН (R6 и R7) отвечают за следующие функции:

·     R6 (SP)-Указатель стека

·     R7 (PC)-Счетчик команд.

При описании команд, используются следующие обозначения:

·     «SS» - поле адресации операнда-источника

·     «DD» - поле адресации операнда-приемника

·     «XXX»- смещение (-128,...,+128; 8 бит)

·     «N» - число, 3 бита

·     «NN» - число, 6 бит

·     «(N)» -содержимое ячейки или регистра N

·     «s» - операнд -источник

·     «d» - операнд -приемник

·     «r» - содержимое регистра

·     «<=» - становится равным

·     «X» - относительный адрес

·     «%» - определение регистра

·     «/\» - логическое И

·     «\/» - логическое ИЛИ

·     «\\» - исключающее ИЛИ

·     «|» - НЕ

Операции над разрядами PSW

·     «*» - установка/сброс по результату

·     «-» - состояние разряда не меняется

·     «0» - сброс

·     «1» - установка

Методы адресации

МЕТОД

R

Метод                                                          мнемоника        

0. регистровая                                         R      

1. косвенная регистровая                        ( R ) или     @R

2. автоинкрементная                      ( R )+                   

3. косв. автоинкрементная             @( R )+

4. автодекрементная                      -( R )

5. косв. автодекрементная             @-( R )

6. индексная                                             X( R )                  

7. косв. индексная                                    @X( R )

Команды работы с программами

000000         HALT         останов

000001         WAIT         пауза - ожидания прерывания

000002         RTI             возврат из прерывания ( PC <=(SP)+)

000003         BPT            отладочное прерывание (-(SP) <=PSW <=(16) )

000004         IOT             вызов системы ввода вывода ( -(SP) <=PC <= (22) )

000005         RESET       сброс магистрали и процессора

000006         RTT            возврат, с запретом прерывания по Т-разряду до исполнения следующей команды ( PC<=(SP)+      PSW<=(SP)+ )

0001DD        JMP            безусловный переход  ( PC <= d )

00020R         RTS            возврат из подпрограммы ( PC <= R <=(SP)+

000240         NOP           нет операции

004RDD       JSR             вызов подпрограммы (-(SP) <= R <= PC <= d )

0064NN        MARK        восстановление стека ( -(SP)<=PC +(2 x NN)    PC<=R5 <=(SP)+

077RNN       SOB            выч. 1 и ветвл., если (R#) не 0  ( R# <= R#-1     PC<=PC=( 2xNN) )

104000-104277      EMT вызов подпрограммы ПЗУ    (-(SP)<= PSW <= (32) -(SP)<= PC <= (30) )

1064SS         MTPS         запись PSW         ( PSW <= s )

1064Dd        MFPS         чтение PSW         ( d <= PSW )

Переходы по условию (ветвления)

Базовый КОП

±

XXX

15







8

7







0


Если условие выполняется, то (PC) <= (PC) + (2 x NN)

000400 + XXX      BR              безусловный переход

001000 + XXX      BNE           нет равенства ( нулю )  Z=0

001400 + XXX      BEQ           равенство ( нулю )                 Z=1

102000 + XXX      BVC           арифм.переп. отсутствует      V=0

102400 + XXX      BVS            произошло арифм.переп.      V=1

103000 + XXX      BCC           перенос отсутствует               C=0

103400 + XXX      BCS            произошел перенос                С=1

Переход по знаку

100000 + XXX      BPL            знак плюс                               N=0  

100400 + XXX      BMI            знак минус                    N=1

002000 + XXX      BGE           больше или равно (нулю)      N\\V=0

002400 + XXX      BLT            меньше (нуля)                        N\\V=1

003000 + XXX      BGT           больше (нуля)               Z\/(N\\V)=0

003400 + XXX      BLE            меньше или равно(нулю) Z\/(N\\V)=1

Переход без знака

101000 + XXX      BHI             больше                                    C\/Z=0

101400 + XXX      BLOS         меньше или равно                  C\/Z=1

103000 + XXX      BHIS           больше или равно                  C=0

103400 + XXX      BLO            меньше                                    C=1

Одно-операторные команды

Код операции (КОП)

DD

15









6

5





0

Условные обозначения: «*»=0 операции над словами

1 операции над байтами

                                                   N Z C V

0003DD        SWAB        перестановка байтов                                 *  * 0  0

*050DD        CLR(B)       очистка                (d) <=0                           0 1 0  0

*051DD        COM(B)     побитная инверсия  (d) <= (|d)                  *  * 0  0

*052DD        INC(B)        прибавление 1       (d) <=(d)+1                  *  *  *-

*053DD        DEC(B)      вычитание 1          (d) <=(d)+1                  *  *  *-

*054DD        NEG(B)      изменение знака  (d) <=-(d)             *  *  *  *

*055DD        ADC(B)      прибавить перенос  (d)<=(d)+C      *  *  *  *

*056DD        SBC(B)       вычесть перенос      (d)<=(d)-C        *  *  *  *

*057DD        TST(B)       проверка                       (d)<=(d)                *  *  0 0

*060DD        ROR(B)      циклич. сдвиг вправо    => C,d       *  *  *  *

*061DD        ROL(B)       циклич. сдвиг влево        C,d <=               *  *  *  *

*062DD        ASR(B)       арифм. сдвиг вправо (d)<=(d)/2      *  *  *  *

*063DD        ASL(B)       арифм. сдвиг влево   (d)<=(d)*2      *  *  *  *

*067DD        SXT            расширить знак  N=0 (d)<=0          0 1 0-                                                                      N=1 (d)<=177777 1 0 0-

Двух операторные команды

КОП

SS

DD

15

12

11

6

5

0

                                                                                                        N S V C

*1SSDD       MOV(B)     переслать             (d)<=(s)                      *  *   0-

*2SSDD       CMP(B)      сравнить              (s)-(d)                         *  *   *  *

*3SSDD       BIT(B)        проверить разряды      (s)/\(d)               *  *  0 -

*4SSDD       BIC(B)        очистить разряды  (d)<=(|s)/\(d)    *  *  0 -

*5SSDD       BIS(B)        установить разряды (d)<=(s)\/(d)   *  *  0 -

06SSDD       ADD           сложить                         (d)<=(s)+(d)  *  *  *  *

074RSS        XOR           исключающее или    (s)<= (r )\\(s)  *  * 0 -

16SSDD       SUB            вычесть                         (d)<=(d)-(s)   *  *  *  *


Операции с разрядами PSW

Базовый КОП =240

0/1

N

Z

V

C

15

6

7

4

3

2

1

0

Очистить

000241      CLC                    C

-

-

-

0

000242      CLV                   V

-

-

0

-

000244      CLZ                    Z

-

0

-

-

000250      CLN                   N

0

-

-

-

000257      CCC          N Z V C      

0

0

0

0

Установить

000261      SEC                   C

-

-

-

1

000262      SEV                   V

-

-

1

-

000264      SEZ                   Z

-

1

-

-

000270      SEN                  N

1

-

-

-

000277      SCC         N Z V C

1

1

1

1

Список литературы

Персональный компьютер БК-0010 (Приложение к журналу «Информатика и образование» )


Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.