0
私は、このコードは私のためにコピー文字列手順アセンブリ
A2098無効なオペランドをエラー与えMASM32
coppystring proc uses esi edi ecx source:dword,dest:dword mov esi, OFFSET source mov edi, OFFSET dest mov ecx, SIZEOF source Lx: mov al,[esi] mov [edi],al inc esi inc edi loop Lx coppystring endp
にコピー文字列の手順を書いたOFFSETオペレータ次
式をOFFSETメモリー式または直接式でなければなりません。 しかし、まだ、私はsource
とdest
のメモリアドレスはコンパイル時に知られていないので、あなたがこれらのエラーを取得している私のprocの
はどういうわけか、あなたがやろうとしているものを見ていても - 'source'と' dest'は、パラメータとしてスタック上に保存されている可能性がポインタです。あなたはこのようなアドレスを得ることができるはずです。 'mov esi、source'と' mov edi、dest'と呼ばれます。私は、 'source'と' dest'は渡される文字列へのポインタであると仮定しています。同様に、 'SIZEOF source'は文字列の長さを与えません。' dword'である 'source'のサイズを与えます。したがって、サイズは常に4になります.NUL(0)文字が見つかるまでコピーしたり、3番目のパラメータとしてコピーする文字数を渡したりするループを作成したいと思うかもしれません。 –