计算机基础架构与汇编语言入门
1. 保护环
保护环是为了安全和稳定性而设计的限制应用程序能力的机制之一,最初为Multics操作系统(Unix的直接前身)所发明。每个环对应一个特定的特权级别,每种指令类型与一个或多个特权级别相关联,在其他级别上不可执行。当前特权级别以某种方式存储(例如,在一个特殊寄存器中)。
Intel 64有四个特权级别,但实际上只使用两个:环0(最高特权)和环3(最低特权)。中间的环原本计划用于驱动程序和操作系统服务,但流行的操作系统并未采用这种方法。
在长模式下,当前保护环编号存储在寄存器cs的最低两位(并在ss的相应位中重复)。只有在处理中断或系统调用时才能更改。因此,应用程序不能以提升的特权级别执行任意代码,只能调用中断处理程序或执行系统调用。
2. 硬件栈
2.1 硬件栈的基本概念
从一般的数据结构角度来看,栈是一种具有两种操作的数据结构:可以将新元素放置在栈顶(push),也可以从栈顶移除元素(pop)。
硬件对这种数据结构提供支持,但这并不意味着有单独的栈内存,它只是通过两条机器指令(push和pop)和一个寄存器(rsp)实现的一种模拟。rsp寄存器保存栈顶元素的地址。
2.2 指令操作流程
- push argument :
- 根据参数大小(允许2、4和8字节),rsp的值减少2、4或8。
- 参数从修改后的rsp地址开始存储在内存中。
- pop
超级会员免费看
订阅专栏 解锁全文
990

被折叠的 条评论
为什么被折叠?



