当前位置: 首页 > news >正文

东阳做网站公司朋友圈网站怎么做的

东阳做网站公司,朋友圈网站怎么做的,免费个人网页制作成品,扬州公司做网站公司哪家好前面两回是把启动区的代码复制来复制去的,这里我们要讨论的就是操作系统怎么为程序访问内存的方式做初步规划的? 操作系统的代码最开头的 512 字节的数据,先从硬盘的启动区移动到了内存 0x7c00 处,然后又立刻被移动到 0x90000 处…

前面两回是把启动区的代码复制来复制去的,这里我们要讨论的就是操作系统怎么为程序访问内存的方式做初步规划的?

操作系统的代码最开头的 512 字节的数据,先从硬盘的启动区移动到了内存 0x7c00 处,然后又立刻被移动到 0x90000 处,并且跳转到 0x90000 加上 go 这个标签所代表的偏移量。

在这里插入图片描述
接下来就是关注后续的代码:

go:	mov	ax,csmov	ds,axmov	es,ax
; put stack at 0x9ff00.mov	ss,axmov	sp,0xFF00		; arbitrary value >>512

一眼望去,全都是 mov 操作,那就很好办了。这段代码的直接意思很容易理解,就是把 cs 寄存器的值分别复制给 ds、es 和 ss 寄存器,然后又把 0xFF00 给了 sp 寄存器。

回顾CPU寄存器的图解:
在这里插入图片描述
所以,其实操作系统的代码目的性都是非常明确的,每一条代码都是为后续做铺垫的,你只需要关注它要完成什么事情,要理解它们要完成的事情。

这些寄存器是干嘛的?
cs 寄存器表示代码段寄存器,CPU 即将要执行的代码在内存中的位置,就是由 cs:ip 这组寄存器配合指向的,其中 cs 是基址,ip 是偏移地址。

由于之前执行过一个段间跳转指令,还记得不?

jmpi go,0x9000

这个指令用另一种伪代码表示就是:

cs = 0x9000
ip = go

所以现在 cs 寄存器里的值就是 0x9000,ip 寄存器里的值是 go 这个标签的偏移地址。那么刚刚说的三个 mov 指令就分别给 ds、es 和 ss 寄存器赋值为了 0x9000,也就是 cs 寄存器里的值。

ds 是数据段寄存器,作为访问内存数据时的基地址。之前我们说过了,当时它被赋值为 0x07c0,是因为之前的代码在 0x7c00 处,现在代码已经被挪到了 0x90000 处,所以现在自然又改赋值为 0x9000 了。

es 是扩展段寄存器,先不用理它。

ss 是栈段寄存器,后面要配合栈指针寄存器 sp 来表示此时的栈顶地址。而此时 sp 寄存器被赋值为 0xFF00 了,所以目前的栈顶地址,就是 ss:sp 所指向的地址 0x9FF00 处。

在这里插入图片描述
CPU访问内存的三种途径
总结上面的内容就是:CPU访问内存有三种途径——访问代码的CS:IP,访问数据的ds:xxx,以及访问栈的ss:sp。其实就是一个程序分成了不同的段,数据段,代码段,堆栈段。

其中, cs 作为访问指令的代码段寄存器,被赋值为了 0x9000。ds 作为访问数据的数据段寄存器,也被赋值为了 0x9000。ss 和 sp 作为栈段寄存器和栈指针寄存器,分别被赋值为了 0x9000 和 0xFF00,由此计算出栈顶地址 ss:sp 为 0x9FF00,之后的压栈和出栈操作就以这个栈顶地址为基准。

概括来说,这一部分其实就是把代码段寄存器 cs、数据段寄存器 ds、栈段寄存器 ss 和栈指针寄存器 sp 分别设置好了值,方便后续使用。

从操作系统的角度来看,就是初步规划了内存,给程序如何访问代码,如何访问数据,还有如何访问栈制定了规则。其中访问代码和数据的规划方式,就是设置了一个基址;访问栈就是设置了栈顶指针,指向了一个远离代码位置的地方。

在这里插入图片描述

总结

到这里最操作系统最最最基础的准备工作就做好了。

  1. 把代码从硬盘移动到内存,又从内存移动到另一个地方0x90000。
  2. 数据段寄存器ds和代码段寄存器cs此时都被设置成了0x9000,也就是为了跳转代码和访问内存数据,设置了一个内存的基地址,以方便代码的编写。
  3. 栈顶地址被设置成了0x9FF00,具体表现为栈段寄存器ss为0x9000,栈指针寄存器sp为0xFF00.

现在仅仅是考虑启动区的512字节代码,不难想到像BIOS一样,操作系统还有很多代码位于硬盘中,不能抛下它们不管啊。所以下面就是把仍然在硬盘的操作系统代码,“请”到内存中来。

http://www.15wanjia.com/news/191849.html

相关文章:

  • 司法鉴定网站建设的内容iis新建网站不能访问
  • 林州企业网站建设百度高级搜索页面的网址
  • 上海网站建设制作微信网络运营商
  • 鲤城网站建设推广服务公司做网站排名有用吗
  • 苏州建站模板厂家网站建设团队介绍怎么写
  • 2015年做哪个网站能致富网页设计与制作第三版
  • 网站建设公司企业网站管理系统如何建论坛网站
  • 创新的模板网站建设seo快速排名的方法
  • 网站图片如何做缓存免费咨询链接任务自动拦截问题
  • 自己电脑做主机怎么做网站WordPress评论第页
  • 官方网站车联网是谁做贵阳网站建设服务公司
  • 公司免费招聘网站贵阳城乡建设学校网站
  • 广州建设官方网站如何做企业推广
  • 网站建设与管理淘宝郑州网络推广技术
  • 平顶山市做网站电商系统的服务商
  • 什么叫门户类网站最新新闻资讯
  • 网站建设找什么公司好golang 网站开发 开源
  • 申请做版主 再什么网站腾讯学生服务器可以做网站吗
  • 工信部查询网站备案天津个人网站建设
  • 怎么把网站链接做二维码东莞网站制作培训
  • 网站 title 被修改沈阳无痛人流大概多少费用
  • 网站做成app需要多少钱群晖wordpress 外网很慢
  • 网站开发发展方向网站开发与设计实验报告总结
  • 香河住房和建设局网站建设垂直网站需要哪些流程图
  • 哈尔滨网站关键词优化排名无锡网站建设wuxi8878
  • 网站建设费用包括哪些方面品牌设计公司的业务领域
  • wordpress4.8下载长沙seo排名公司
  • 网站怎么自适应屏幕大小整形网站开发
  • 做网站大家都找谁百度网站地图模板
  • 网站过程贵阳电商网站建设