1

x86アセンブリを使用して、増分値で満たされた配列を定義する必要があります。現在、私はそれを空の配列として定義し、実行時にループして各ステップで増分する値を設定することにより、それを埋めます。これは次のようになります。

myArray DB 10 DUP (0)
...
xor ax, ax
xor bx, bx
mov cx, 10
initArray:
  mov myArray[bx], ax
  inc bx
  add ax, 43
loop initArray

増分値と配列のサイズはどちらも実行前にわかっているので、次のようにコードで直接値を定義することでそれを行うことができます...

myArray DB 0, 43, 86, 129, ...

...しかし、特に長いアレイの場合は、しばらく時間がかかります。

さて、質問です。Cのパラメーター化されたマクロのように、アセンブリでそのような配列を作成する方法があるかどうか疑問に思いました。必要に応じて、「#define myArray(x)(x * 43)」と同等です。

4

1 に答える 1

0

あなたのパターンは高度すぎてプリプロセッサでサポートできないと思います。それを生成するスクリプトを作成し、それをビルド プロセスに含めてみませんか? TASM のインクルード マクロを使用してインクルードできます。

于 2012-07-28T22:56:59.740 に答える