Главная Промышленная автоматика. liJ Продолжение табл. П4 Мнемоника Операнды MaiumniLifi код DJNZ адрес Rr, адрес (г-0-7) CALL адрес RETR SE[, SEL MBO MBl RBO = §1 о a я bbblOOlO адрес niOlrrr I адрес aдр10100 адрес 10000011 I 1 1 10010011 I I I 00000101 I 1 I 00010101 1 1 I 11100101 I I I 11110101 I I I iiooomi Описание Комментарии Если Bb=l, (PCO-7)адрес (Rr)*-(Rr)-l Если содержимое Rr иа О, (PC О -7)*-адрес рывания поступил. Этот сигнал запускает последовательность обслуживания прерываний, если внешние прерывания разрешены Переход, если один нз разрядов А установлен в 1. Управление передается по указанному в .команде адресу, если «Ь» разряд А установлен в 1 Декрементированне содержимого РОН и тестирование. Содержимое регистра г уменьшается на единицу п тестируется на «нуль». Если регистр содержит только .нули, управление программой передается следующей ко-Манде. Если содер/кимое регистра не нуль, происходит управляемый переход по указанному во втором байте адресу. В этом случае восьмиразрядный регистр адреса обеспечивает возможность адресования к 256 ячейкам текущей страницы Команды обращения к подпрограмме ((SP))(PC), (PCW4-7) (PCS-10)адрес 8-10 (РС07)ч-адрес 0-7 (PCIl)-DBL (SP)(SP)-1 (PC)-((SP)) (SP)4(SP)-1 PS((SP)) Вызов подпрограммы. Содержимое счетчика команд и содержимое разрядов 4-7 регистра состояний засылаются в стек. Ука.эатель стека (содержимое разрядов 0-2 per.i-стра состояний) сохраняется. Управление программой передается в ячейку с адресом, указанным в данной команде. Содержимое П-разряда счетчика омаи,( опрел(!ляетея ноеледней тгмпилои SI-.I.MIi. После возвращения из подпрограммы выполнение программы продолжается с команды, следующей за кодоидой CALL Возврат из подпрогра.ммы обслуживания прерываний без восстановления содержимого регистра состояний. Содержимое указателя стека (разряды 0-2 регистра состояний) декрементируется. Содержимое счег-чика команд восстанавливается из стека. Содержимое разрядов 4-7 регистра состояний не восстанавливается Возврат из подпрограммы обслуживания прерываний с восстановлением содержимого регистра состояний. Указатель стека декрементируется. Содержимое счетчика команд и содержимое разрядов 4-7 регистра состояшнй восстанавливаются из стека К<).ман;и.1 упранлсния (D>F)<-0 fDBL)l (BS)O Разрешение внешних прерываний. Внешние прерывания разрешаются сигналом ни,зкого уровня на входе прерывания INT Запрещение внешних прерываний. ОМЭВМ не рса-гирует iKi поступление низкого уровня иа входе 1NT Выбор нулевого банка (.МВО) памяти программ. Разряд счетчика ко.манд устанавливается в 0. Нулевой банк размещен в ячейках 0-2047 памяти программ Выбор первого банка памяти (МВ1) программ, П-разряд счетчика команд устанавливается в 1. Первый банк размещен и ичейка.х 2048-4095 памяти программ Выбор нулевого банка рабочих регистров памяти данных. Разряд 4 регистра состояний устанавливается в 0. Рабочие регистры 0-7 занимают $1чейхи 0-7 памяти данных 55 Окончание табл. П4 Лнемо-нмка Операнды Машинный код Описание Комментарий NOP ENTO STRT STOP EN DIS STRT MOV MOV TCNT TCNTI TCNTI T T, л A, T 11010101 I I I 00000000 I I I 01110101 I I I 01000101 1 • -I 1 01100101 I I I 00100101 I I I 00110101 I I I 01010101 I I 1 01100010 I I I 01000010 I I I (BS)l Выбор первого банка рабочих регистров памяти данных. Разряд регистра состояний устанавливается в единицу. Рабочие регистры О-7 занимают ячейки 24-31 па.мяти данных Нет операции. Программа продолжается со следующей команды Разрешение вывода импульсов синхронизации. Эта функция запрещается командой системного сброса Команды работы с таймером/счетчиком {Т)-{А) {А)(Т) Запуск счетчика событий. Регистр счетчика событий иикре.ментируется каждый раз, когда иа выводе Т1 происходит переход уровня напрягкения с высоко1-о на низкий Останов таймера/счетчика событий Разрешение прерываний по переполнению тай.ме-ра/счетчика событий. Переполнение таймера/счетчика событий запускает последовательность обработки прерываний Запрещение прерываний при иереполнеиип таймера/счетчика событий Запуск тай.мера. Накопление происходит в регистре таймера, который инкрементируется через каждые 32 командных цикла. Счетчнк командных циклов начинает счет с нуля Загрузка таймера/счетчика из аикумулятора Передача содержимого регистра таймера/счетчика в А CPL CLR CPL CLR CPL CLR С F0 F0 F1 10100111 I I I 10000101 I I I 10010101 I I I 10100101 I I I 10110101 I I I 10010111 I I I KoiManjtH манипуляции с ф (C)NOT(C) (FO)O (FO)NOT(FO) (Fl)-O (Fl)NOT(Fl) лажкамй Инвертирование содержимого разряда переноса Содержимое флагового разряда (FO) устаи1влив;!ет-ся в О Инвертирование содержимого флагового разряда (F0) Содержимое флагового разряда (F1) устанавливается в О Инвертирование содержимого флагового разряда (F1) Очистка разряда переноса Во время выполнения программы разряд переноса может быть установлен в 1 командами ADD, ADDC, RLC, RRC, CRLC, DA. Команда CLRC позволяет обнулить разряд переноса Приложение 3. Система команд однокристальной микроЭВМ К1814 Табл и и а И,")
Окончание табл.
Выпо.чняемгк: /[.риегпмс- Переслать содержимое памяти li аккумуипор Переслать содержимое иамяги в Y-регистр Поменять содержимое памяти и аккумулятора Сложнгь содержимое аккумулятора и памяти, результат в аккумулятор Вычесть содержимое яккумуля i ора из со;1ержимо-г) иа мяти, 11езультат в акку.муляго]) Увеличить содержимое памя1-11, резу.чьтат В аккумулятот Уме;пли!пь содержимое памяти, результат г> аккумулятор Декпемептпроиать аккумулятор Увеличить содержимое Y-рсгистра y.MCHbuiHTb содержимое Y-регистра Образовать дополнение содержимого аккумулятора до i Сложить содержи.мое аккумулятора с константой 3, результат в аккумулятор Сложить содержимое аккумулитора с «о-нстантон 8. [)счул;-тат в аккумуляюр (~л();кип. с(-),че])жнМ11е шлчуму л-/Мс iKunei ни rnji 10, резульга г -н акку>П,1Я i о]) Увсличшь содержимое аккумуля101)а Установить ТС, еглн со,-1епж11мое аккумулятора меньше или ])лвно памяти Уегапон.Нп. Tf, се.пн ri)Tvp;i-:i!\!0,- ак1-:уМу..1Я-11)р.а мешлне И.П1 ]1,-1НН(1 !1,-о:!Ппн1е Уе-,-1 !1(н>П[ь ТС, если спдер.-кнчое 4-iviinn не jmidio ну;:!;) ОЗУ (X, Y) -.\ ОЗУ (X, Y)-y ОЗУ (X, Y)A A-t-ОЗУ (X, Y)->-A, если Yslo I-vTC ОЗУ (X, У)-*Л->Д. если А--Ч)ЗУ. то l-TC ОЗУ (.X, Y)-f 1Л, если Л = 1.5, 1-*ТС ОЗУ (X, Y) -!-Л, если ОЗУ-О, ) о ОТС Л- 1-А, 1-ТС, если А1, ОТС Y-t-1-Y, если Y=)5, 1->-ТС Y-1-Y, если Y-IO, 0-.-ТС A-t-1-А, ее.™ А-О, ОТС А + 6->-А, если А 15, 1-vTC A-F8-M, если А=15, !~-TC Л I 10 -Л, если Л- IS, 1-,ТС Если А<03У (Х, Y), 10 I -ТС Ест А-УС, т.. 1- --ТГ Еел:1 (ЯУ (.X, Y) -/ О, -Hi 1 >[(:.
N N uN Установить ТС, ecJiii еодиржнмое V рсгмеера не равчп еолери-;нмому а,кьуму.1я i Уеиишвить тс;, сели со;1ержимое Y-pernopa не. [мне." fkOHCTame УстанОВить ТС, если входные данные не равны нулю Устаноппп. би-т памяти Устаиовпть ТС, если уегаиовлен бит памнгн Сбросить бит памяти Переслать -константу в Y-penieip Переслать константу в память, увеличить Y-регистр Переслать входные данные в аккумулятор Установить разряд выходного R-порта Сбросить разряд 1вы,чодного R-.nopia Переслать содержимое аккумулятора в выходной Q-pe-гистр Очистить Q-регисрр Загрузить константу в .\-регнсгр Инвертировать содержимое Х-регистра Условный переход, если ТС равен единице Обращение к подпрограмме, если 1С=1 Возврат из подпрограммы Загрузить коистаиту в буферный регистр адреса стра- 1ГИЦЫ Если YA, то 1 1 <; Если Y-/--C,;, 1о 1-ТС Если входные данныеО, то 1ТГ. 1-03У (X, Y, И) Если ОЗУ (Х, Y, В) = 1, то 1-ТС 0->ОЗУ (X, Y, В) 0->ОЗУ (X, Y), Y-fl-Y Входные даниые-*-А 1->R(Y) O-R(Y) A--Q 0-Q СХ ХХ Если ТС .1, то БРАС~*РЛС, W->CR Если ТС = 1, -то W~>-CK, СК-РВ, БРАС-РАС РВ-+-1->.СК, БРАС->РЛС С->БРАС Примечание. 1 - занесение результата сравнения из АЛУ в ТС, логической 1 ъ ТС; С-aaiieceirHe переноса пз ет;]ри1его рп.чряда сумматора » ТС; N - заи(сеине если операнды не равны, заносится единица. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 0.0017 |