了解命令的作用
Understand what a command does
我正在学习 x86
语法。
我偶然发现了这个命令,但我似乎不确定它的作用:
cmpl [=10=]x0,%cs:0x6574
我知道cmp
只是比较差异并设置标志。 l
表示正在比较无符号值。
我的问题是:
我们在比较什么?
0x0
中的值与什么值 %cs:0x6574
相比?
cs 寄存器包含一个地址,我应该向它添加 0x6574 并提取值吗?类似于:
mem[cs+0x6575]
提前致谢!
假设这是来自实模式代码,它是默认段覆盖。因此,而不是隐式 DS 使用 CS 段。
在实模式下地址计算有点不同。段的值首先乘以 16,然后加上偏移量。
所以在你的符号中它将是
mem[16*cs+0x6575]
我正在学习 x86
语法。
我偶然发现了这个命令,但我似乎不确定它的作用:
cmpl [=10=]x0,%cs:0x6574
我知道cmp
只是比较差异并设置标志。 l
表示正在比较无符号值。
我的问题是:
我们在比较什么?
0x0
中的值与什么值 %cs:0x6574
相比?
cs 寄存器包含一个地址,我应该向它添加 0x6574 并提取值吗?类似于:
mem[cs+0x6575]
提前致谢!
假设这是来自实模式代码,它是默认段覆盖。因此,而不是隐式 DS 使用 CS 段。 在实模式下地址计算有点不同。段的值首先乘以 16,然后加上偏移量。
所以在你的符号中它将是
mem[16*cs+0x6575]