2: 2010-01-19 (火) 04:54:26 HOSINO |
現: 2024-01-08 (月) 12:58:43 lina |
| ただ、機械語を一個一個調べていくのは大変そうなので、開発は今週いっぱいは最低でもかかると思います。~ | | ただ、機械語を一個一個調べていくのは大変そうなので、開発は今週いっぱいは最低でもかかると思います。~ |
| プログラミング技術のない未熟者の工作ですので、期待しないでください。~ | | プログラミング技術のない未熟者の工作ですので、期待しないでください。~ |
| + | ***sp(スタックポインタ)の初期値について [#cfa021cb] |
| + | mov命令の構造が意外と簡単だったことが判明したため、popやpushなどのスタック関係も実装しようと画策しています。~ |
| + | しかし、spの初期値が分からずに困っています。~ |
| + | windowsのdebug機能ではsp=0xffeeと表示されるのですが、 |
| + | cmp sp,0xffee |
| + | je YES |
| + | mov ah,0x02 |
| + | mov dl,'n' |
| + | int 0x21 |
| + | int 0x20 |
| + | YES: |
| + | mov ah,0x02 |
| + | mov dl,'y' |
| + | int 0x21 |
| + | int 0x20 |
| + | というようなプログラムを実行してみても「n」と表示されました。~ |
| + | 色々試したところ、最初のcmpをcmp sp,0xfffeとすると「y」と表示されました。~ |
| + | しかし、これはあくまで私の環境でしか通用しないことかもしれませんので、どなたか上記のプログラムをcmpを変更した物を実行してみていただける方を募集いたします。~ |
| + | とりあえずは情報が有るまでは.comでのspの初期値は0xfffeと仮定して開発をしていきます。~ |
| + | ***mov命令について [#xc715e0b] |
| + | このページのコメント欄でゲストさんが大変貴重な情報をくださりました。~ |
| + | 心より感謝いたします。~ |
| + | そのゲストさんに教えて頂いたpdfファイルを見ていて発覚したのですが、mov al,[0x1234]とmov al,[ds:0x1234]は機械語が異なるようです。~ |
| + | 今まで、単にmov al,[0x1234]はdsレジスタを指定しているものとみなされると勘違いしていたので気がつきませんでした。~ |
| + | ただ、mov al,[0x1234]のようにセグメントレジスタを指定しなかった場合はセグメントの値はどうなるか等分からない事だらけなので、何かご存知の方は是非お教えください。~ |