下列指令中,不能在用户态执行的是( )。
A. trap指令
B. 跳转指令
C. 压栈指令
D. 关中断指令
【答案】D
【解析】trap...
用户登录可进行刷题及查看答案
【解析】trap指令、跳转指令和压栈指令均可以在用户态执行, 其中trap指令负责由用户态转换为内 核态。关中断指令为特权指令,必须在核心态才能执行,选 D。注意,在操作系统中,关中断指令是权限非常大的指令,因为中断是现代操作系统正常运行的核心保障之一,能把它关掉,说明执行这条指令的一定是权限非常大的机构(管态)。
在用户态执行的指令是受限制的,通常只能执行非特权操作。
A错误。trap指令一般指陷阱指令。陷阱指令是处理陷阱的指令。陷阱是指计算机系统在运行中的一种意外事故,例如电源电压不稳、存储器检验出错、存储器校验出错、输入输出设备出现故障、用户使用了未定义的指令或特权指令等意外情况,使得计算机系统不能正常工作。在一般的计算机中,陷阱指令作为隐含指令不提供给用户使用,只有在出现故障时,才由CPU自动产生并执行。在一些系统中,用户态程序可以通过trap指令请求操作系统的服务,从用户态向内核态(特权态)转移执行。因此,用户态程序可以执行trap指令。
B错误。跳转指令用于在程序中无条件或有条件地跳转到指定的地址。跳转指令通常是用户态程序的一部分,因此可以在用户态执行。
C错误。压栈指令是将数据压入栈中的指令,用于保存当前执行环境和数据。在用户态程序中,可以使用压栈指令来维护局部变量、函数调用的返回地址等,因此可以在用户态执行。
D正确。关中断指令用于在处理器中禁用中断请求。这个指令是一种特权操作,只有处于内核态(特权态)的代码才能执行。用户态程序没有权限执行关中断指令。
本题选D。
登录后提交答案
暂无评论,来抢沙发