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

铜陵网站建设价格在实际页面设计中文本通常使用

铜陵网站建设价格,在实际页面设计中文本通常使用,wordpress请求排除,济宁房产网Linux-0.11 boot目录bootsect.s详解 模块简介 bootsect.s是磁盘启动的引导程序#xff0c;其概括起来就是代码的搬运工#xff0c;将代码搬到合适的位置。下图是对搬运过程的概括#xff0c;可以有个印象#xff0c;后面将详细讲解。 bootsect.s主要做了如下的三件事: 搬…Linux-0.11 boot目录bootsect.s详解 模块简介 bootsect.s是磁盘启动的引导程序其概括起来就是代码的搬运工将代码搬到合适的位置。下图是对搬运过程的概括可以有个印象后面将详细讲解。 bootsect.s主要做了如下的三件事: 搬运bootsect.s代码到0x9000:0x0000处加载setup.s代码到0x9000:0x200处加载system模块到0x1000:0x0000处 过程详解 搬运bootsect.s代码到0x9000:0x0000处 将ax寄存器设置为0x07c0 接着ax寄存器的值拷贝给ds即ds目前也为0x07c0。 将ax寄存器设置为0x9000 接着ax寄存器的值拷贝给es即es目前也为0x9000。 mov $BOOTSEG, %ax #将ds段寄存器设置为0x07c0 mov %ax, %ds mov $INITSEG, %ax #将es段寄存器设置为0x9000 mov %ax, %es接下来将ecx的值设置为256。接下来通过sub将si和di寄存器设置为0。 接下来使用rep和movsw从ds:si拷贝256个字(512字节)到es:si处。 mov $256, %cx #设置移动计数值256字 sub %si, %si #源地址 ds:si 0x07C0:0x0000 sub %di, %di #目标地址 es:si 0x9000:0x0000 rep #重复执行并递减cx的值 movsw #从内存[si]处移动cx个字到[di]处接下来使用ljmp跳转到0x9000 偏移量为go处的代码执行。 ljmp $INITSEG, $gocs寄存器的值为0x9000。接下来的操作就是将dsesss都赋值为0x9000。同时将sp设置为0xFF00。 go: mov %cs, %ax #将dsesss都设置成移动后代码所在的段处(0x9000)mov %ax, %dsmov %ax, %esmov %ax, %ssmov $0xFF00, %sp # arbitrary value 512加载setup.s代码到0x9000:0x200处 接下来这一部分用于加载setup.s的代码到0x9000:0200处。 这里利用了BIOS的0x13号中断。 下面是关于BIOS INT 0x13在使用时的说明: ah 0x02 读磁盘到内存 al 4 读4个扇区 ch: 柱面号的低8位 cl: 0-5位代表开始扇区 6-7位 代表磁道号的高2位代表柱面的高2位。 dh 磁头号 dl 驱动器号。 如果读取成功则执行ok_load_setup。 如果不成功则对驱动器进行复位再次读取。 load_setup:mov $0x0000, %dx # drive 0, head 0mov $0x0002, %cx # sector 2, track 0mov $0x0200, %bx # address 512, in INITSEG.equ AX, 0x0200SETUPLENmov $AX, %ax # service 2, nr of sectorsint $0x13 # read itjnc ok_load_setup # ok - continuemov $0x0000, %dxmov $0x0000, %ax # reset the disketteint $0x13jmp load_setup下面依旧是使用INT 0x13去获取一些磁盘驱动器的参数。 ah 0x08 用于获取驱动器参数。 dl为驱动器号。 返回信息 如果出错则CF置为 ah状态码al 0 al 0bl为驱动器的类型 AT/PS2ch 最大柱面号的低8位cl 0-5为每磁道最大扇区数 6-7代表柱面号高2位dh最大磁头数dl驱动器数量es:di 软驱磁盘参数表 ok_load_setup:mov $0x00, %dlmov $0x0800, %ax # AH8 is get drive parametersint $0x13mov $0x00, %ch#seg csmov %cx, %cs:sectors0 # %cs means sectors is in %csmov $INITSEG, %axmov %ax, %es下面会使用BIOS中断0x10向终端中打印信息。 0x10中断号有多个功能 (1)读光标位置 功能号:ah0x03 输入 bh 页号 输出ch 扫描开始线cl 扫描结束线dh 行号dl 列号 (1)打印字符串 功能号:ah0x013 输入 al 放置光标的方式和规定属性es:bp 字符串位置cx 显示的字符串字符数bh 显示页面号bl 字符属性dh 行号dl 列号 mov $0x03, %ah # read cursor posxor %bh, %bhint $0x10mov $30, %cxmov $0x0007, %bx # page 0, attribute 7 (normal)#lea msg1, %bpmov $msg1, %bpmov $0x1301, %ax # write string, move cursorint $0x10加载system模块到0x1000:0x0000处 接下来要继续读system模块到内存中。 ax 0x1000, es 0x1000 mov $SYSSEG, %axmov %ax, %es # segment of 0x010000call read_itcall kill_motorread_it实际上就是将system模块存放在0x1000:0x0000处。 test执行的是0x1000 0x0fff 0x0000, read_it:mov %es, %axtest $0x0fff, %ax die: jne die # es must be at 64kB boundaryxor %bx, %bx # bx is starting address within segment接下来rp_read的过程实际是逐磁道读取磁盘中system模块的过程。如下图所示共两个磁道两个磁头每磁道八个扇区读取顺序如下所示首先读取0磁头0磁道然后读取1磁头0磁道接着读取0磁头1磁道最后读取1磁头1磁道。 rp_read首先判断是否已经读入了所有的数据(system模块)。比较ax和ENDSEG的值如果不相等则跳转到ok1_read中执行。 rp_read:mov %es, %axcmp $ENDSEG, %ax # have we loaded all yet?jb ok1_readret在ok1_read中则主要计算了当前磁道上还有多少扇区没有读取完。 ok1_read:#seg csmov %cs:sectors0, %ax !获取每磁道的扇区数sub sread, %ax !减去当前磁道已读扇区数(bootsect setup)mov %ax, %cx !cx ax 当前柱面未读扇区数shl $9, %cx !cx cx * 512字节 段内偏移add %bx, %cxjnc ok2_read !调用ok2_read函数进行读取当前磁道上剩余扇区。je ok2_readxor %ax, %axsub %bx, %axshr $9, %axok2_read实际的作用就是将当前磁道上的所有扇区全部读完。更具体的就是读取开始扇区cl和需读扇区数al的数据到es:bx开始处。 ok2_read:call read_track !读当前柱面上指定开始扇区和要读的扇区数mov %ax, %cx !ax代表本次读取的扇区数复制到cx中add sread, %ax !ax ax sread#seg cscmp %cs:sectors0, %ax !如果当前磁道上还有扇区未读则跳转到ok3_readjne ok3_readmov $1, %ax !ax 1sub head, %ax !如果head 0 ax ax - head 1,如果head 1 ax ax - head 0, 即如果磁头号为0则读取磁头面为1的扇区 否则的话将读取下一个磁道上的数据。jne ok4_readincw track 如果当前磁道上还有扇区没有读则会直接进入ok3_read再次读取。否则先进入ok4_read移动到下一个磁道或者下一个磁头进行读取。 ok4_read:mov %ax, head !保存当前的磁头号xor %ax, %ax !清除已读扇区数 ok3_read:mov %ax, sread !保存当前扇区已读扇区数shl $9, %cxadd %cx, %bxjnc rp_readmov %es, %axadd $0x1000, %axmov %ax, %esxor %bx, %bxjmp rp_read接下来的read_track在ok2_read中被调用其作用是读取当前磁道上的扇面到es:bx处。 回顾一下INT 0x13读取磁盘数据时的参数: ah 0x02 功能号代表读磁盘到内存al 需要读出的扇区总数ch 磁道(柱面)号的低8位cl 0-5位代表开始扇区 6-7位代表磁道号的高2位代表柱面的高2位。dh 磁头号dl 驱动器号es:bx 指向数据缓冲区如果出错则CF标志位置位ah中将存放出错码 read_track:push %ax !保存ax,bx,cx,dx寄存器push %bxpush %cxpush %dxmov track, %dx !获取当前的磁道号mov sread, %cx !获取当前磁道上的已读扇区数inc %cx !cl 开始读的扇区号mov %dl, %ch !ch 当前磁道号mov head, %dx !dx 当前磁头号 目前磁头号还在dl中后面会挪动到dh中。mov %dl, %dh !将磁头号从dl挪动到dh中mov $0, %dl !dl 驱动器号and $0x0100, %dx !将dx与0x0100进行按位与实际就是使得磁头号小于等于1。mov $2, %ah !ah 2读磁盘扇区的功能号int $0x13 !0x13号中断 读取磁盘数据。jc bad_rt !如果出错则跳转运行bad_rtpop %dx !恢复dx,cx,bx,ax寄存器pop %cxpop %bxpop %axret看到这里我们再回到调用read_it的地方, 注意到其中的ljmp $SETUPSEG, $0这便是跳转到了setup.s中进行执行。 mov $SYSSEG, %axmov %ax, %es # segment of 0x010000call read_it !读取磁盘上system模块call kill_motor !关闭驱动器马达#seg csmov %cs:root_dev0, %axcmp $0, %axjne root_defined#seg csmov %cs:sectors0, %bxmov $0x0208, %ax # /dev/ps0 - 1.2Mbcmp $15, %bxje root_definedmov $0x021c, %ax # /dev/PS0 - 1.44Mbcmp $18, %bxje root_defined undef_root:jmp undef_root root_defined:#seg csmov %ax, %cs:root_dev0ljmp $SETUPSEG, $0 !跳转到SETUPSEG模块进行执行Q A https://github.com/Wangzhike/HIT-Linux-0.11/blob/master/1-boot/OS-booting.md 文中如有表达不正确之处欢迎大家与我交流
文章转载自:
http://www.morning.bypfj.cn.gov.cn.bypfj.cn
http://www.morning.pbknh.cn.gov.cn.pbknh.cn
http://www.morning.rnyhx.cn.gov.cn.rnyhx.cn
http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn
http://www.morning.mcbqq.cn.gov.cn.mcbqq.cn
http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn
http://www.morning.zlmbc.cn.gov.cn.zlmbc.cn
http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn
http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn
http://www.morning.xsszn.cn.gov.cn.xsszn.cn
http://www.morning.xjpnq.cn.gov.cn.xjpnq.cn
http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn
http://www.morning.cfcdr.cn.gov.cn.cfcdr.cn
http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn
http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn
http://www.morning.gybnk.cn.gov.cn.gybnk.cn
http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn
http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn
http://www.morning.qsswb.cn.gov.cn.qsswb.cn
http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn
http://www.morning.yrwqz.cn.gov.cn.yrwqz.cn
http://www.morning.dwncg.cn.gov.cn.dwncg.cn
http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn
http://www.morning.lqypx.cn.gov.cn.lqypx.cn
http://www.morning.rdxnt.cn.gov.cn.rdxnt.cn
http://www.morning.jtfsd.cn.gov.cn.jtfsd.cn
http://www.morning.yhyqg.cn.gov.cn.yhyqg.cn
http://www.morning.yfnjk.cn.gov.cn.yfnjk.cn
http://www.morning.plpqf.cn.gov.cn.plpqf.cn
http://www.morning.jmllh.cn.gov.cn.jmllh.cn
http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn
http://www.morning.kljhr.cn.gov.cn.kljhr.cn
http://www.morning.gbrps.cn.gov.cn.gbrps.cn
http://www.morning.sfswj.cn.gov.cn.sfswj.cn
http://www.morning.bmjfp.cn.gov.cn.bmjfp.cn
http://www.morning.lkpzx.cn.gov.cn.lkpzx.cn
http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn
http://www.morning.fthqc.cn.gov.cn.fthqc.cn
http://www.morning.kgslc.cn.gov.cn.kgslc.cn
http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn
http://www.morning.btrfm.cn.gov.cn.btrfm.cn
http://www.morning.llxyf.cn.gov.cn.llxyf.cn
http://www.morning.fmrd.cn.gov.cn.fmrd.cn
http://www.morning.bbjw.cn.gov.cn.bbjw.cn
http://www.morning.mgskc.cn.gov.cn.mgskc.cn
http://www.morning.blqsr.cn.gov.cn.blqsr.cn
http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn
http://www.morning.dndk.cn.gov.cn.dndk.cn
http://www.morning.zqybs.cn.gov.cn.zqybs.cn
http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn
http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn
http://www.morning.pyncm.cn.gov.cn.pyncm.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.btgxf.cn.gov.cn.btgxf.cn
http://www.morning.sskhm.cn.gov.cn.sskhm.cn
http://www.morning.smcfk.cn.gov.cn.smcfk.cn
http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn
http://www.morning.ttshf.cn.gov.cn.ttshf.cn
http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn
http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn
http://www.morning.qlpq.cn.gov.cn.qlpq.cn
http://www.morning.zqcgt.cn.gov.cn.zqcgt.cn
http://www.morning.rxlk.cn.gov.cn.rxlk.cn
http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn
http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn
http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn
http://www.morning.knscf.cn.gov.cn.knscf.cn
http://www.morning.pkmcr.cn.gov.cn.pkmcr.cn
http://www.morning.lsfbb.cn.gov.cn.lsfbb.cn
http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn
http://www.morning.pcrzf.cn.gov.cn.pcrzf.cn
http://www.morning.dtrz.cn.gov.cn.dtrz.cn
http://www.morning.rwnx.cn.gov.cn.rwnx.cn
http://www.morning.dddcfr.cn.gov.cn.dddcfr.cn
http://www.morning.rgmls.cn.gov.cn.rgmls.cn
http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn
http://www.morning.hnrdtz.com.gov.cn.hnrdtz.com
http://www.morning.bwmm.cn.gov.cn.bwmm.cn
http://www.tj-hxxt.cn/news/264352.html

