2

最初のピクセルのすぐ隣にピクセルをドット付けしましたが、結果は異なります。2 番目のピクセルは最初のピクセルから離れています。

どうしたの?

org 100h
;change to 320x200 graphic mode
mov ax, 13
int 10h

;frame buffer location
push 0xa000
pop es
xor di, di

;dot 2 pixels
mov ax, 1
mov [es:di], ax
inc di
mov [es:di], ax

;prevent ending
a:
jmp a

ありがとう!

4

1 に答える 1

5

2 つのバグがあります。

まず、8 ビット/ピクセルの BIOS 320x200 はビデオ モード13h( 19d) であり13d、あなたが持っているものとは異なります。

それを修正するには:

mov ax,13h
int 10h

もう 1 つのバグは、ビデオ メモリaxではなく書き込みを行うことです。または他の 8 ビット レジスタ ( 、、、、、)にal置き換えます。axalahblbhclchdldh

mov al,1
mov [es:di],al
inc di
mov [es:di],al

それはそれを行う必要があります。

于 2012-12-29T11:20:35.680 に答える