【问题标题】:What does CS:IP mean in assembly and how it works?CS:IP 在汇编中是什么意思以及它是如何工作的?
【发布时间】:2018-04-24 20:47:21
【问题描述】:

我不明白cs:ip 是什么意思。 :的作用是什么?

【问题讨论】:

  • 简单地说,语法是segment:offset。在这种情况下代码段:指令指针。一个简单的类比可能是chapter : verse,其中一次只有一章可用。
  • 不可能仅仅“理解”这一点,它是 x86 16b 实模式寻址的不合逻辑的特殊语法。总地址空间为 20 位大,但使用两个 16 位值来计算 20b 物理地址。搜索一些 x86 实模式寻址段/偏移书/文档/教程。这看起来足够完整和简短:thestarman.pcministry.com/asm/debug/Segments.html
  • 你的问题让我怀疑你是否尝试过用谷歌搜索。

标签: assembly x86-16 memory-segmentation


【解决方案1】:

:的作用是什么?

这个分隔两个寄存器的冒号具有不同的含义,具体取决于所使用的寄存器。

  • 如果第一个寄存器段寄存器(CSDSESFSGSSS 之一)那么整个“段寄存器:偏移寄存器”符号表示指向可寻址存储器(1MB + HMA)中某个位置的指针。要计算线性地址,首先将段寄存器中的值乘以 16,然后将偏移寄存器中的值相加。
    示例包括CS:IPSS:SPDS:SIES:DI、...

  • 如果第一个寄存器不是段寄存器,则使用两个 16 位通用寄存器 (GPR) 的组合来表示 32 位数字。在 8086 的情况下,仅仅是因为它的架构没有 32 位寄存器。
    你会看到很多的符号是DX:AX。这表示的值是先将 DX 中的内容乘以 65536,然后将 AX 中的内容相加。

我不明白cs:ip 是什么意思。

鉴于cs 表示“代码段”并且ip 表示“指令指针”(这不是通用寄存器!)组合cs:ip 表示CPU 当前获取指令以执行的位置.

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2012-07-22
    • 2010-11-22
    • 2015-02-02
    • 2011-06-07
    • 2011-04-18
    相关资源
    最近更新 更多