Mac で学ぶ Arm アーキテクチャ 1-1

実行したら 10 を返す

int main(void){
    return 10;
}

という C プログラムを

・intel Mac 向け

・M1 Mac 向け

にそれぞれアセンブラで「寸止め」コンパイルして出力させてみた。

Intel(x86_64)アーキテクチャ向け
M1(arm64)アーキテクチャ向け

すぐに気がつくのは

・レジスタの名称が全然違う

・M1 向けの方が若干すっきりしている

あたりだろう。

 

ところで、これを某所でネタにしたら「どうやってアセンブラ出力させたんですか?」という質問があった。
じゃあ、これ、クエスチョンにしますか。

Q1.1 C プログラム(ここでは test.c とします)を Mac 上で clang を使って
・x86_64 アーキテクチャ向け
・arm64 アーキテクチャ向け
にそれぞれアセンブラ出力(testx86.s と testarm.s)させるコマンドをそれぞれ作ってください。

ついでにこれも。

Q1.2 どちらのアーキテクチャでも良いが test.c の実行ファイル(test)を作成してください。
このとき実行ファイルを実行させても端末には何も表示されません。
この時の main 関数の返り値 10 を(ソースに手を加えずに)端末上に表示させるにはどのようなコマンドを用いたら良いでしょう?

解答は近いうちにアップします

解答はこちら

 

air-h-128k-il

 

HorliX 日本語ダウンロードサイト新設

こちらでは、あまり(現行の)HorliX に関する話はしないつもりだったのだが、これは告知しておいた方がいいと思ったので、ご案内。

HorliX の(日本語説明での)ダウンロードページを phazor.jp の方に設置しました。

 

HorliX に関しては海外ユーザーの方が遥かに多いので、作ろう、作ろうと思いつつこれまで先延ばしにしてました。

ちょっとスッキリ。

 

猪股弘明

 

 

PHORLIX について

現時点(2021 年末)で phorlix なる単語をググると以下のような結果になる。

要するにこの単語はGoogleに認識されておらず、代わりにミュージシャンと思われる Phoelix さんの情報がずらずらと表示される。

それはそうだ。
PHORLIX というのは我々がちょっと前にでっち上げた単語だ。
ある意味、カブッてなくてよかったと思う。(他で使われていないか確認するためにググったというのが本当のところ)

PHORLIX は元々は p-HorliX であった。

こう言っても意味不明か。。。

HorliX というのは、我々が開発している医療画像向けのビューアーソフトの名称で、リリースしてからかれこれ3年になる。

興味のある方は公式サイトを覗いてほしい。

HorliX は MacOS 上で動くのだが、この3年の間に MacOS の開発環境は激変した(主に Arm アーキテクチャの採用と OpenGL → Metal への移行)。だから「次に手を入れるなら、これまでの設計とは別系統のラインにしなくてはいけないだろう」という漠然とした思いを関係者は抱いていた。
これをなんとなく p-HorliX と呼んでいた。
たぶん p-HorliX の p は、post とか phazor という意味合いだったのだろう。

本当に「いつの間にか」そう命名され「なんとなく」そう呼ばれていたのだ。

そうはいっても、諸々の問題(開発するかどうか、するとしたらどういった開発体制を敷くのか等等)をいつまでもダラダラと先延ばしにするわけにもいかず、情報整理用にサイトがあった方がいいということになり、この度、サイトを開設したという次第だ。

また、ドメイン名は p-horlix にしたが、これだとどう発音していいかわかりにくい。幸い、英語では頭が ph という綴りになる単語が多い。
physics, physiology, philosophy…

繋げても違和感がないなら繋げてしまえとばかりに、ブログ名称は思い切って PHORLIX とした。
だから、PHORLIX を無理矢理発音するならば「フォーリックス」あたりになるだろうか。

 

猪股弘明(中の人を代表して)

(追記)google のクローラーはやはり優秀。
年が明けた 2022 元日には、しっかりインデックスされてました。