SWI - Выполнить программное прерывание (Software Interrupt)
| Операция |
| PC <- (PC) + $0001 |
Организация в PC адреса возврата |
| Ї(PCL); SP <- (SP) - $0001 |
Занесение в стек младшей половины адреса возврата |
| Ї(PCH); SP <- (SP) - $0001 |
Занесение в стек старшей половины адреса возврата |
| Ї(X); SP <- (SP) - $0001 |
Занесение индексного регистра в стек |
| Ї(A); SP <- (SP) - $0001 |
Занесение аккумулятора (A) в стек |
| Ї(CCR); SP <- (SP) - $0001 |
Занесение регистра кодов признаков (CCR) в стек |
| Бит I <- 1 |
Маскирование дальнейших прерываний |
| PCH <- ($FFFC) |
Выборка вектора |
| PCH ($FFFD) |
|
|
| Описание |
Счетчик команд (PC) инкрементируется (на 1). Счетчик команд, индексный регистр и аккумулятор заносятся в стек. Затем в стек заносятся биты регистра кодов признаков (CCR) которые (V, H, I, N, Z и C) размещаются, соответственно, по битам 7 и с 4 по 0. Биты 6 и 5 находятся в состоянии 1. Указатель стека декрементируется (на 1) после занесения в стек каждого байта. Устанавливается бит маски прерывания и в счетчик команд загружается адрес, хранящийся по вектору SWI (размещенному в ячейках памяти n-0002 и n-0003, где n является адресом, соответствующим высокому состоянию всех используемых линий адресной шины). Адрес вектора SWI может быть представлен как $FFFC:$FFFD.
Данная команда не маскируется битом I. |
| Коды признаков и Булевы выражения |
|
Исходные формы, режимы адресации, машинные коды и количество циклов
| Исходные формы |
Режим адресации |
Машинные коды |
Количество циклов HC08 |
| Код операции |
Операнд(ы) |
| SWI |
INH |
83 |
|
9 |
|