我在 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是什么意思?
我在 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是什么意思?
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”表示这是一个十六进制数。前缀“$”的含义相同。第一个是汇编符号,第二个是帕斯卡符号。没有后缀或前缀,它是一个十进制数。