2016-05-15 8 views
1

fasmを使用してアセンブリで三角形を描画しようとしていますが、できません。 私は四角形を描画する次のコードを持っていますが、サイクル "ciclopinta"内の[comp]値を減らすだけでよいと思っていますが、それはうまくいきません(あるいは間違っています)。fasmを使用してアセンブリで三角形を描く

org 100h 
mov ah,4fh 
mov al,02h 
mov bx,13h 
int 10h 
mov [alt],50 
mov [comp], 100 
mov dx, 100 
mov cx,100 
ciclopinta: 
ciclo1: 
mov ah,0ch 
mov al,23h 
mov bh, 0 
int 10h 
dec cx 
dec byte[comp] 
jnz ciclo1 
mov cx, 100 
mov [comp],100 
dec dx 
dec byte [alt] 
jnz ciclopinta 

mov ah, 07h 
int 21h 
mov ah,4ch 
int 21h 

comp rb 1 
alt rb 1 

答えて

3
mov ah,4fh 
mov al,02h 
mov bx,13h 
int 10h 

なぜあなたは、従来のビデオモードを設定するには、VESAの機能を使用していますか?通常は動作しません。より良い次のコマンドを使用します。あなたはScrollWindowUpにBIOSの機能07Hを使用しますが、あなたがいないセットアップそれが機能するためにすべてのパラメータを行うプログラムの終わり近く

mov ax, 0013h ;320x200 256-colors 
int 10h 

。ベストコンプ変数が良いですデクリメントするために、これらの線mov ah, 07hint 21h


あなたのアイデアを削除します。あなたが書くことをお勧めします:

dec dx 
mov [comp], dl ;It's a byte-sized variable 
関連する問題