2016-12-04 18 views
0

私は2つの値をとる関数を持っています(int * a , int * b) したがって、RDIとbからRSIに行きます。 私のbは配列であり、タスクの1つはb[1]の値を変更することです。配列内の値の変更

は、だから私のASMファイルに私は「は指定された操作サイズ」エラー

+2

を書く必要がありますどのようにNASMは '5'はバイト、ワード、ダブルワードまたはQWORDであるかどうかを知ることになっていますか?それが、探している「サイズ」です。 –

答えて

3

だ任意の単純な配列ここ

mov [rsi+1*4] ,5 

アンのようにこれを実行しようとNASMにはないため、このエラーが出ます5を書き込もうとする場所に、どのサイズのメモリがあるかを知ってください。 C intタイプの値で作業しようとしているようです。 movステートメントのオペランドサイズを指定してください。例えば

は、ご使用のプラットフォーム上でint C型は4バイトのサイズであれば、あなたはmov dword [rsi+1*4] ,5

関連する問題