問題タブ [object-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - SIC アセンブリ オブジェクト コードでの BYTE 操作の混乱
SIC 用のアセンブラを作成しようとしているときに、これらの質問について考えました。
LABEL BYTE X'AB'
ここで生成されるオブジェクト コードはAB
. そのため、オブジェクト コードは例として次のようになります。
001045 4C1046 AB 001045
ここではスペースを使用してコードを区別していますが、オブジェクト コードは次のようになります。
0010454C1046AB001045
では、オブジェクト コードを実行しているときに、ローダーは、AB
それがニーモニック オブジェクト コードの一部ではない定数であることをどのように判断するのでしょうか?
WORD についても同じ質問があります。WORD の長さは 3 バイトかもしれませんが、ローダーは定数コードとニーモニック コードをどのように区別するのでしょうか。
明確化をいただければ幸いです。
linker - LLVM: オブジェクトコードのリンクを実装
私は万華鏡のチュートリアルに従っています。オブジェクト コードを発行するのは非常に簡単ですが、ここで、おもちゃのプログラミング言語をバイナリに直接コンパイルできるようにリンク手順を実装したいと思います (したがって、clang
使用する必要はありません)。LLVMでこれを達成するにはどうすればよいですか?
c++ - オブジェクト コードを LLVM IR に戻すことはできますか?
オブジェクト コードはアセンブリ言語に逆アセンブルできます。オブジェクト コードまたは実行可能ファイルを LLVM IR に変換する方法はありますか?
c++ - C++ 識別子を処理できるアセンブラとリンカを作成してみませんか?
名前マングリングを使用する理由についての私の理解では、アセンブラとリンカは C 識別子しか処理できないということです。" int foo::bar::baz<spam::eggs>(const MoreSpam&)
" は既存のアセンブラではラベルとして使用できず、既存のリンカはそれを有効な関数シグネチャとして認識しないため、" _ZN3foo3bar3bazIN4spam4eggsEEEiRK8MoreSpam
" のようなものになり、(多かれ少なかれ) 有効な C 識別子になります。
しかし、これは私たちのツールの比較的些細な制限のようです。次のようなアセンブラとリンカを作成できない、または作成しない正当な理由はありますか。
大丈夫ですか?