關於Dos 下運行的Asm 轉Windows98下運行的 MASM 應該怎麼改?
關於Dos 下運行的Asm 轉Windows98下運行的 MASM 應該怎麼改?
以下是一段Dos 下運行正常的Asm語句,在Windows98下無法正常運行,請問應該怎麼
改動(我把它寫入Delphi中運行,失敗)?
mov DX,01b2H;
mov AL,16;
out DX,AL;
mov DX,01b3h;
mov AL,92h;
out DX,AL;
mov DX,01b2h;
mov al,16;
out DX,AL;
问题点数:50、回复次数:2Top
1 楼fansings(Fansings)回复于 2003-11-02 12:18:31 得分 50
Delphi中使用汇编
Delphi 2.0以上版本使用汇编语言,不能使用DOS下的中断调用及汇编必须将BX寄存器入栈。
Procedure TForm1.Button1Click(Sender:TObject);
begin
ASM
push bx ;此行汇编必须要有,且在第一行
mov DX,01b2H
mov AL,16
out DX,AL
mov DX,01b3h
mov AL,92h
out DX,AL
mov DX,01b2h
mov al,16
out DX,AL
pop bx ;必须恢复BX寄存器,否则系统出现不可预料的错误,小心当机。
END;
end;
Top
2 楼fansings(Fansings)回复于 2003-11-02 12:46:03 得分 0
这里面也有关于asm的代码~~~%Borland%\Delphi6\Source\Rtl\Sys\System.pasTop




