2016-03-26 14 views
0

Amacım, montaj dilini kullanarak bir satranç tahtası yapmaktır; bu yüzden daha büyük bir kutunun üstüne küçük bir gri kutu yazdırmaya çalışıyorum, ancak gri kutu ekranda basılır basmaz beyaz kutu kaybolur. Google'da arama yapmayı denedim, ancak bir yanıt bulamıyorum. Ayrıca, meclis kullanarak bir satranç tahtası yapmak için daha iyi bir yaklaşım var mı?Montaj dilinde başka bir kutunun üstündeki kutu nasıl yazdırılır?

İşte kodum.

dosseg 
.model small 
.stack 0100h 
.data 
.code 

    mov ax, @data 
    mov ds, ax 

    mov ah, 0 
    mov al, 11h 
    int 10h 

    mov ah, 02h 
    mov bh, 00h 
    mov dh, 0Ch 
    mov dl, 28h 
    int 10h 

    mov cx, 10 
    mov dx, 10 
    mov ah, 0ch 

    colcount: 
    inc cx 
    int 10h 
    cmp cx, 450 
    JNE colcount 

    mov cx, 10 
    inc dx 
    cmp dx, 450 
    JNE colcount 


    mov ax, @data 
    mov ds, ax 

    mov ah, 0 
    mov al, 13h 
    int 10h 

    mov ah, 02h 
    mov bh, 00h 
    mov dh, 0Ch 
    mov dl, 28h 
    int 10h 

    mov cx, 10 
    mov dx, 10 
    mov ah, 0ch 

    colcount2: 
    inc cx 
    int 10h 
    cmp cx, 30 
    JNE colcount2 

    mov cx, 10 
    inc dx 
    cmp dx, 30 
    JNE colcount2 

end 

cevap

2

mov ah, 0 
mov al, 11h 
int 10h 
... 
mov ah, 0 
mov al, 13h 
int 10h 
Sen operasyonlar arasında video modunu sıfırlamak! Acaba ilk kutu kayboluyor. Ekranda sadece grafiksel piksel koyarak eğer


  • Neden imleci ayarı rahatsızlık duyulsun ki?
  • Gerçekten hiçbir yerde rengi ayarlamıyor gibi görünüyorsunuz. 0Ch işlevi için AL'de gider.
+0

ben rengini nasıl değiştirebilirim Video modunu sıfırlamadan daha küçük kutu? –

1

640x350 2 renkli ekranını seçtiniz.
Boyadığınız ilk kutu beyaz olmalıdır. Şimdilik bunu tesadüfen elde edersiniz! @Fifoernik'in dediği gibi, AL kaydında bir renk belirtmeniz gerekir.

mov cx, 10 
mov dx, 10 
mov ah, 0ch 
mov al, 1 ;This is white on a 2-color screen! 
colcount: 
... 

ilk olarak bu 5 satırları kaldırmak, sorunu çözmek için: Şimdi belirterek küçük siyah kutu boya

mov ax, @data 
mov ds, ax 
mov ah, 0 
mov al, 13h 
int 10h 

AL = 0

mov cx, 10 
mov dx, 10 
mov ah, 0ch 
mov al, 0 ;This is black on a 2-color screen! 
colcount2: 
... 
İlgili konular