|
|
第10章习题
1.修改代码10-1,对8259芯片编程,屏蔽除RTC外的其他所有中断,观察字符“@”的变化速度。
答案:
删除第157~159行,改为如下内容:
; 主片:只允许 IRQ2
mov al, 0xfb
out 0x21, al
; 从片:只允许 IRQ0
mov al, 0xfe
out 0xa1, al
重新编译并写入虚拟硬盘,启动虚拟机观察。
2.修改代码10-1,使之用一种新的方法来产生中断信号。建议的方法是采用周期性中断。不过,这涉及选择分频电路的分节点,比如,你可以选择250ms或者500ms,它们分别会在1秒种内产生4次或2次中断。
答案:
将第150行修改为
mov al,0x42
这是设置寄存器B,允许周期性中断,禁止更新结束后中断,BCD码,24小时制
在第151行之后插入以下指令
mov al, 0x0a
or al, 0x80
out 0x70, al
in al, 0x71
or al, 0x0f ;设置RTC寄存器A,使其每秒发生2次中断
out 0x71, al
重新编译并写入虚拟硬盘,启动虚拟机观察。
|
|