在带有 Altera DE2 FPGA 的 Nios 2 中,我研究了以下中断代码
异常:检查是否陷阱或中断
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,那么为什么我需要屏蔽它?