1

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 はどういう意味ですか?

4

1 に答える 1

8

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, 0またはxor al, al) に設定します。

接尾辞「h」は、これが 16 進数であることを意味します。接頭辞「$」は同じ意味です。1 つ目はアセンブリ表記、2 つ目はパスカル表記です。サフィックスまたはプレフィックスがない場合、10 進数です。

于 2015-04-25T05:41:49.563 に答える