- ベストアンサー
CASL2
CASL2の勉強をしています。 わからないことがあったので質問します。 どなたかご存知の方がいらっしゃいましたらご教示お願いいたします。 ’LD’命令の機械語は32ビットなので2語必要になりますが’RET'は16ビットなので1語必要になります。 'LD'は確かに’10’と2桁で表示して32ビット必要ですが、’RET'も’81’と2桁で32ビット必要なような気がしますが、どこが間違っているのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。補足にお答えします。 >2^(16)=16^(4)で16進数にしたら4桁で一語になるような気がしてなりません。 >が実際には1語で2桁です。どうなっているのでしょう? 16進では確かに1語で4桁です。 命令コードはそのうちの2桁を使っています。
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
LD命令は、 LD GRn,GRx または、 LD GRn,adr,GRx で、 前者は、16ビットで 後者は、32ビットです。 もともとLD命令は16ビットで表現されていますが、後者の場合アドレスを表すのに16ビット必要なので、全体として、32ビット必要なのです。 RETは、アドレスを取りませんので、 16ビットです。 っていうか COMETIIの参考資料を見ておられて、 10とか81とかおっしゃっておられると思いますが、 そこの第1語、第2語という表現に注目して下さい。 基本的にCOMETIIは16ビットマシンで 命令語の語長は16ビットです。
お礼
ありがとうございます。4桁で16ビットですね。
補足
16ビット=2^(16)=16^(4)で16進数にしたら4桁で一語になるような気がしてなりません。が実際には1語で2桁です。どうなっているのでしょう?
- ymmasayan
- ベストアンサー率30% (2593/8599)
LDを翻訳すると10(16進2桁)になります。 同様にRETも81(16進2桁)になります。 LDは他にレジスター番号やメモリーアドレスが必要なので結局32ビットになります。 RETは他に情報は要りませんから16ビット命令でいいわけです。
補足
2^(16)=16^(4)で16進数にしたら4桁で一語になるような気がしてなりません。が実際には1語で2桁です。どうなっているのでしょう?
「10」が1つの数字です。 この「10」という数字の次に「どこからロードするのか」という情報が来ます。それをあわせて2語です。 対して、RETは「81」という数字1つで処理が完結していますので、1語です。
お礼
2^(16)=16^(4)で16進数にしたら4桁で一語になるような気がしてなりません。が実際には1語で2桁です。どうなっているのでしょう?
補足
1語=16ビットですか? 16ビット=2バイトですね? 一語で65536種類分別できるわけですか?
お礼
これで頭の中がすっきりしました。どうもありがとうございました。
補足
これで頭の中がすっきりしました。どうもありがとうございました。