Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
MASM で小さなプログラムを作成しようとしています。ある行で、ECX を増やしようとすると、このエラーが発生します... オペランドが 1 つしかないため、意味がないようです!
関連するコードは次のとおりです。
mov ecx, eax lea eax, DWORD PTR [ecx] lea ecx, BYTE PTR [eax+4] inc ecx
最初は、EAX は文字列の長さであり、この 0x05 です。
それで、なぜこれが起こっているのか誰にも分かりますか?ありがとう!
(指定した) 最後の 2 行を実際に次のように置き換えることができます。
lea ecx, BYTE PTR [eax+5]
LEAはオペランドのアドレスを取得するため、 forは に格納されるBYTE PTR [eax+4]値になります。後でインクリメントするので、2 つの追加を 1 つに結合するだけで、代わりに使用できます。eax+4ecxBYTE PTR [eax+5]
LEA
BYTE PTR [eax+4]
eax+4
ecx
BYTE PTR [eax+5]