雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
10: 2005-07-24 (日) 08:27:18 ソース バックアップ No.10 を復元して編集 11: 2005-07-24 (日) 17:07:32 ソース バックアップ No.11 を復元して編集
Line 396: Line 396:
まいったなぁ。やっぱどっかメモリを使わないといけないのかなぁ。メモリは遅いからできれば使いたくない。・・・うーん。遅いっていえばそもそもDIV命令も評判がよくないなぁ。なんかうまい工夫ないもんかな。 まいったなぁ。やっぱどっかメモリを使わないといけないのかなぁ。メモリは遅いからできれば使いたくない。・・・うーん。遅いっていえばそもそもDIV命令も評判がよくないなぁ。なんかうまい工夫ないもんかな。
 +こういう時って、CXやBX使っちゃいけないのかなぁ・・・・。例えば
 + PUSH    CX        ;CXレジスタの値をバックアップ
 + PUSH    AX        ;AXには論理セクタ値が入っている。一旦バックアップ。
 + MOV    AX,2880  ;まず、AXに総セクタ数を入れる。
 + SHR    AX,1      ;AX ÷ 2 を実行ししたのと同じ結果になる。
 + MOV    CX,AX    ;AXの内容をCXにコピー
 + POP    AX        ;AXの値を論理セクタに戻す
 + PUSH    AX        ;もう一回バックアップ
 + MOV    DX,0      ;これでDX:AXの値は32bitながら論理セクタ値となるはず。
 + DIV    CX        ;これで、AXにはhの値が入っているはず。
 + MOV    DX,AX    ;AXの値(h)をDXレジスタに移す
 + POP    AX    ;AXを初期値に戻す(論理セクター値)
 + POP    CX        ;CXを初期値に戻す
 + ;これで全て元通りで、かつ、DXにはhがセットされているはず。
 +
 +うーむ。とりあえずは成功かな???
 +
 +そんなわけで、[[こんなコード>IPL研究/コード1]]を妄想してみる。
 +
 +debugコマンドで検証してみないと・・・