Easyyam、組立にランプアップ
うん!私はいくつかのこれらの低レベルのプログラミング言語で怖がってしまうかもしれない知っているが、最後に、彼らはそれだけです:独自の複雑さを持つ別の言語.
まず最初に知っておく必要があるのは、アセンブリ言語が異なることです.
教育目的で
私は、この素晴らしいオープンソースプロジェクト(MIP 32とX 86命令セットの通訳)にすべてをあなたに紹介するためにここに来ましたEasyASM .
偶像 / アスキー
アセンブラ言語の簡単な学習のためのMIPS 32とx 86シミュレータ
アスキー
EasyYMはMIPS 32とX 86 ISASのサブセットのための単純なシミュレータです.主な目的はプロセスを容易にする
アセンブラ言語の学習.この目的のために簡単なコマンドラインインターフェイスを提供します
ユーザーはアセンブラの指示を入力することができますし、いくつかのアセンブラプログラムを使用せずにテストします.プログラム
エラーの場合、ユーザーに瞬時にフィードバックを提供します.別に、シミュレータはいくつかの有用なコマンドを提供します
セクションコマンドで説明します.
インストール
プログラムをインストールするにはC +コンパイラとソースコードが必要です.一度だけ両方を入力する必要がある
ソースコードを持つディレクトリとコマンドを入力するディレクトリ
Linux ( Debianベースの配布)
$ make deps
$ make
Windows
It might work if you use msys
用途
Once you have the simulator compiled, you can run it by typing ./EasyASM
in the source…
It’s a project where you can play around with a vast instruction set for either MIPS32 or X86 and have good feedback of what’s going on. Also you have available some helper instructions to pre-fill a register with a desired value and then use it later in the code.
I've made very few contributions to it, the most recent being an easy way to set it up and running in your Debian based distribution.
歴史の少し
The project was made by a professor I had during my major and was developed while we were having lessons with him, so we were pretty much like Beta Testers 😆 at the time.
A few of us made very few contributions back then, and it wasn't until recently that I came back to see if the project was still alive and noticed there were some changes which weren't quite well explained in the Readme.md file about:
- specific i386 dependencies
- custom version of Lemon
It really wasn't easy to set the project up and running at once, so I decided to figure out the needed dependencies and the custom version of Lemon myself.
I added a script to install all those dependencies easily just by executing one shell command... Yeah, I went through all that pain to simplify that process to future users.
セットアップ
$ git clone https://github.com/ideras/EasyASM.git
$ cd EasyASM
$ make deps
$ make
$ cp ./EasyASM /usr/bin/EasyASM
最後のコマンドはオプションです.あなたが他のCLIプログラムのように、あなたがそうであるどんなディレクトリからでもそれを使うことができるように、それはほとんどそこにあります、あるいは、あなたは直接プロジェクトフォルダからそれをすぐに使うことができました.走る
上記のすべての手順に従って次のように入力します.
$ EasyASM
最後のステップをスキップした場合は$ cd </path/where/you/cloned/the/project>
$ ./EasyASM
この出力をコンソールに期待してください.(入力を開始するのを待つ点滅カーソルがあります).
--- EasyASM MIPS32 mode (big endian) ----
Global base address = 0x10000000
Stack pointer address = 0x7fffeffc
Global memory size = 256 words
Stack size = 256 words
ASM> _
用途
デフォルトモードはMIPS 32 (ビッグエンディアン)
x 86 (リトルエンディアン)として実行するには:
$ EasyASM --x86
Easyyam自身のヘルパーコマンド
#set
レジスタまたはメモリアドレスに値を格納する#show
レジスタまたはメモリアドレスに格納されるものを表示する#exec
アセンブラファイル全体を実行するquit
コマンドラインプロンプトASM> start:
ASM> #set $t0 = 10
ASM> #set $t1 = 20
ASM> lbl_add1: add $t2, $t0, $t1
$t2 = 0x1E 30 30
ASM> #show $t2
$t2 = 30
ASM> _
私たちは、Calc操作の直後に見ることができます.Easyamは、3つの異なる形式でレジスタに格納された結果値を表示します.[target register] = [HEX] [Signed Decimal] [Unsigned Decimal]
注:ラベルを追加することができますが、我々はジャンプすることはできませんnot existing
ラベルのように、私たちがさらにラベルをプログラムにジャンプしたいならば、我々はよりよく使いますfile.asm
そして、#exec
コマンド誰かが本当にこのプロジェクトの力を十分に利用できるように、これが役に立つことを願っています.
読書ありがとう!😊
Reference
この問題について(Easyyam、組立にランプアップ), 我々は、より多くの情報をここで見つけました https://dev.to/kenystev/easyasm-ramping-up-in-assembly-21n5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol