【问题标题】:Change screen color using assembly in Turbo Pascal在 Turbo Pascal 中使用程序集更改屏幕颜色
【发布时间】:2015-04-25 02:39:26
【问题描述】:

我在 Turbo Pascal 中的语法有问题,这在调试中没有问题,但我无法使其在 Turbo Pascal 中工作。

program foo;

begin
asm
    mov ah,06h;
    mov bh,$21;
    mov cx,$0000;
    mov bx,$1950; 
    int 10h;
    mov ah,00h;
    int 16h;  
end;
end.

我不知道怎么了。

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

【问题讨论】:

    标签: assembly turbo-pascal


    【解决方案1】:

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

    program foo;
    
    begin
        asm
            mov ah, 06h
            mov bh, $21
            mov cx, $0000
            mov bx, $1950      (* Should it rather be `dx`? *) 
            mov al, 25         (* Scroll up 25 lines *)
            int 10h
    
            mov ah, 00h
            int 16h
        end;
    end.
    

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

    后缀“h”表示这是一个十六进制数。前缀“$”的含义相同。第一个是汇编符号,第二个是帕斯卡符号。没有后缀或前缀,它是一个十进制数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 2016-02-03
      • 2021-02-07
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多