们为它安装4个中断驱动类型的I/O设备链接。如果接收到服务请求,其中一个设备会向系统发出独立的中断请求信号(IRQ),结果是LC-3的中断控制寄在器INTCTL中的某个bit将被置位(INTCTL的内存映射地址为xFF00)。INTCTL寄存器的字段组成如下所示。当设备请求服务时,LC-3数据通路产生INT信号,中断服务程序将判断是哪个设备发出的服务请求,然后调用相应的设备服务子程序处理该请求。如果是多个设备同时发出IRQ信号,则只有优先级最高的设备先被处理。在子程序执行过程中,相应的INTCTL位将清掉。
如下所示是4个设备处理子程序起始地址的标识符:
HARDDISK ETHERNET PRINTER CDROM
例如,优先级最高的设备“打印机”请求服务,则中断服务程序将通过如下指令调用打印机处理子程序:
JSRPRINTER
按照优先级规则,请填写标号为(a)~(k)处的指令,完成整个LC-3中断服务程序。优先级顺序如下所示(其中,数值越低,代表的设备优先级越高)。
HARDDISK ETHERNET PRINTER CDROM
例如,优先级最高的设备“打印机”请求服务,则中断服务程序将通过如下指令调用打印机处理子程序:
JSRPRINTER
按照优先级规则,请填写标号为(a)~(k)处的指令,完成整个LC-3中断服务程序。优先级顺序如下所示(其中,数值越低,代表的设备优先级越高)。
(1)Hard disk;
(2)Ethernet card;
(3)Printer
(4)CD-ROM.
LDI R1 , INTCLT
DEV0 LD R2 , ---------(a)
AND R2 , R2 , R1
BRnz DEV1
JSR -----------------(b)
------------------------------(c)
;
DEV1 LD R2 , -----------(d)
AND R2 , R2 , R1
BRnz DEV2
JSR -----------------(e)
------------------------------(f)
; DEV2 LD R2 , -----------(g)
AND R2 , R2 , R1
BRnz DEV1
JSR -----------------(h)
------------------------------(i)
;
DEV3 JSR -----------------(j)
;
END -------------------------------(k)
INNTCLT .FILL xFF00
MASK8 .FILL x0008
MASK4 .FILL x0004
MASK2 .FILL x0002 MASK1 .FILL x0001