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 |
|