为了执行一个I/O操作(即屏幕键盘输入/输出),NASM要求使用Linux系统调用中断0x80。为什么不允许直接使用机器指令的执行控制台的I / O。
i/o linux
------解决方案--------------------
应用程序当然是不允许的,这是系统安全和稳定性的考虑,毕竟端口的直接操作带来的后果和影响是系统整体性的,稍有不慎就可能导致整个系统异常乃至崩溃,所以才实行了权限分级管理。
------解决方案--------------------
权限权限。
如果任何一个人都能有访问io的权限,那么,就很难实现多用户多任务,试想一下,多个人同时向打印一篇文章,他们都用in out操作打印机的寄存器,那会出现什么情况?
现代处理器提供基于权限的硬件机制保证操作系统可以对所执行的代码有权限要求。
基于x86的linux就是用0x80号中断门提升自己的权限。只有高权限的代码,才能访问io操作。