了解命令的作用

时间:2017-03-22 22:31:16

标签: att

我正在学习x86语法。

我偶然发现了这个命令,我似乎不确定它的作用:

cmpl $0x0,%cs:0x6574

我知道cmp只是比较差异并设置标志。而l表示正在比较无符号值。

我的问题是:

我们在比较什么?
0x0中的值与%cs:0x6574的值是什么?
cs寄存器包含一个地址,我应该向它添加0x6574并提取值吗?类似的东西:

mem[cs+0x6575] 

提前致谢!

1 个答案:

答案 0 :(得分:1)

假设这是来自实模式代码,则它是默认的段覆盖。因此,而不是隐式DS使用CS段。 在实模式下,地址计算有点不同。段的值首先乘以16,然后加上偏移量。

所以在你的记谱中它将是

mem[16*cs+0x6575]