[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00031] Re: SS!=DS 問題 (Re: [WitchFan 00036] Re: はじめまして)
- Subject: [WitchTech 00031] Re: SS!=DS 問題 (Re: [WitchFan 00036] Re: はじめまして)
- From: Takahiro Higuchi <higuchi@sims.co.jp>
- Date: Wed, 19 Jul 2000 20:49:31 +0900
樋口です。
>x86のセグメントってみんなから嫌われてますよねぇ。
>#僕もさんざん苦労させられたんで、イメージは良くはないですが(笑
ですねぇ。もっとも386以降になるとちゃんと32bitCPUなんですが
こんどはLDTだのGDTだのってのがでてきて全然わかんない。
組み込み用のファーム書くぶんには8086ってそんなに使いにくく無い
んですけどね。只最近はROMモノでもネットワークアクセスがデフォ
みたいになってきてるんで8086だと辛い気もしますが。
>もっとも、セグメント間のアドレス空間が、完全に独立している訳では
>無いのが、中途半端だとは思いますが。
つまりこれですね。
segment 1000 segment 1FFF
+) offset FFFF == +) offset 000F
----------------- --------------------
実アドレス 1FFFF 1FFFF
20Bitの実アドレスはセグメントレジスタとオフセットレジスタで表され、
4ビットずれている。このため、レジスタの値が違っても同じアドレスを
示すことができる。
DS=1000, AX =FFFF -> DS:AX = 1FFFF
DS=1FFF, AX =000F -> DS:AX = 1FFFF
で、混乱しやすいのがアドレスの言いまわし。セグメントレジスタの
ことを考えないで単純にメモリ空間を言う場合、64K単位でセグメント
がインクリされるんで、
20000H == 2000:0000H == 2セグの0番地
とか言う表現になり、このときにはオーバーラップする12ビット
のことには触れられない。よってちんぷらかんぷら、となる。
ってとこですか。
#同じセグメントモデルでもZ8000のほうがスマートで好きでしたね。
higuchi
--------------------------------------------------------------------------------
Takahiro Higuchi Office higuchi@sims.co.jp
Internet higuchi@lares.dti.ne.jp
ML Archives