2013-07-23 2 views
0

В Nios 2 с Altera DE2 FPGA, я изучаю следующий код для прерыванияЗачем нужна инструкция маски?

При исключении: проверить ловушки или прерывания

exc_hand: 
rdctl et,estatus # read estatus 
andi et,et,1 # mask EPIE, bit 0 
beq et,r0,noint # om EPIE == 0: no interrupt 
rdctl et,ipending # read ipending 
beq et,r0,noint # if ipending == 0: no interrupt 
int_check: # if we reach this then there aws an interrupt 
subi ea,ea,4 # adjust exception return address 

Я могу понять первые инструкции и что маска делает, но я дон Не понимаю, зачем нужна маска. Это потому, что в других битах может быть хлам, чем бит 0? AFAIK используется только бит 0, поэтому зачем мне его маскировать?

ответ

1

См. Таблицу 3-8 в NIOS II Processor Reference Handbook Programming Model - там есть множество бит, которые могут быть установлены. Например, бит NMI, бит теневого регистра и т. Д.

Код, который вы отправили, интересуется только состоянием бит 0 (бит PIE), поэтому он маскирует другие биты.

Смежные вопросы