私はアセンブリー8086で私の索引付けに問題があります。私はCから呼び出すアセンブリーのプロシージャーを持っています。このlong int *arr_ptr[3]
のように定義されたタイプlong int
のポインターの配列を取ると、コードはこのようになります(私はSI
)私の列のポインタであることが私の行ポインタとDI
する:cnt
が2である最後の行アセンブリ8086でインデックス作成作業を行うにはどうすればよいですか?
MOV SI,[BP+6] ;now si points to the first row
MOV DI,[SI] ;now DI is pointing to the first row
; and at the first column column
ADD SI,2 ;here i can move the SI pointer to the next row,
; but i want to do this in a loop so i thought
; ill define a variable cnt in my data and do this
MOV DI,[SI+cnt]
はADD SI,2
私が何ができると同じではありませんか?私はちょうど私の行列をループするだけです。
Cは16ビットコードを生成しますか? 'long int * arr_ptr [3]'のポイントは何ですか?それは32ビットですか? –
申し訳ありませんが、どうすればわかりますか? – user3133165
それはあなたが意味するものなら、私は.SMALLモデルで働いています – user3133165