
No.1ベストアンサー
- 回答日時:
こんにちわ。
非常に懐かしい質問のような・・・
Z80系の場合、レジスタはおおまか以下のようになっています。
A(F)
BC
DE
HL
(IXとかもありますが割合)
このうち、AFのうちAは、8bitレジスタ、BC~HLまでは
それぞれ8bitレジスタと16bitレジスタを兼ねます。
この兼ねるレジスタのことを、レジスタペアといいます。
ですので、おっしゃるとおり、LD DE, 0000Hは
DE=0000H であるのですが、D=00H、E=00Hの両方を一緒にやることに
なります。
ここで、レジスタをいくつかあげましたが、疑問が出てくると
思いますが
A(F) と記載されているのも、レジスタペアとしては代入
できないのですが、スタックを用いて操作ができます。
F=フラグレジスタですので、通常は読み書きできないはずですが・・
LD BC, 0001H
PUSH BC
POP AF
とやるだけで、F に 01H を書き込むことができます。
ちなみに、レジスタペアは、レジスタとしての回路を節約
するだけではなく、命令セットをシンプルにしたり、間接的に
8bit単位ではありますが、ビット演算をしやすく(しなくて済む)
する為に、用いることができます。
例えば・・・
512 を 256 で割るには・・・
LD DE, 0200H
で、D に答えがかえってきます。
(ただし、16bitから8bitにもなってしまいます)
LD A,D 等して、取り出すことも可能です。
もちろん、その逆も可能で
LD B, 01H
LD C,20H
をすれば、BCに0120Hがはいるはずです。
No.2
- 回答日時:
機械語の話をするなら, 対象とする CPU を明示しておかないとだめだよ (まあ LD と書いてる時点で Zilog であることはわかるんだけど) と言いつつ
イメージとしては
もともと 16ビットのレジスタペア (BC/DE/HL/AF) が存在するんだけど, その上位 8ビットと下位 8ビットを別々に各レジスタとしてアクセスできる
と思った方が簡単かも.
この辺の構成は 8080 だか 8008 だかから今に至るまで連綿と受け継がれてたりします.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PIC12F683でLEDをスイッチで点...
-
レジスタマップって何ですか?
-
Macターミナルで実行中のプログ...
-
C# シリアル通信でデータ受信...
-
VBSの処理中一旦処理を止めて再...
-
バックグラウンドのプロセスの...
-
VBA kernel32 の意味
-
エクセルVBAでクリップボード内...
-
VB6.0 SHELLで起動...
-
【MFC】イベントの無効化について
-
マイコンからプログラムを読み...
-
ACCESS側からEXCELの書式を設定...
-
TCP/IP通信時のサーバーからの受信
-
プリントスクリーンをプログラ...
-
VBSで応答不要のメッセージボッ...
-
Socket通信の0バイト受信について
-
初回接続の遅い原因について
-
パソコンの演算速度について
-
VB6で10進数を32進数に変換する...
-
CPU負荷率の安全な上限と計...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レジスタマップって何ですか?
-
PLCとPCの通信
-
組み込みマイコンでのソフトウ...
-
グラフィックLCD SG12...
-
大人の科学マガジンVol.24 GMC-...
-
USBハブの自作について
-
CPUから外部PHYレジスタのアク...
-
シリアル通信でのデータ取りこぼし
-
AVRでUART通信をしたい
-
機械語のレジスタペアについて
-
メモリースループットとは?
-
H8/3052 プログラムについて
-
SH7144でパルス幅を測定したい。
-
電子工作初心者ですが、今回pic...
-
システムコールを使わずに画面...
-
マイコンのCプログラミングで未...
-
micropythonコード 修正
-
マイコンSPI入門
-
H8/3048 マイコンボードについて
-
H8S2368マイコンのTCSR_1レジス...
おすすめ情報