CS:IP在装配中意味着什么?它是如何工作的?

时间:2017-11-11 21:12:07

标签: assembly x86-16 memory-segmentation

我无法理解cs:ip的含义。 :的作用是什么?

1 个答案:

答案 0 :(得分:1)

  

:的作用是什么?

根据所使用的寄存器,分隔两个寄存器的冒号具有不同的含义。

  • 如果第一个寄存器 是一个段寄存器(CSDSESFS之一,{{然后整个“段寄存器:偏移寄存器”表示指向可寻址存储器中的位置的指针(1MB + HMA)。}}或GS)要计算线性地址,首先要将段寄存器中的值乘以16,然后将该值添加到偏移寄存器中 示例包括SSCS:IPSS:SPDS:SI,...

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

  

我无法理解AX的含义。

鉴于cs:ip表示“代码段”,而cs表示“指令指针”(这不是通用寄存器!),组合ip表示CPU的位置目前正在获取执行指令。