MSP430 система команд - Команда DINT
*DINT | Запрещение (общее) прерываний | |
Синтаксис | DINT | |
Операция | 0 -> GIE или (0FFF7h .AND. SR -> SR / .NOT.src .AND. dst -> dst) |
|
Эмуляция | BIC #8,SR | |
Описание | Все прерывания запрещаются. Константа 08h инвертируется и логически перемножается с регистром статуса (SR). Результат помещается в регистр статуса SR. |
|
Биты статуса | Биты статуса не изменяются | |
Биты режима | GIE сбрасывается. Биты OSCOFF и CPUOFF не изменяются. | |
Пример | Бит общего разрешения прерываний в регистре статуса очищается, что позволяет без повреждения переслать содержимое 32-разрядного счетчика. Это гарантирует, что содержимое счетчика не будет изменено во время пересылки возникновением какого-либо прерывания.
DINT ; с помощью бита GIE запрещаются все прерывания NOP MOV COUNTHI,R5 ; копирование счетчика MOV COUNTLO,R6 EINT ; с помощью бита GIE разрешаются все прерыванияПримечание: запрет прерываний Если какую-либо последовательность кода нужно защитить от прерывания, после команды DINT должна быть выполнена, по крайней мере, одна команда до начала выполнения этой последовательности, или же следующей командой после DINT должна быть инструкция NOP. |