2012-01-05 8 views
1

システム時刻からファイル名を付けてx86アセンブラでファイルを作成したいとします。 私は時間を得るために、私は割り込み1Ahから関数2を使用しなければならないことを知っています - レジスタに時間を返します。私が持っている問題は、このレジスタの内容を含むファイルを作成することです。 関数3ch割り込み21hはDXレジスタに格納されているfilenameを使用しますが、ファイル名はASCIIでなければなりません。 データをASCIIに変換するにはどうすればよいですか?それとも別の方法がありますか?おかげさまで x86アセンブラ - システム時刻からのファイル名

答えて

2

int 1Ah fn 2でリアルタイムクロック時間を読み取った場合、真夜中から55ミリ秒間隔で時刻が取得され、時間を計算するために必要な計算をすべて自分で実行する必要があります。それから数分と数秒です。ロケット科学ではありませんが、できればそれを避けてみませんか?

幸運にも、int 21h、fn 2C "DOS Get Time"を使用すると、CHの時間、CLの分、DHの秒、さらにはDLの100分の1秒(惨めな近似)を返すことができます。 (OK、DLを無視する)そうすれば、ファイル名を作るためにこれらの数字を文字列に変換するだけです。

ここで、ファイル名がDXレジスタに格納されているとは限りません。ファイル名はバッファに格納されなければならず、DXレジスタはint 21h fn 3Chに入るとそのバッファを指す必要があります。

数値をASCIIに変換するのは難しいですが、幸運にもこれまでにSOで答えられました:Problem converting integer to ASCII code in x86 assembly

関連する問題