小编wil*_*pie的帖子

[ebp*2]是否引用DS或SS段?

IDM表示,如果EBP用作基址寄存器,则内存操作使用SS段.其结果是,[ebp + esi][esi + ebp]引用SS和DS的段,分别.参见NASM的文档:3.3有效地址.

另外,在上述相同的部分,NASM提到如何通过替换以产生更短的机器代码[eax*2][eax+eax].

然而,NASM还生成[ebp + ebp]用于[ebp*2](即没有碱寄存器).

我怀疑[ebp+ebp]引用SS段,并[ebp*2]引用DS段.

我问NASM这个问题.他们思考[ebp*2]并且[ebp+ebp]是一样的,但对我来说没有意义.显然,[ebp+ebp](ebp作为基址寄存器)引用SS段.如果它们相同,也[ebp*2必须参考SS.这意味着SS只要ebp是基数或索引寄存器就被引用,这又意味着SS [ebp + esi][esi + ebp]引用SS段,因此它们必须相同.

有谁知道哪个部分[ebp*2]使用?

x86 assembly nasm opcode instructions

14
推荐指数
1
解决办法
383
查看次数

标签 统计

assembly ×1

instructions ×1

nasm ×1

opcode ×1

x86 ×1