这部分内容是Lenix基础的最后一部分,就是硬件知识。但是由于Lenix是学习用的,所涉及的硬件不多,只需要用到8259中断控制器、时钟、键盘。这部分内容这里就不细讲,在书上会说明。
由于C语言并没有提供直接操作端口的方式,因此Lenix设计了两个程序,用于完成端口的IO
; byte_t Io_inb(word_t port)
_Io_inb:
mov bx,sp
xor ax,ax;
mov dx,[bx + 2];
in al,dx
ret
; void Io_outb(word_t port,byte_t dat)
_Io_outb:
mov bx,sp
mov dx,[bx + 2]
mov al,[bx + 4];
out dx,al
ret
有了这两个程序,就可以在C程序中对硬件进行编程,当然,效率会低一些。
因为DOS已经初始化了中断控制器,将主中断控制器的中断映射到中断向量表的8-F,因此可以直接使用。如果想自己尝试设置中断,呵呵,需要等等。
由于这部分是看不到演示的,所以这里就不贴图了。