相关文章:

  • 百度一下做网站内蒙古建信建设有限公司网站
  • 自己做图网站西安公司做网站
  • 网站定位分析是什么法人查询企业名称
  • 做网站原价商品打个横线网站外链推广工具
  • 提供手机网站建设推荐怎么做qq二维码网站
  • 网站ftp管理工具网站建设与设计摘要
  • 做海报在哪个网站可以找素材网站开发结束语
  • 找做网站签证个人网站备案填写
  • 台州椒江区热销企业网站搭建html教程w3school
  • 备案网站名称与实际网站名称不一致站群推广有哪些方式
  • 有什么教做甜品的网站单页推广网站模版
  • 网站利用微信拉取用户做登录页网站建设排名优化
  • 公司网站备案需要什么登录官方网站
  • v2017网站开发手机网站设计图尺寸
  • 做网站赚金币网络备案信息查询
  • 曹县网站开发网站流量一直做不起来
  • 手机浏览器网站开发嘉峪关市建设局建管科资质网站
  • 临沂科技网站建设六安网站建设招商
  • 北京网站设计公司youx成都柚米科技15淘宝上找网站建设好吗
  • 西安专业网站开发公司网站建设杭州
  • 产品如何做网站推广wordpress上传图片x
  • 九台区建设银行网站济南WordPress培训
  • 企业服务类型有哪些塘沽网站建设优化
  • 如何自己建设淘宝网站设计公司怎么找
  • 网站建设汇卓涿州做网站公司
  • 莆田网站建设设计上海网站开发公
  • 网站建设技术是什么宁夏住房和城乡建设部网站
  • 重庆奉节网站建设公司哪里有哪个公司的软件系统开发
  • 网站怎么申请备案常用软件开发平台
  • 建网站的流程和费用加油卡系统搭建