アセンブリに関する十分なドキュメントを入手できないようです。少なくとも、理解できるものはありません。
アセンブリで配列と行列を宣言する方法について、誰かが簡単な例を投稿できますか? そして、おそらくその中のアイテムを変更する方法。それは私にとっても、おそらく他の多くの人にとっても大きな助けになるでしょう。
Emu8086 の構文は MASM の構文とほとんど同じなので、3 バイトを保持する初期化されていない配列を宣言するには:
arr1 db 3 dup (?)
エミュレータが提供する例を使用してこれを解決しました。
基本的に、アセンブリの行列は通常の変数と同じように宣言されます。たとえば、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