by shigemk2

当面は技術的なことしか書かない

SH-3用のEXEコンパイラで"Hello"を出力するEXEファイルを作る

実物

コード

makesh3exe.2014101210.js

ヘッダ、というか.textセクション以外は他のCPUと同じ構造なので、.textセクションだけをごにょごにょしたらいい。

x86とは違うのは、

  • ImageBase=0x10000固定
  • MSVCRT.DLLではなくCOREDLL.DLL
  • 命令はリトルエンディアン
  • 遅延スロット

そう、リトルエンディアン!

さらに、inc命令が、ない!

.textセクションまわりのコード

f:id:shigemk2:20141012104715p:plain

DLLを呼び出して、アドレスの値に気をつけつつ、コードを追加していく。

最後にexitするのを忘れずに。