SSブログ
アセンブリ言語 ブログトップ

アセンブリ言語の呼び出し方3 [アセンブリ言語]

だいぶん長い期間中断してしまいましたが、続きを書かせていただきます。

アセンブリ言語を呼び出す枠組みについてお話ししてきましたが、アセンブリ言語の仕様の話に入っていきます。

アセンブリ言語を呼び出すときの基本的な呼び出し方は、呼び出すプログラムの命令の場所を保存しながら呼び出し先のプログラムに移るCALL命令と呼ばれる命令のよる方法です。
通常のプロセッサはハードウェア的にこのCALL命令の実行機構を備えており、該当するアセンブリ言語を実行した後に元のプログラムに戻る時にRETURN命令という呼び出し元のプログラムの呼び出し命令の次の命令を実行して元のプログラムに戻ることができるようになっています。

ここまで説明した所で、アドレス空間とメモリの構成について理解する必要が出てきます。次回からその説明をして行きたいと思います。



nice!(0)  コメント(0) 

アセンブリ言語の呼び出し方2 [アセンブリ言語]

アセンブリ言語を作成するには主に2つの方法があります。

ひとつは高級言語で用意されているアセンブリ言語呼び出し関数・ルーチンで高級言語プログラムの中で呼び出す方法です。これをインラインアセンブラと言います。この場合、普通のコンパイラでコンパイルをすればコンパイルできます。ただし、この方法だと、特にプロセッサの制御に使用するアセンブリ言語命令を利用できない場合があり、プロセッサが持つすべての命令を実行することができるわけではありません。

もうひとつはアセンブリ言語で記述されたファイルをC言語等の高級言語のプログラムから呼び出す方法です。この場合は、基本的にすべてのアセンブリ言語命令を実行することができますが、自由度が高めた分、アセンブリ言語で完結できる関数やルーチンとして動作するプログラムにする必要があります。この場合、高級言語のファイルとアセンブリ言語のファイルはコンパイルは別々に行うことが可能です。

これらの手法は、すでに確立されている状況で今後も当分はこのようなやり方での実装が主流となりそうです。



アセンブリ言語プログラムの呼出し方(準備) [アセンブリ言語]

アセンブリ言語のプログラムを呼び出す時、一番簡単なのはアセンブリ言語で記述したファイルをそのままコンパイラでコンパイルする方法です。もちろん、そのプロセッサ向けにコンパイラがあるようなアセンブリ言語があることが前提です。

特に世の中で簡単に入手可能なコンパイラがあるのは、既存の結構有名なアーキテクチャのプロセッサでなければなりませんが、8ビット系のZ80、8051系から32・64ビット系のインテルのPC向けプロセッサやARM、MIPS、PowerPCなどを使用するならプログラムを作成し組み込むことができると思います。手軽に、という観点ではPICマイコンなどもあります。

その中で、よく研究用として学会でも採用されることのあるプロセッサであるMIPSを選択し紹介していこうと思います。


アセンブリ言語 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。