資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
1: 2005-08-19 (金) 02:32:38 ソース バックアップ No.1 を復元して編集 現: 2024-01-06 (土) 22:37:40 ソース 編集
Line 1: Line 1:
 +**番地(アドレス)の置き換え [#de321345]
16Bitモードと書きながらプロテクトモードでは自信が無いのですが。。。 16Bitモードと書きながらプロテクトモードでは自信が無いのですが。。。
基本的にアセンブラで番地を書く場合、たとえば「jmp 0x80」とか書くとするとそれは「jmp CS:0x80」に置き換えられている。 基本的にアセンブラで番地を書く場合、たとえば「jmp 0x80」とか書くとするとそれは「jmp CS:0x80」に置き換えられている。
-それで、CS+16より小さい番地にアクセスしたい場合などもあるでしょう。そういう時、DSレジスタを使う。+それで、CS*16より小さい番地にアクセスしたい場合などもあるでしょう。そういう時、DSレジスタを使う。
DSレジスタはCSと置き換えて書くことが出来る。 DSレジスタはCSと置き換えて書くことが出来る。
例をあげるなら「jmp DS:0x80」などと書けばいいだけ。 例をあげるなら「jmp DS:0x80」などと書けばいいだけ。
 +
 +**セグメントレジスタ [#u0a242e2]
 +セグメントレジスタは基本的に「ss:0x0fff」とかいった感じで「セグメントレジスタの番地:番地」といった使い方をする。
 +
 +このとき、「ss:0x0fff」が実際何番地を指しているかというとこれは「ss*16+0x0fff」を指している。(リアルモードの場合)
 +
 +要するに、「セグメントレジスタの番地:番地」=>「セグメントレジスタの番地*16+番地」を指すということ。
 +
 +ついでに、「セグメントレジスタの番地:番地」を専門用語でいうと「セグメントアドレス:オフセット」という


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2732, today: 1, yesterday: 0