1.指令 :CPU能够识别、执行的最基本的命令。
但是值得区分的是一行指令和一行代码不同,高级语言中的一行代码可能对应多条指令。例如:C语言描写的x = x + 1对应3条指令。
2.指令包含特权指令和非特权指令。
**特权指令:**不允许用户程序使用。如:内存清零指令
非特权指令:例如简单的加减运算指令。
那么如何判断CPU当前是否可以执行特权指令呢??
程序状态字寄存器PSW中的某个标识位可以用来标识当前的CPU状态,即分为:用户态(目态)和核心态(管态)。其中用户态只能执行非特权指令,而核心态既可以执行特权指令也可以执行非特权指令。
不同种类的指令也将会导致不同的程序的产生。
操作系统中的程序可以分为两种:
内核程序:他是操作系统的管理者 ,既可以执行特权指令也可以执行非特权指令,运行在核心态 。
应用程序:为了保证系统的安全运行,普通的应用程序只能执行非特权指令,运行在用户态。