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

云南网站建设价格seo上排名

云南网站建设价格,seo上排名,做网站电话销售说辞,自己的网站怎么做关键词[手写OS]动手实现一个OS 之X86实模式下的汇编开发 x86实模式下 汇编开发是一个 intel x86实模式中的汇编程序开发类型。它涉及操纵几个16位处理器寄存器,并仅处理内存中的物理地址(与受保护模式相对)。 这种类型的编程中最广为人知的应用就…

[手写OS]动手实现一个OS 之X86实模式下的汇编开发

x86实模式下 汇编开发是一个 intel x86实模式中的汇编程序开发类型。它涉及操纵几个16位处理器寄存器,并仅处理内存中的物理地址(与受保护模式相对)。

这种类型的编程中最广为人知的应用就是1980年代编写的DOS磁盘操作程序。

而所有现代的X86操作系统都是使用的保护模式,但是嘞,当计算机启动的时候,肯定不能是以保护模式启动的,通过实模式启动,并负责切换到保护模式,而这个从实模式切换到保护模式的这个过程,那就必须在实模式下运行。

寄存器

每个寄存器都专门用于某个任务,并且如果使用正确的寄存器,则处理该任务的操作通常会更有效地运行。

在实模式下的寄存器包括:

  • 数据寄存器:
    • AX,累加寄存器
    • BX,基址寄存器
    • CX,程序计数寄存器
    • DX,数据寄存器
  • 地址寄存器:
    • SI,源地址寄存器
    • DI,目的地址寄存器
    • SP,栈顶指针寄存器
    • BP,栈底指针寄存器

每一个数据寄存器都可以分为高八位寄存器和低八位寄存器,在一个16位寄存器可以一次解决8位数据,并且可以把这8位视为一个寄存器:例如,在AX寄存器中可分为高八位AH寄存器和低八位AL寄存器

每个都可以通过修改后缀的方式:将 X 扩展为 H 和 L,用来拆分出两个寄存器

总的来说,数据寄存器和地址寄存器统称为 通用寄存器

除此之外,通用寄存器还有如下:

  • 段寄存器
    • CS,代码段寄存器
    • DS,数据段寄存器
    • ES,特殊段寄存器
    • FS,其他特殊段寄存器 (在Intel8086之前没有)
    • GS,另一其他特殊段寄存器 (在Intel8086之前没有)
    • SS,堆栈段寄存器
  • 其他寄存器
    • IP,指令指针寄存器
    • FLAGS,标志寄存器

IP 寄存器指向程序中 处理器当前正在执行的代码位置,程序员不可以直接访问这个寄存器

FLAGS寄存器储存当前处理器执行的状态,这个寄存器中的每一位都是一个标志,每个标志都可以是1或0,设置或未设置,主要的标志含义为:携带Carry,溢出Overflow,零值Zero,单步执行Single Step

X86的体系结构中经常使用标志进行比较。比如两个寄存器 进行比较后如果有差别会拉高某个标志位,然后指令检查对应的标志位,如果发现这个标志位被拉高了就跳转

cmp ax,bx
jne 欲跳转的某个Label;

操作码助记符

在实模式中,允许的操作码如下:

aaa, aad, aam, aas, adc, add, and, call, cbw, clc, cld, cli, cmc, cmp, cmpsb, cmpsw, cwd, daa, das, dec, div, esc, hlt, idiv, imul, in, inc, int, into, iret, ja, jae, jb, jbe, jc, jcxz, je, jg, jge, jl, jle, jmp, jna, jnae, jnb, jnbe, jnc, jne, jng, jnge, jnl, jnle, jno, jnp, jns, jnz, jo, jp, jpe, jpo, js, jz, lahf, lds, lea, les, lock, lodsb, lodsw, loop, loope, loopne, loopnz, loopz, mov, movsb, movsw, mul, neg, nop, not, or, out, pop, popf, push, push, puchf, rcl, rcr, rep, repe, repne, repnz, repz, ret, rol, ror, sahf, sal, sar, sbb, scasb, scasw, shl, shr, stc, std, sti, stosb, stosw, sub, test, wait, xchg, xlat, xor

还有一些其他的操作码没有具体的操作码助记符,没有被记录进来。比如“0x0F”在8086处理器中被解释为POP CS,x86家族其他处理器相比于早期处理器可能不会解释没有被记录的操作码。因此在使用没有文档解释的操作码时,你写的程序可能在之后的处理器上用不了

实模式的寻址

由于IA32和Intel64处理器的体系架构和其他处理器的架构不太一样,其他架构的可能线性地址空间就实模式地址空间,而IA32和Intel64处理器架构的还得分段。

分段模式主要是将线性地址分为两个部分: 段 + 偏移量

段地址指向一个64k的地址区间,从起始位置到指定位置的偏移量。要转换回线性地址,段地址向左移位4位,然后加上偏移量。

段寄存器:偏移寄存器 例如 DS:DX

段寄存器和通用寄存器的一些特殊组合指向重要地址

CS:IP 用来指向处理器获取下一字节代码的地址

SS:SP 指向的是入栈的最后一项的位置(一般表示栈顶)

DS:SI 通常用于指向即将被复制到 ES:DI 的数据

实模式下的PC内存分布

开始结束大小描述类型
0x000000x003FF1kb实模式IVT(中断向量表)实模式下不可用
0x004000x004FF256bBDA (BIOS数据区)实模式下不可用
0x005000x07BFF约30kb常规内存可用内存
0x07C000x07DFF512kb操作系统引导区可用内存
0x07E000x7FFFF480.5kb常规内存可用内存
0x800000x9FFFF128kbEBDA (BIOS扩展数据区)EBDA使用
0xA00000xBFFFF128kb视频显示存储硬件映射
0xC00000xC7FFF32kb视频BIOS
0xC80000xEFFFF160kbBIOS扩展
0xF00000xFFFFF64kb主板BIOS
http://www.tj-hxxt.cn/news/1399.html

相关文章:

  • asp网站建设举一个网络营销的例子
  • 福州综合网站建设免费进入b站2022年更新
  • 注重网站内容维护网页设计制作网站
  • 我想代理一个产品seo整站优化公司持续监控
  • 什么电脑做网站前段用百度竞价代理商
  • ae模板网站推荐汕头seo管理
  • 专业做pe的网站企业推广策划书
  • 太原网站建设主页网络销售怎么做才能有业务
  • 商城网站制作费用百度推广助手手机版
  • 网站建设 维护购销合同网站建设与营销经验
  • 上海网站建设 网页制作企业网络规划设计方案
  • 大发 wordpress ifanr谷歌推广seo
  • 招聘网站续费怎么做分录万网域名查询官网
  • 网站 数据库seo营销
  • 湖北省建设工程网站百度官方app免费下载
  • 网站建设陕icp青岛seo关键字排名
  • 邵阳市建设网站百度一下你就知道了 官网
  • 公司网站备案需要多久优化网站seo
  • 摄影网站模板源码成都最新疫情
  • 资源网站源码整站优化seo平台
  • 专做皮具的网站北京中文seo
  • 酒店微信网站建设新手做电商怎么起步
  • 深圳做网站排名公司优化设计电子版
  • ui设计好学吗?要学多久如何网站seo
  • 猪八戒网建设网站2500然后她叫我弄500.另外在给他2000百度官网网页版
  • 做网站如何盈利湖南企业竞价优化服务
  • 网站前期推广乔拓云网站注册
  • 开发公司出售没有规划内房屋徐州seo网站推广
  • 徐州网络推广公司百度关键词自然排名优化公司
  • 梅州市网站制作最成功的网络营销案例