
No.2ベストアンサー
- 回答日時:
SHはあんまり得意じゃないのですが、
SH2のソフトウエアマニュアルを見てみました。
計算方法としては、
現PC&0xfffffffc)+4 + 0x104 を指す中身をR6にムーブ
になり
実際には、
(0x17DC & 0xfffffffc)+4+(0x104) = 0x17E0+0x104 = 18E4
*(0x18E4)が 0xffffe6b0
になっているんじゃないでしょうか?
一応シミュレータで確認済みです。
#さらにSH3,4の場合はキャッシュがあるのですぐに反映されないよう
#です。
以下蛇足:
アセンブラおよびDisassemblerの仕様により、ディスプレースメントが
スケーリングされている場合、されていない場合があります。
本来8bit長なわけで、最大0xff ですので超えています。
4倍がすでにされているので、そのまま加算します。
R社純正以外にもサードパーティ製のアセンブラの場合には考慮が必要な
場合があります。
riscプロセッサなので、命令長が固定のため、イミディエイト命令が
2byte長 4byte長は命令内にかけないので、
ROM上にデータを置いて、PC相対番地でレジスタに読み込む
ようになっているようです。
No.1
- 回答日時:
自分はSHシリーズを使った事は無いが、アセンブラは齧った事があるのでちょっとだけ突っ込みを。
以下のマニュアルにざっと目を通してみた。
http://documentation.renesas.com/jpn/products/mp …
MOV.L @(disp:8,PC),Rnの命令の動作を見ると、質問者殿の説明と微妙に異なり
(disp×4+PC)→Rn
と書かれている。
自分はSHのアセンブラを知らないので、ディスプレースメント(H'104)の意味に今一確信が持てないんだが、もしも想像通り16進でのイミディエイト値であるなら
( 0x104 × 4 + PC ) → R6
となるべきだと思うのだが、どうだろう。
#マニュアルは良く読もうね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語
-
ライン数とステップ数の違いは?
-
【H8マイコン】HEWで埋め込みア...
-
このアセンブラの意味を教えて...
-
アセンブラのコマンドについて
-
素数を求めるプログラム(アセン...
-
アセンブラからC言語に変換する...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
電化製品って何言語?
-
CPUは何故、16bit→32bit→64bit...
-
一般のソフトで画像を扱う場合...
-
PIC16F1シリーズマイコンのNCO...
-
C言語で128bitの2進数のビット...
-
CASLIIでかけ算
-
シーケンス制御についての質問...
-
PLC 命令について
-
ビットシフトってどんな時使うの?
-
PICでUSARTのフレーミングエラ...
-
トリムレジスタ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
アセンブラ言語がわかりません。
-
実行ファイルからソースはみれる?
-
このアセンブラの意味を教えて...
-
アセンブラのコマンドについて
-
PICに書き込むプログラムや変数...
-
アセンブラのLA
-
アセンブラwordという単位
-
アセンブラの実行速度
-
Windowsはオープンソースですか?
-
バイナリの実行ファイルをgccを...
-
void __cdeclなど_
-
MPLAB IDE v8.92アセンブラにつ...
-
ArduinoIDEのコンパイル結果の表示
-
GASの入門書
-
アセンブラ言語で
-
アセンブラで割り算
-
アセンブラのリンカのダウンロ...
おすすめ情報