2015-04-25 26 views
1

我在turbo pascal中遇到了語法問題,這在調試時沒有問題,但我無法使其在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是什麼意思?

回答

6

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'表示這是一個十六進制數字。前綴'$'表示相同。第一個是大會符號,第二個是帕斯卡符號。沒有後綴或前綴,它是一個十進制數字。