命令セットの定義を本体と別に持ち、ユーザー側で容易に(再コンパイルなどすることなく)追加・編集できるようなアセンブラがあれば
新しいCPUを使う際覚えることが少なく便利だと思ったのですが、そのようなアセンブラは存在するでしょうか。
(なお高級言語でなくアセンブラを使う理由は単に好きだからです)
どのようなCPUを想定しているのでしょうか?
特に想定はしていません。
というより、どのようなCPUでも追加できるようでなければ意味がありません。
(x86などの複雑な命令セットの定義を作成するのは相応に大変でしょうけれど)
#まとめ
求めているものにもっとも近そうなのが「PROASM-II」。
「強力なマクロ命令」「新たなMPUに対応する為にマクロライブラリ作成の方法を公開」とある。
「8/4ビットマイクロプロセッサ用」とあるので高機能なCPUは想定外?
どの程度の自由度があるのかは気になるところ。
9万8千円と趣味で買うには高すぎる値段。
「vasm」も、コンパイルは要るものの、命令セットの追加・編集が考慮されていそう。
他に近いものに、GCCのas、アセンブラのマクロ機能。
また、メタアセンブラという概念あり。
アセンブル後に最適化をするようなアセンブラについては、専用アセンブラ以外でその機能を持つことは困難。
最適化をしないなら問題は見当たらない。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
そもそもアセンブラはターゲットとなる CPU と密接に結びついているものですから、対象となる CPU が替わればアセンブラも替わるのが当然です。
意識しているのはおそらく、
・ニーモニックの構文規則と
・対応する機械語の出力を
・定義ファイルの形で別出しできる
アセンブラ「のようなもの」になるかと思います。
通常アセンブラでは命令語とオペランド(レジスタ、レジスタ間接、アドレス直接、直値)との組み合わせですから、オペランドでこう書かれていればそれはレジスタである…といった規則を定義できれば、コンパイラ-コンパイラの要領で作り上げることは可能そうではあります。
ただ、そんなもの作るよりは別のアセンブラ覚えた方が早そうな気もしますが。
まあ、パソコン黎明期にはまるで BASIC のような記述をする「アセンブラ」があったりもしたものですけどね。結局ターゲットが異なれば使えるレジスタも異なるわけで、あまり意味がなかったような。
投稿2018/05/21 04:31
総合スコア13707
0
ほぼC言語だと思います
あとはLLVMも、浅い知識だとそんな感じな気がします。
投稿2018/05/20 15:38
編集2018/05/20 15:42総合スコア15149
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/21 09:03 編集
2018/05/21 09:07 編集
2018/05/21 09:55
2018/05/21 12:20
2018/05/21 16:21
2018/05/21 16:47
2018/05/22 00:41
2018/05/23 00:07
2018/05/23 01:03
2018/05/24 00:25

0
アセンブラのマクロ機能を使えば出来ます。
投稿2018/05/20 14:57
総合スコア86295
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
かつて、Javaバイトコードがそれに近いものになったことはあるんじゃないでしょうか。ArmプロセッサーはJavaバイトコードを直接実行するJazelleという機能を実装していたことがあります。これはJava言語でソースコードを書いてコンパイルしたものを実行することを企図したものですが、Javaバイトコードのニーモニックをアセンブリ言語の如く直接記述して、Javaバイトコードに「アセンブル」したものを動作させることも、原理的には可能だったのでしょう。まあ、全く流行らなかったんだけど。
今後新たにそれに近いものが生まれる可能性はほぼゼロだと思います。
投稿2018/05/20 16:06
総合スコア6768
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。