文档章节

进入保护模式(十)堆栈的声明

Cobbage
 Cobbage
发布于 2013/12/31 15:42
字数 424
阅读 25
收藏 0

一、堆栈

       堆栈数据结构中特点是先进后出的。

       堆栈作用有哪些?

                         书上那时候讲了个四则运算的处理,括号匹配类的;进制之间的转换;

                          最简单产生个栈的异常,写个没有结束的递归;

        目前用的环境中堆栈主要用来存储:1.地址环境信息,例如跳转,中断;

                                                  2.参数传递,或者直接寄存器;

                                                  3.异常产生的错误信息也是存在这里的

       在保护模式下对栈的权限使用是很严格的,当前的权限(CPL)要要大于等于目标(DPL)的权限

       并在任务切换的时候信息保存也是要在栈中切换的,对后面实现多任务(用户态)很重要的;

       当用户-》内核 堆栈的信息要转移的 由于请求不了高权限的堆栈内容要转移。

二、内容大小的声明

       (1)在实模式下地址方式是段:偏移量

           1.1由于堆栈的寻找地址减法的

           1.2所以声明一个数据段,然后最后一个位置指向sp;

               这个数据段就是大小了

---------------------------------------------------

       (2)保护模式下下的那

              2.1也可以像上面那样声明,直接简单

              2.2另一种方法自己计算

                  书上给的例子是 偏移地址 0x00007C00    大小《0xFFFFE000 初识地址0

                =》 0XFFFFFFFF       0XFFFFE000

                     0X00007C00      0X0007C00

                     0X0007DFF       0x00006C00

--------------------------------------------------------

        下面就看设置公用的栈地址,还是私用的了

        

     

© 著作权归作者所有

共有 人打赏支持
Cobbage

Cobbage

粉丝 49
博文 137
码字总数 70528
作品 1
闵行
QA/测试工程师
进入保护模式(五)简单任务的安装

一、任务 任务是动态的概念,程序的执行状态。程序给的解释就是静态的,例如桌面上放了个五子棋的程序。 为了保存任务的状态,并在下次重新执行程序的时候恢复它们,每个任务都应当拥有一个额...

Cobbage
2013/12/19
0
0
理解Eureka的自我保护模式

本文我们来探讨Eureka的自我保护模式。自我保护模式是Eureka的重要特性。进入自我保护模式最直观的体现,是Eureka Server首页输出的警告,如图4-10所示。 图4-10 Eureka Server自我保护模式界...

eacdy0000
2017/10/16
0
0
汇编语言程序设计读书笔记(GAS版)

IA-32平台的寄存器: 寄存器 描述 通用 8个32位寄存器,用于存储正在处理的数据 段 6个16位寄存器,用于处理内存访问 指令指针 单一的32位寄存器,指向要执行的下一条指令码 浮点数据 8个80位...

ryanliue
07/24
0
0
Linux内核-编译与启动流程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feilengcui008/article/details/48605863 (额…觉得Linux编译链接过程和启动过程还是有那么点作用的哈,要理清...

feilengcui008
2015/09/20
0
0
linux汇编学习(4)-----引导linux内核

【完整代码已经归档到 https://github.com/linzhanglong/mini_bootloader 】 引导内核调试了很久,终于调通了,这里主要关键点在于长跳转或者CPU模式切换时候段寄存器的初始化好,否则会跳不...

linzhanglong
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部