web-dev-qa-db-ja.com

x86アセンブリでの配列の宣言

私はアセンブリを学んでいて、大きな配列を作成する必要があります。私は配列を宣言する方法を見回しました、そして私はこれに出くわしました。

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アセンブリを使用しています。

6
CMilby

試しましたか TIMES directive。このコードを使用して、特定のサイズの配列を宣言します。

array TIMES 8 DB 0

これにより、サイズ8の配列が作成されます

詳細については、これを参照してください リンク

6
avinash pandey

実際には、使用するアセンブラによって異なります。私はNetwideアセンブラーを使用しており、次の構文は完全に機能しています

arr DD 100 DUP(?);初期化されていない4バイトワードを100個宣言する

1
router