CS:IP 在汇编中是什么意思,它是如何工作的?
What does CS:IP mean in assembly and how it works?
我不明白cs:ip
是什么意思。 :
的作用是什么?
What is the role of :
?
这个分隔两个寄存器的冒号根据使用的寄存器有不同的含义。
如果第一个寄存器是段寄存器(CS
、DS
、ES
、FS
、GS
或 SS
) 那么整个 "segment register : offset register" 表示法表示指向可寻址内存 (1MB + HMA) 中某个位置的指针。要计算线性地址,首先将段寄存器中的值乘以 16,然后将偏移寄存器中的值相加。
示例包括 CS:IP
、SS:SP
、DS:SI
、ES:DI
、...
如果第一个寄存器 不是 段寄存器,则两个 16 位通用寄存器 (GPR) 的组合用于表示 32-位数。对于 8086,仅仅是因为它的架构没有 32 位寄存器。
您会经常看到的一种表示法是 DX:AX
。这表示的值是先将 DX
中的内容乘以 65536,然后加上 AX
.
中的内容计算得出的
I can't understand what cs:ip
means.
鉴于 cs
表示 "code segment" 而 ip
表示 "instruction pointer" (这不是通用寄存器!)组合 cs:ip
表示CPU 当前正在获取要执行的指令的位置。
我不明白cs:ip
是什么意思。 :
的作用是什么?
What is the role of
:
?
这个分隔两个寄存器的冒号根据使用的寄存器有不同的含义。
如果第一个寄存器是段寄存器(
CS
、DS
、ES
、FS
、GS
或SS
) 那么整个 "segment register : offset register" 表示法表示指向可寻址内存 (1MB + HMA) 中某个位置的指针。要计算线性地址,首先将段寄存器中的值乘以 16,然后将偏移寄存器中的值相加。
示例包括CS:IP
、SS:SP
、DS:SI
、ES:DI
、...如果第一个寄存器 不是 段寄存器,则两个 16 位通用寄存器 (GPR) 的组合用于表示 32-位数。对于 8086,仅仅是因为它的架构没有 32 位寄存器。
您会经常看到的一种表示法是DX:AX
。这表示的值是先将DX
中的内容乘以 65536,然后加上AX
. 中的内容计算得出的
I can't understand what
cs:ip
means.
鉴于 cs
表示 "code segment" 而 ip
表示 "instruction pointer" (这不是通用寄存器!)组合 cs:ip
表示CPU 当前正在获取要执行的指令的位置。