私はアセンブリを学んでいて、大きな配列を作成する必要があります。私は配列を宣言する方法を見回しました、そして私はこれに出くわしました。
array db 10 dup(?)
初期化されていない10バイトの配列が宣言されている場合。これを試してアセンブルしようとすると、「エラー:オペランド1の後にコンマが必要です」というメッセージが表示されます。私は「?」 x86ではサポートされていないため、定数にして同じエラーが発生しました。私はこれをすることになった。
array db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
これはうまくいきました!しかし、問題は、大きな配列(〜100-400整数)が必要であり、それらの値が常にわかっているとは限らないことです。 400 0を書き出すことはできますが、もっと簡単な方法があるはずだと思いました。では、大きな配列を宣言するためのより良い方法はありますか?
AT&T構文のIntelベースのMacbookProでx86_64アセンブリを使用しています。
試しましたか TIMES directive
。このコードを使用して、特定のサイズの配列を宣言します。
array TIMES 8 DB 0
これにより、サイズ8の配列が作成されます
詳細については、これを参照してください リンク 。
実際には、使用するアセンブラによって異なります。私はNetwideアセンブラーを使用しており、次の構文は完全に機能しています
arr DD 100 DUP(?);初期化されていない4バイトワードを100個宣言する