1.执行下述指令片段后,IDT装在内存的什么地址?表的长度是多少?表中可以存放多少个门描述符?
IDTREG DW 01FFH,0000H,0001H
...
LIDT IDTREG
IDT起始地址为:00010000H,
结束地址为:00010000H+01FFH=000101FFH。
表的长度为:01FFH+1=0200H字节=512字节可以存放:512/8=64个描述符。
2.假设8259的端口地址为50H、51H,试编写一段程序,将8259中的IRR、ISR、IMR的内容读出送至存储器中REG_ARR开始的内存单元中
MOV AL,0AH ;读出命令,P=0,RR=1,RIS=0,选IRR
OUT 50H,AL
IN AL,50H ;读IRR
MOV [REG_ARR],AL
MOV AL,0BH ;读出命令,P=0,RR=1,RIS=1,选ISR
OUT 50H,AL
IN AL,50H ;读ISR
MOV [REG_ARR+1],AL
IN AL,51H ;读IMR
MOV [REG_ARR+2],AL
3.图略
4.某微机系统只有一片8259,其端口地址为02C0H、02C1H,试编写初始化程序,要求:1)中断请求输入采用电平触发
2)IR0的中断类型码是16
3)采用缓冲器方式
4)采用普通的EOI命令
ICW1 EQU 02C0H ;端口地址
ICW2 EQU ICW1+1
ICW3 EQU ICW2
ICW4 EQU ICW2
MOV AL,00011011B ;电平触发,单片,需设置ICW4
OUT ICW1,AL ;设置ICW1
NOP ;I/O端口延时
MOV AL,10H ;设置ICW2,中断类型码为16
OUT ICW2,AL
NOP
MOV AL,00001101B ;设置ICW4,缓冲方式,非自动结束
OUT ICW4A,AL
NOP
IDTREG DW 01FFH,0000H,0001H
...
LIDT IDTREG
IDT起始地址为:00010000H,
结束地址为:00010000H+01FFH=000101FFH。
表的长度为:01FFH+1=0200H字节=512字节可以存放:512/8=64个描述符。
2.假设8259的端口地址为50H、51H,试编写一段程序,将8259中的IRR、ISR、IMR的内容读出送至存储器中REG_ARR开始的内存单元中
MOV AL,0AH ;读出命令,P=0,RR=1,RIS=0,选IRR
OUT 50H,AL
IN AL,50H ;读IRR
MOV [REG_ARR],AL
MOV AL,0BH ;读出命令,P=0,RR=1,RIS=1,选ISR
OUT 50H,AL
IN AL,50H ;读ISR
MOV [REG_ARR+1],AL
IN AL,51H ;读IMR
MOV [REG_ARR+2],AL
3.图略
4.某微机系统只有一片8259,其端口地址为02C0H、02C1H,试编写初始化程序,要求:1)中断请求输入采用电平触发
2)IR0的中断类型码是16
3)采用缓冲器方式
4)采用普通的EOI命令
ICW1 EQU 02C0H ;端口地址
ICW2 EQU ICW1+1
ICW3 EQU ICW2
ICW4 EQU ICW2
MOV AL,00011011B ;电平触发,单片,需设置ICW4
OUT ICW1,AL ;设置ICW1
NOP ;I/O端口延时
MOV AL,10H ;设置ICW2,中断类型码为16
OUT ICW2,AL
NOP
MOV AL,00001101B ;设置ICW4,缓冲方式,非自动结束
OUT ICW4A,AL
NOP