Смекни!
smekni.com

Микропроцессор В1801ВМ1. Его структура (стр. 2 из 2)

“\/” - логическое ИЛИ

“\” - исключающее ИЛИ

“|” - НЕ

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

“*” - установка/сброс по результату

“-” - состояние разряда не меняется

“0” - сброс

“1” - установка

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

МЕТОД R

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

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

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

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

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

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

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

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

косв. индексная @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&bsol;V=0

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

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

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

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

101000 + XXX BHI больше C&bsol;/Z=0

101400 + XXX BLOS меньше или равно C&bsol;/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)/&bsol;(d) * * 0 -

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

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

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

074RSS XOR исключающее или (s)<= (r )&bsol;(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 (Приложение к журналу “Информатика и образование” )