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

莱芜网站建设服务成都网站建设公司思乐科技

莱芜网站建设服务,成都网站建设公司思乐科技,做婚介网站可行性报告,做网站一般都用什么字体这里写目录标题 计算机是怎么工作的问题提出计算机的产生图灵机通用图灵机计算机 操作系统启动电源键开启后,计算机干了什么引导扇区的代码(bootsect.s)移动boot代码将setup代码载入到内存(仅仅载入,不执行&#xff09…

这里写目录标题

  • 计算机是怎么工作的
    • 问题提出
    • 计算机的产生
      • 图灵机
      • 通用图灵机
      • 计算机
  • 操作系统启动
    • 电源键开启后,计算机干了什么
    • 引导扇区的代码(bootsect.s)
      • 移动boot代码
      • 将setup代码载入到内存(仅仅载入,不执行)
      • 载入setup后,打印字符并载入system模块
      • boot代码的最后,准备转入setup执行
    • setup模块代码
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

计算机是怎么工作的

问题提出

在这里插入图片描述

计算机的产生

图灵机

在这里插入图片描述
图灵机就是模拟人脑的计算过程,缺点是他只有一套固定的逻辑

通用图灵机

在这里插入图片描述
而通用图灵机,他在图灵机的基础上进行了改进,他可以修改控制器的逻辑,向控制器中导入不同的逻辑,来实现不同的功能,这里的“设置控制器动作”就是控制不同的逻辑的,这一动作依赖于我们的编写的程序,我们的程序代码就是上图中的菜谱,程序代码用来设置控制器动作

计算机

在这里插入图片描述
将程序代码和数据存储到起来,这里的存储指的是计算机的内存,之后“运算器、控制器”会从内存中取代码指令,然后执行,这就是计算机的雏形,关键在于“取指执行”

程序代码会被翻译为汇编语言代码,每一行汇编代码,都规定了一个逻辑
计算机有一个指针,称为IP指针(也称PC指针),他会指向当前执行的程序代码,每次IP指针将程序代码传给控制器和运算器,控制器和运算器拿到逻辑和数据后,进行逻辑执行。总结下来就是 取指执行,计算机是如何工作的:取值执行

操作系统启动

电源键开启后,计算机干了什么

在这里插入图片描述
首先,CPU处于实模式,该模式下,该模式的寻址就是“段首址 左移四位 + 偏移地址”,而CS初始值是0xFFFF,IP初始值是0x0000.所以,CS会左移四位+IP,这里的CS和IP都是十六进制,<<4,转换成十六进制就是数字右边多个0,之后+IP,IP也是0,所以寻址之后就是0xFFFF0,而这就是BIOS程序在内存中的固定固化位置(故意这样设计,使得计算机在开机时百分百获取到IO功能,从而后续可以进行“代码载入到内存,以及从内存读代码到CPU”的工作),BIOS是基础IO系统,是一套最基本的输入输出系统,可以用来进行初始的取指令,从而交给“运算器和控制器”执行
之后检查外设,都没问题之后,

之后,BIOS(基本IO系统)将磁盘0磁道0扇区开始的一个扇区(512B大小)的代码读入到内存的0x7c00处开始。磁盘的0磁道0扇区称为引导扇区,这一块引导扇区的代码,就是操作系统的第一块代码
然后重置CS=0x07c0,IP=0x0000
所以,“控制器和运算器”就会去顺序执行CS:IP处的代码,每次都通过BIOS取指令

引导扇区的代码(bootsect.s)

移动boot代码

在这里插入图片描述
1、“.s”后缀是汇编文件的后缀,说明引导扇区的代码是汇编语言,与高级语言C语言的一个区别是,高级语言代码无法百分百的控制运行(如变量的地址是无法控制的),而汇编会百分百控制

2、代码段的代码解释:
刚开始的两行,是将两个宏的内容给到DS和ES,两个宏在图的右上角
而cx是计数寄存器,相当于循环变量
之后将SI和DI的寄存器内容置0
(其中,DS:SI配合寻址,ES:DI配合寻址)

rep movw,会与cx配合,这里是指重复移动256个字的内容,256字就是512B,相当于将整个引导扇区的汇编代码从0x7C00:0x0000处,移动到0x9000:0x0000
(低地址处留出了位置,具体用处后面会讲)

之后jumpi的作用是,将go这个标号所在位置的指令的地址相对于当前CS段地址的偏移量,赋值给IP指针,将INITSEG这个宏的内容赋值给CS代码段段首址寄存器
(因为当前的代码已经被整体挪到了0x9000:0x0000的位置,所以这个jumpi的作用是跳转到0x9000:0x偏移量,而go标号就在下一行,所以实际上相对而言还是顺序执行,但是又必不可少要在rep移动后执行该动作,因为程序已经挪动过了)

将setup代码载入到内存(仅仅载入,不执行)

在这里插入图片描述
后续代码简略说明:
1、中断,0x13是读磁盘扇区的中断,我们接下来要继续读磁盘了

2、cl规定了读磁盘时的开始扇区,al规定了读几个扇区
这里cl为02,即读第二个扇区,开始读4个,如上图下面所示,这4个扇区就是setup的扇区

3、从磁盘读到内存的哪个地址开始?,读到es:bx,即逻辑地址0x90200处,这个地址与0x90000正好差了512B
(需要注意的是,这里是向高地址顺位读,并没有占用我们之前移动bootsect所留下的地址空间(低地址处))

载入setup后,打印字符并载入system模块

在这里插入图片描述
最后,boot还要做两个工作:
1、0x10号中断,表示显示字符,而我们打印的字符就是下面双引号中的内容,上图的2处,表示字符的个数,当前是24个字符
(这个打印,与我们自己的电脑开始时的那个Windows图标是一样的,只不过win的那个很精致,我们这里很粗糙,只是打印了一行字)

2、然后会调用一个函数(即call的作用)

将下一个模块,就是system的模块,载入到内存(仅仅载入,并不执行)

boot代码的最后,准备转入setup执行

在这里插入图片描述
1、简要解释了一下system模块为什么要用call

2、转入setup执行,因为boot已经将setup模块和system模块的代码载入到了内存(即从磁盘读出,放入内存了)

之后,修改CS:IP的值,CS=0x9020,IP=0x0000,所有,会转入setup模块在内存中的首地址0x90200处开始执行

setup模块代码

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

http://www.dtcms.com/wzjs/833627.html

相关文章:

  • 域名访问网站的知识微信自己怎么创建公众号
  • 加强网站的建设工作商务网站规划设计要点
  • 建设商城网站费用网站模板中文乱码
  • 网站建设自查及整改报告珠宝网站建设需求
  • 太原市建设工程招标投标网站上海货拉拉注册公司地址
  • 宁晋网站建设网络公司浙江外贸人才网
  • 福田做网站的公司想买手表在哪个网站买是正品
  • 烹饪考试试卷哪个网站可以做网上国网app官方下载
  • 长沙模板网站建设seo网站设计工具
  • 广东佛山哪家公司建网站农产品销售网站建设方案
  • 婚介网站建设怎样建设相亲网站
  • 国内做受网站官方网站建设情况
  • 在百度怎么创建自己的网站网站的域名和密码是什么意思
  • 企业门户网站是什么意思电子商务网站开发方案
  • 邢台网站建设哪家专业网站排名优化公司哪家好
  • 滕州建设局网站百度做网站投广告
  • 张店好的网站建设的公司怎么做简单的视频网站
  • 罗湖网站建wordpress模板手机
  • 做旅游宣传网站的流程广源建设集团有限公司网站
  • 甘孜建设网站首页广告牌制作报价单明细
  • 百度提交网站入口广州最新黄码区域地图
  • 网站整站优化推广方案东莞网站建设求职
  • 蒙牛网站建设wordpress 图文教程
  • 江阴网站建设工作室定制网站建设报价单
  • 网站建设优化论坛某网站建设策划方案
  • 贵州做网站公司classipress wordpress 主题
  • 北京网站建设机构怎样提高网站的排名
  • 佛山网站设计电话竞价交易规则
  • 怎么在视频网站做淘宝客仿站
  • 网站建设带服务器wordpress无法后台