No.2ベストアンサー
- 回答日時:
>逆アセンブラで、1000番地にMOV.L@(0018:8,PC),R15と表記されているとき
>これを実行後、R15の値は、PC+001Cつまり101Cから4バイトがR15に
>入ってしまうのですが、どういう計算なのでしょうか?。
確たる自信をもってはいませんがSHは完全RISCパイプラインアーキテクチャ
のため、1000番地に上記命令があり、これを「実行している」とき既にPCは
2個先の命令のデコードの所にあり1004になっているからではないですか?
1004+0018->101Cということです。
ちなみにSHの遅延分岐は御存知ですか?例えば
MOV#0,R0
BRALABEL
MOV#1,R0
LABEL:
ADD#1,R0
<- この時点でR0は2になる。
これもBRA命令の「実行の時点」でPCは+4されていると考えられない
でしょうか?
# SHでアセンブラ書くのは、これだから嫌~ン。
No.1
- 回答日時:
エミュレータおよびアセンブラの表記によって違いは在るかも知れませんが、
'mov.l @(disp,PC),Rn'は(PC & fffffffc) + disp * 4で求まったアドレスの
内容をRnに入れることです。ここでdispはSHの命令長の関係上8ビット値になり
ます(詳しくは日立のページあたりからデータブックを取ってきてみてください)。
大抵のアセンブラの例を挙げると(インデントが入らないので見づらいですが)、
mov.l@(INDEX,pc),r0
mov.l@r0,r1
- 省略 -
INDEX:
.longTABLE
TABLE:
.long1
とすると、R0にはTABLEのアドレスが入り、R1には1が入ります。
アセンブラが現在PC値からINDEXの相対アドレスを計算してくれるのでその辺は
気にしなくていいです。当然8ビットで届かなければアセンブルエラーになりますが。
この回答への補足
逆アセンブラで、1000番地にMOV.L@(0018:8,PC),R15と表記されているとき
これを実行後、R15の値は、PC+001Cつまり101Cから4バイトがR15に
入ってしまうのですが、どういう計算なのでしょうか?。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) x86_32のGASの擬似命令 3 2023/06/07 19:55
- Mac OS MacのFinderでmovファイルのサムネイルが表示されないのと、クイックルックが出来ません。 こ 3 2023/07/24 18:40
- ノートパソコン 拡張子の変換 6 2023/05/07 20:43
- その他(AV機器・カメラ) ピアノ演奏の録画録音 3 2022/10/28 14:01
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- PostgreSQL postgreSQLをbashで実行する際に「MORE」表示をなくす方法 1 2023/05/08 21:42
- USBメモリー・SDカード・フラッシュメモリー SDカードの写真データ 何処に行った? 2 2023/07/17 20:29
- Bluetooth・テザリング 環境 Windows11 スマホSH-RM12(sense3) スマホでWi-FiテザリングやUSB 2 2022/12/24 19:48
- デスクトップパソコン outlookのメール:outlook.comの表示方法を教えて下さい 1 2022/03/28 00:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
VC6でIDEでソース部分のアセン...
-
[C言語→アセンブリ言語]はどう...
-
Windowsはオープンソースですか?
-
【H8マイコン】HEWで埋め込みア...
-
組み込み系C言語の学習法
-
RSA暗号化の処理時間
-
CASIOのポケコンZ-1GRのアセン...
-
アセンブラの擬似命令について
-
PC-9801でマシン語を学習するに...
-
VisualStudioでC++からx64のア...
-
x86系でリアル←→プロテクトモー...
-
アセンブラからC言語に変換する...
-
エクセルVBAのIf,Then 構...
-
0xffffとは?
-
ものづくりに向いているプログ...
-
8ビットのデータの、先頭ビット...
-
電化製品って何言語?
-
03分22秒36のような時間の単位...
-
verilog 符号付加減算(最上位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
Windowsはオープンソースですか?
-
[C言語→アセンブリ言語]はどう...
-
実行ファイルからソースはみれる?
-
PICはアセンブラとC言語のどち...
-
void __cdeclなど_
-
アセンブラ言語がわかりません。
-
このアセンブラの意味を教えて...
-
エンディアンについて。
-
アセンブラのコマンドについて
-
PICのアセンブラからC言語へ変...
-
アセンブラで割り算
-
最初のアセンブラ
-
CASIOのポケコンZ-1GRのアセン...
-
SHの命令の意味について
-
PC-9801でマシン語を学習するに...
-
PC-9801 MS-DOSでの実行ファイ...
-
アセンブラのLA
-
masm32がうまく動きません。
おすすめ情報