Hatena::ブログ(Diary)

Oreshの日記

2011-05-29

5章その1 セグメント

土地を切り分けるように、
セグメント
という区分けでメモリを分割して割り当てる

メモリの場所

セグメントアドレス(セグメントの番号的なもの) + オフセットアドレス
で決定される
(実際は、セグメントアドレス=>セグメントベースに変換
セグメントベース+オフセットアドレス => リニアアドレスと換算される)

ただし、リニアアドレス = 物理アドレスとはならないので注意

セグメントレジスタ

セグメントの番号を記録するために
セグメントレジスタが存在(CS,DSなど)

MOV AX, メモリアドレス
と書くときに、セグメントアドレスとオフセットアドレスを指定しないでいいのはなぜか?

命令中でのアドレスは、
DS(レジスタ)に入っている値を、セグメントアドレス
命令中のアドレスをオフセットアドレス
として扱う というように決まっている

命令の読み出しもまたメモリアクセスといえるが
このときは
CS(レジスタ)に入っている値をセグメントアドレスとし
IP(レジスタ)の値をオフセットアドレスとして
そのメモリ位置の命令を読み出す
読み出したらIPを加算(次の命令を読み出すため)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/Oresh/20110529/1306668613
リンク元