下列指令中,只能在内核态执行的是( )。
A、trap 指令 B、I/O 指令 C、数据传送指令 D、设置断点指令
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
A. trap 指令(陷阱指令)
可以在用户态执行。trap 指令是用户程序主动发起一个异常(或软中断),用于向操作系统请求服务(即系统调用)。例如,在x86架构中,int 0x80 或 syscall 指令用于触发系统调用。这些指令在用户态下执行,但会切换到内核态处理。
trap
int 0x80
syscall
B. I/O 指令(输入/输出指令)
只能在内核态执行。直接操作I/O设备(如读写磁盘、网络包收发、键盘输入)的指令是特权指令。如果允许用户程序直接执行I/O指令,可能会破坏设备状态或绕过操作系统的安全管控(例如直接读取其他用户的数据)。因此,所有I/O操作必须通过操作系统内核(设备驱动程序)来代理执行。
C. 数据传送指令(例如 mov)
mov
可以在用户态执行。这些指令用于在寄存器与内存之间或寄存器之间移动数据,是普通非特权指令,用户程序可以自由使用。
D. 设置断点指令
可以在用户态执行。设置断点通常由调试器(如GDB)使用,例如x86架构中的 int3 指令(机器码为 0xCC)。调试器在用户态下运行,并在目标程序中插入断点指令。当程序执行到断点时,会触发异常,陷入内核,由内核将控制权交还给调试器。但插入断点指令本身是在用户态完成的(调试器修改目标程序的内存)。
int3
0xCC
答案:B 解析:在内核态下,CP...
登录后提交答案