2
画面の場所から別の場所にピクセルの束をコピーしようとしています。これをイメージすると、座標(100,120)上に8x8の緑色の四角形があり、その四角形を座標(150,60)にコピーしたいと思います。ピクセルを(x0、y0)から(x1、y1)にコピーする
私はグラフィックモード13hを使用しています。それは320x200を意味するので、私の広場は38500番地(y * 320 + xを使用)で始まります。
DS
は0A0000hを指します。
この広場を他のコーナー(19350)にコピーするにはどうすればよいですか?
私はこのような何かを試してみました:私は間違って
MOV SI,38500
MOV DI,19350
INIT:
MOV CX,4 ; loop 4 times
COPY_BOX:
MOV AX,DS:[SI] ; copy two pixels
MOV DS:[DI],AX
ADD SI,2 ; move to the next two pixels
ADD DI,2
LOOP COPY_BOX
ADD SI,312 ; drop one line and position on the first pixel
ADD DI,312
JMP INIT ; copy next row of pixels
; do this for the 8 rows
何をしているのですか?
何あなたのコードのISNの一部働いている?どこが間違っていますか?あなたはデバッガでそれをステップアップしようとしましたか? –
@CodyGrayこれは動作しません.Dosboxはフリーズします。私はDosboxでコードを実行していますが、Turboデバッガを使用しようとしましたが、グラフィックスモードでは動作しません:\他の方法でデバッグすることはできますか? – razoes