在 Turbo Pascal 中使用程序集更改屏幕颜色

Change screen color using assembly in Turbo Pascal

我在 Turbo Pascal 中的语法有问题,这在调试中没有问题,但我不能让它在 Turbo Pascal 中工作。

program foo;

begin
asm
    mov ah,06h;
    mov bh,;
    mov cx,[=10=]00;
    mov bx,50; 
    int 10h;
    mov ah,00h;
    int 16h;  
end;
end.

不知道怎么回事

PD:这个东西中的 h、$ 和 b 是什么意思?

INT 10h / AH=06h 还需要 AL:

中的值
program foo;

begin
    asm
        mov ah, 06h
        mov bh, 
        mov cx, [=10=]00
        mov bx, 50      (* Should it rather be `dx`? *) 
        mov al, 25         (* Scroll up 25 lines *)
        int 10h

        mov ah, 00h
        int 16h
    end;
end.

要清除整个 window,您可以将 AL 设置为零(mov al, 0xor al, al)。

后缀'h'表示这是一个十六进制数。前缀“$”的意思相同。第一个是汇编符号,第二个是 Pascal 符号。没有后缀或前缀是十进制数。