2011-01-25 6 views
2

MASM 6.0(アセンブリAPIのWindows 16ビット)で書いています 私のコードでdirを変更したいと思います。私はDOS3Call機能(INT 21hをより速く)この機能をWindowsを使用してディレクトリを変更する16bit API

mov dx,OFFSET dir_user 
mov ah,3bh 
invoke DOS3Call 

;dir_user is the user's work directory, like "c:\prog" 

を使用しています 、私はディレクトリを変更することができますが、私は使用割り込みなしで私のためにそれを行うことができます任意のAPIを持っているかどうかを知りたいです。

私は32ビットで16ビットのAPIが必要です。私はそれを行う方法を知っています。

誰かが私を助けることができますか?

私はアメリカ人ではありません...

+0

afaikの場合、 'int 21h'を使用する必要があります。 –

+0

DOS3Callも同じことをします。 – Joshua

+0

割り込みやDOS3Callを使用する必要があります。他のものはOSの内部構造を突き破ることになりますが、これは悪い考えです。 (私は追加します - 何か働いているのなら、それを変更するのはなぜですか?) – asveikau

答えて

0

あなたはできません。今日の32ビットおよび64ビットシステムでは、割り込みが唯一の方法です。

+0

おい、彼はWin16について話しています。 – Joshua

+0

@Joshua - MASMでプログラムできる16ビットのオペレーティングシステムを紹介します。 16ビットは時代遅れです。そのため、他のものを挙げました。 – Sparafusile

+0

これまでにDR-DOSについて聞いたことがありますか? Microsoftにとって脅威であった製品が、MS-DOSまたはDR-DOSで実行されているかどうかをテストするアプリケーションソフトウェアに特別なテストを挿入し、後者のケースでは、基礎となるOSがMS- DOS?それでもなお生き生きとしていて、www.drdos.comを見て、彼らのクライアントリストをチェックしてください。あなたは毎日何か新しいことを学びます! –

0

Win16はファイルシステム用のDOS APIを使用します。 syscallゲートはint 21hです。

C標準ライブラリを確認してください。私は実際にはWin16プログラミングで直接、システムコールゲートを呼び出すことはありませんでした。

+0

私が見つけることができる唯一のC関数は、ディレクトリを変更したchdirでした。それはWindows 95で導入されたので、私が間違っていなければ、それは32ビットの機能でした。 16ビットバージョンがあるかどうかはわかりませんが、それは開始するのに適しているかもしれません。 – Sparafusile

+0

おい、古い文書を入手してください。彼らはオンラインではありません。 – Joshua