4

アセンブリに関する十分なドキュメントを入手できないようです。少なくとも、理解できるものはありません。

アセンブリで配列と行列を宣言する方法について、誰かが簡単な例を投稿できますか? そして、おそらくその中のアイテムを変更する方法。それは私にとっても、おそらく他の多くの人にとっても大きな助けになるでしょう。

4

2 に答える 2

3

Emu8086 の構文は MASM の構文とほとんど同じなので、3 バイトを保持する初期化されていない配列を宣言するには:

arr1    db 3 dup (?)
于 2013-06-20T02:33:16.380 に答える
2

エミュレータが提供する例を使用してこれを解決しました。

基本的に、アセンブリの行列は通常の変数と同じように宣言されます。たとえば、2x2 行列は次のように宣言されます。

matrix db ?,?,?,?   ; Obviously `?` can be replaced by any value

or

matrix db dup('?')

次に、ユーザーは、「行」がどこで終わり、別の行が始まると考えるかを決定します。たとえば、バイト 1、2、3、4 の変数がある場合、ユーザーは 1、2 を 1 行、3、4 を別の行と見なす可能性があります。

これは、マトリックス内の項目を指す方法です。

mov bx,0
lea si,matrix
mov matriz[si][bx],0   ; [si][bx] holds the value of the first cell

各行が 2 つの項目を保持している場合、次のようにして 2 行目に移動する必要があります。

add bx,2
mov matriz[si][bx],1   ; Now [si][bx] points to cell 0x1
于 2013-07-21T19:47:41.230 に答える