美文网首页程序员简友广场想法
汇编每天1分钟 (5) | 寄存器 CS、IP

汇编每天1分钟 (5) | 寄存器 CS、IP

作者: GTR车头 | 来源:发表于2020-06-23 20:23 被阅读0次

我们前面讲到内存地址是由段地址+偏移地址组成,例如:073F:0100。

接下来我们通过debug工具来检测,内存地址到底存放在哪个寄存器:

图1-1

从图1-1中,以073F:0100为例,我们可以看出0100(偏移地址)的存放寄存器有且只有一个,也就是IP寄存器;存放073F(段地址)的寄存器有DS、ES、SS、CS寄存器。

我们依次修改DS、ES、SS、CS,执行debug u命令查看变化。

首先修改DS:

修改ds的值为0 执行后,指令缓存器内存地址未发生变化

继续修改ES:

还是没变化

修改SS:

依旧

最后修改CS:

指令缓存器内存地址发生变化,由073F:0100变更为0000:0100

最终,我们得出结论——CS寄存器存放段地址,IP寄存器存放偏移地址。

指令的执行步骤如下:

步骤一:CPU从CS:IP 所指向的内存单元读取指令,存放到指令缓存器中。
步骤二:IP = IP + 所读指令的长度,从而指向下一条指令。
步骤三:执行指令缓存器中的内容,回到步骤一

相关文章

  • 汇编语言学习1

    汇编语言学习(王爽2.3章) 1.代码段储存寄存器CS和指令寄存器IP共同决定代码开始执行的位置:(CS左移四位+...

  • 汇编每天1分钟 (5) | 寄存器 CS、IP

    我们前面讲到内存地址是由段地址+偏移地址组成,例如:073F:0100。 接下来我们通过debug工具来检测,内存...

  • 汇编语言学习笔记(四)CS 代码段寄存器

    一、 CS 和IP CS为代码段寄存器(code segment),IP为指令指针寄存器,他们指示了CPU当前要读...

  • CS和IP

    CS和IP CS为代码段寄存器,IP为指令指针寄存器,它们指示了CPU当前要读取指令的地址 任意时刻,8086CP...

  • 2.寄存器

    CS寄存器 CS(Code Segment)为代码段寄存器,IP为指令指针寄存器,它们指示了CPU要读取的当前指令...

  • BIOS内存分布+grub2

    系统重启时,相关寄存器初始化 IP: 0xFFF0 CS: 0xF000 段地址为CS<<4(CS*16):0x...

  • 寄存器小结

    寄存器小结 AX BX CX DX存放一般性数据,被称为通用寄存器 CS:IPCS为代码段寄存器,IP为指令指针寄...

  • 计算机是如何启动的

    一.启动入口 任何启动程序或者系统都有启动入口。那么计算机的启动入口是什么呢 1.1 CS:IP CS寄存器: 代...

  • 有关汇编相关参考博客

    汇编之常识(一)汇编基础 CPU等硬件结构 数据总线 地址总线 控制总线 汇编之寄存器(二)寄存器 数据地址寄存器...

  • IOS arm64常用的汇编

    导论 生成汇编文件 寄存器 arm64 汇编条件域 arm64 汇编指令 总结 1. 生成汇编文件 2. 寄存器 ...

网友评论

    本文标题:汇编每天1分钟 (5) | 寄存器 CS、IP

    本文链接:https://www.haomeiwen.com/subject/qkahfktx.html