TC17 **アセンブラが "movh.a and lea"アドレッシング(16進数)をどのように処理するのか、私が自分で計算する方法"定数"または "グローバル"として定義されている私の画像に表示されます。Tricore "Constants"を逆アセンブルする
私がしたいことは、自分自身でこの32ビット命令を作成/組み立てることですが、最後の日には何も処理しません。確かに、私はEclipse Toolchainでアセンブルする方法を知っていますが、私のプログラムではこのツールチェーンを使用できません。私はPHPでプログラミングしていますが、実際にはこれは問題ではありません。一例として、
、ここでアセンブリに私が持っているコマンドのIDAproビューの画像です:32ビット六角命令として
それは次のようになります。
ASM: movh.a a15, #@HIS(configuration_value_1)
HEX: 91 70 01 F8
ASM: lea a15, [a15]@LOS(configuration_value_1)
HEX: D9 FF E4 67
私が今したいことは、HEXアセンブラの命令を、変数に正しくアドレッシングして解決することです。この場合、その場所は "0x80177DA4"です。命令セットで
、そのは次のように説明した:あなたの問題を引き起こしている何
Screenshot: movh.a command
Screenshot: lea + long offset addressing mode
お返事ありがとうございました。 これを投稿した後、再び16進数で表示し、movh.aの問題を理解する方法を見つけました。 ロードバイトコマンドで2日働いたので少し複雑すぎると思うかもしれません。 http://www.bilder-upload.eu/upload/ee9540-1506994269.png しかし、これは問題ではありません私はすでにld.buとmovh.aのことを考え出した。しかし、あなたが言ったように、leaコマンドは私のために少し難しいです。 私が必要とする値を得るためにビットをどのように並べ替える必要があるか、私はビット単位の操作で非常に愚かです。私は "試行錯誤"で動作します。 –
Btwは16進数/アドレスを再度確認しました。 上記のヘビiは、明らかに0x80177DA4を指しています。再度コンパイルしてIDAに再度ロードし、0x80177DA4を指しています。D9 FF E4 67 Br –
ええ、 「E」はもちろん「1100」ではなく「1110」である。 – Jester