Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[20]

*DECD[.W]

Двойной декремент получателя

*DECD.B

Двойной декремент получателя

Синтаксис

DECD dst или DECD.W dst

DECD.B dst

Операция

dst - 2 - dst

Эмуляция

SUB #2, dst

SUB.B #2, dst

Описание

Операнд получателя уменьшается (декрементируется) на два. Исходное содержимое теряется.

Биты статуса

Устанавливается, если результат отрицательный; сбрасывается, если положительный

Устанавливается, если dst содержал «2»; в противном случае сбрасывается

Сбрасывается, если получатель содержал «0»; в противном случае устанавливается

Устанавливается, если произошло арифметическое переполнение; в противном случае сбрасывается;

Устанавливается, если исходное значение получателя было 08001h или 08000h, в противном случае сбрасывается; Устанавливается, если исходное значение получателя было 081h или 080h, в противном случае сбрасывается

Биты режима

Биты OSCOFF, CPUOFF и GIE не изменяются

Содержимое регистра R10 декрементируется на 2.

DECD R10 ;декремент R10 на два

Пересылка блока из 255 слов, расположенного в памяти начиная с адреса, указанного меткой EDE, в область памяти, начало которой указано меткой TONI. Таблицы не должны наложиться: стартовый адрес назначения TONI должен находиться вне диапазона от EDE до EDE+0FEh.

MOV #EDE, R6 MOV #510, R10 L$1 MOV @R6+, TONI-EDE-2(R6)

DECD R10

JNZ L$1

Содержимое ячейки памяти LEO декрементируется на два.

DECD.B LEO ;декремент MEM(LEO) Декремент байта статуса STATUS на два.

DECD.B STATUS

Запрещение (общее) прерываний

Синтаксис

Операция

0 - GIE или (0FFF7h .AND. SR - SR/.NOT.src .AND. dst - dst)

Эмуляция

BIC #8,SR


Описание

Все прерывания запрещаются. Константа 08h инвертируется и логически перемножается с регистром статуса (SR). Результат помещается в регистр статуса SR.

Биты статуса

Биты статуса не изменяются

Биты режима

GIE сбрасывается. Биты OSCOFF и CPUOFF не изменяются.

Бит общего разрешения прерываний в регистре статуса очищается, что позволяет без повреждения переслать содержимое 32-разрядного счетчика. Это гарантирует, что содержимое счетчика не будет изменено во время пересылки возникновением какого-либо прерывания.

DINT ;с помощью бита GIE запрещаются все ;прерывания

MOV COUNTHI, R5 ;копирование счетчика MOV COUNTLO, R6

EINT ;с помощью бита GIE разрешаются все ;прерывания

Примечание: запрет прерываний

Если какую-либо последовательность кода нужно защитить от прерывания, после команды DINT должна быть выполнена, по крайней мере, одна команда до начала выполнения этой последовательности, или же следующей командой после DINT должна быть инструкция NOP.

Разрешение (общее) прерываний

Синтаксис

Операция

1 - GIE или (0008h .OR. SR - SR / .src .OR. dst - dst)

Эмуляция

BIS #8,SR

Описание

Все прерывания разрешаются. Константа #08h и регистр статуса SR логически складываются (OR). Результат помещается в регистр статуса SR.

Биты статуса

Биты статуса не изменяются

Биты режима

GIE устанавливается. Биты OSCOFF и CPUOFF не изменяются.

Бит общего разрешения прерываний (GIE) в регистре статуса устанавливается.

Подпрограмма обработки прерывания портов с P1.2 по P1.7 P1IN - это адрес регистра, в котором читаются все биты порта.

P1IFG - это адрес регистра, в котором фиксируются все события, вызывающие прерывания

PUSH.B &P1IN

BIC.B @SP, &P1IFG ;сброс только принятых флагов EINT Предварительно установленные флаги ;прерывания порта 0 сохранены ;на стеке, поэтому допустимы другие ;прерывания

BIT #Mask, @SP

JEQ MaskOK ;переход, если флаги идентичны ;представленной маске


#Mask,@SP

вспомогательное действие, обратное

;команде PUSH, использованной

;в начале процедуры обработки

;прерывания. Корректирует указатель

;стека для правильного выхода из

;процедуры обработки прерывания

Примечание: разрешение прерываний

Команда, следующая за командой разрешения прерываний (EINT), выполняется всегда, даже когда ранее поступивший запрос на обслуживание прерывания ожидает, когда прерывания будут разрешены.

*INC[.W]

Инкремент получателя

Инкремент получателя

Синтаксис

INC dst или INC.W dst

INC.B dst

Операция

dst + 1 - dst

Эмуляция

Описание

Операнд получателя инкрементируется на единицу. Исходное содержимое теряется.

Устанавливается, если результат отрицательный; сбрасывается, если положительный

Устанавливается, если dst содержал 0FFFFh, в противном случае сбрасывается;

Устанавливается, если dst содержал 0FFh, в противном случае сбрасывается

Биты статуса

Устанавливается, если dst содержал 0FFFFh, в противном случае сбрасывается;

Устанавливается, если dst содержал 0FFh, в противном случае сбрасывается

Устанавливается, если dst содержал 07FFFh, в противном случае сбрасывается;

Устанавливается, если dst содержал 07Fh, в противном случае сбрасывается

Биты режима Биты OSCOFF, CPUOFF и GIE не изменяются

Байт статуса процесса STATUS инкрементируется. Если результат равен 11,

происходит переход к метке OVFL.

INC.B STATUS

CMP.B #11,STATUS

JEQ OVFL



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120]