将scasd转换为cmp dword

时间:2015-09-03 14:49:49

标签: assembly nasm

有什么方法可以将scasd转换为cmp dword(我不需要增加edi)。

mov eax, 0x50905090
mov edi, edx
scasd

我试过

cmp dword edx, 0x50905090

cmp dword [edx], 0x50905090

cmp dword [edx-0x4], 0x50905090

所有这些都导致了段错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

mov eax, 0x50905090
mov edi, edx
scasd
  

将scasd转换为cmp dword的方法是什么(我不需要增加edi)。

正确的翻译是

mov eax, 0x50905090
mov edi, edx
cmp eax, [es:edi]

或更短

mov eax, 0x50905090
cmp eax, [es:edx]

您不能使用您建议的替代方案(使用立即数),因为操作数的顺序在进行比较时很重要。