Assembly 如何用汇编语言在另一个盒子上打印一个盒子?

Assembly 如何用汇编语言在另一个盒子上打印一个盒子?,assembly,Assembly,我的目标是用汇编语言制作一个国际象棋棋盘,所以我试图在一个较大的白色方框上打印一个灰色的小方框,但一旦灰色方框在屏幕上打印出来,白色方框就会消失。我试着在谷歌上搜索,但找不到答案。此外,有没有更好的方法来制作一个棋盘使用汇编 这是我的密码 dosseg .model small .stack 0100h .data .code mov ax, @data mov ds, ax mov ah, 0 mov al, 11h int 10h mov

我的目标是用汇编语言制作一个国际象棋棋盘,所以我试图在一个较大的白色方框上打印一个灰色的小方框,但一旦灰色方框在屏幕上打印出来,白色方框就会消失。我试着在谷歌上搜索,但找不到答案。此外,有没有更好的方法来制作一个棋盘使用汇编

这是我的密码

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
您可以在操作之间重置视频模式!难怪第一个盒子不见了


  • 如果只在屏幕上放置图形像素,为什么还要设置光标
  • 你似乎并没有在任何地方设置颜色。函数0Ch进入AL
您可以在操作之间重置视频模式!难怪第一个盒子不见了


  • 如果只在屏幕上放置图形像素,为什么还要设置光标
  • 你似乎并没有在任何地方设置颜色。函数0Ch进入AL

您选择了640x350双色屏幕。
你画的第一个盒子必须是白色的。现在你是偶然获得的!正如@Fifoernik所说,您需要在AL寄存器中指定一种颜色

mov cx, 10
mov dx, 10
mov ah, 0ch
mov al, 1    ;This is white on a 2-color screen!
colcount:
...
要解决此问题,请首先删除以下5行:

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:
...

您已选择640x350双色屏幕。
你画的第一个盒子必须是白色的。现在你是偶然获得的!正如@Fifoernik所说,您需要在AL寄存器中指定一种颜色

mov cx, 10
mov dx, 10
mov ah, 0ch
mov al, 1    ;This is white on a 2-color screen!
colcount:
...
要解决此问题,请首先删除以下5行:

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:
...

如何在不重置视频模式的情况下更改小盒子的颜色?如何在不重置视频模式的情况下更改小盒子的颜色?