ここから本文です

8ビットCPU、Z80の命令に関する質問です。 JP (HL)は意味合いからするとJP HLだと...

kom********さん

2019/7/423:23:47

8ビットCPU、Z80の命令に関する質問です。
JP (HL)は意味合いからするとJP HLだと思うのですが、なぜ( )が必要なのでしょうか?
JP (HL)を素直に解釈するとHLが示すアドレスから2バイトに格納

されている値をPCに代入する、と誤解しそうで紛らわしい、と感じるのは変ですか?

補足検証プログラムを作成しました。
JP (HL)は
HLが示すアドレス(ADR1)に格納されている値(ADR2)にジャンプするのではなく
HLが示すアドレス(ADR1)にジャンプします。
下記プログラムを実行するとJUMP TO C400と出力されます。
OSはS-OS SWORD、アセンブラーはREDAです。
#MPRNT: EQU $1FE2
ORG $C000
LD HL,ADR1
JP (HL)
;
ORG $C100
ADR1:
DEFW ADR2 ; $00 NOP $C3 JP
DEFW ADR3 ; $C400
;
ORG $C300
ADR2:
CALL #MPRNT
DEFM "JUMP TO C300."
DEFB $00
RET
;
ORG $C400
ADR3:
CALL #MPRNT
DEFM "JUMP TO C400."
DEFB $00
RET

閲覧数:
58
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

2019/7/515:14:04

>JP (HL)を素直に解釈するとHLが示すアドレスから2バイトに格納されている値をPCに代入する、と誤解しそうで紛らわしい、と感じるのは変ですか?

変かどうかはわかりませんが、僕は紛らわしいとは思いません。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/7/11 12:18:09

疑問は解決しませんでしたが私以外の方も紛らわしいと思われることが分かって良かったです。また、他の方も勘違い(思い込み)されるほど紛らわしいと言うことも分かりました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

prwssさん

2019/7/510:48:57

>JP (HL)は意味合いからするとJP HLだと思う

気のせい&誤解&錯覚です

HLそのまんまと(HL)は意味が違います

「素直に解釈する」ではなく、『(わたくしが考えたのではない、他の誰かがわたくしの預かり知らぬところで決定した)ルール通りに解釈する』となります

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

usersvoiceさん

2019/7/423:27:02

HLはインデックスレジスタだから。
HLに入っているアドレスじゃ無く
HLに入っているアドレスに格納された、数値をアドレスとして解釈してジャンプするから。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる