問題タブ [machine-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 - intel x64 arch の Rex プレフィックスデコード
Intel のドキュメント「Architectures Software Developer's Manual Vol 2A」の表 2-4 に、REX プレフィックスのビットの意味が示されています。
W=0 の場合の解釈方法を誰かに説明してもらえますか? と書いてありますが意味0 = Operand size determined by CS.D
がわかりませんCS.D
。
assembly - MIPSをマシンコードに変換する
上記をマシンコードに変換するにはどうすればよいですか?実際のコード以外に、翻訳の仕方を知る必要があります。命令のオペコードを取得できると思いますが、moviは疑似命令であり、どこで取得できるかわかりません。Nios IIのマニュアルで読む必要がありますか?
アップデート
最初の4つの命令は即時型であるため、フィールド形式を使用する必要があります。moviとsubiはどちらもaddiに実装された疑似命令であるため、addiのオペコードが使用されます。私は助けられました、そして私は指示movi r16, val
がに翻訳されることを知っています
00000100000100011100010010000100
したがって、オペコードは000100バイナリであり、16進数で0x04であり、マニュアルにもaddiのオペコードであると記載されています。したがって、最初の4つのオペコードがあると思います。それらはすべて000100です。
アップデート2
私は今、ほとんどの命令のオペコードと直接のフィールドを知っていると思います:
シーケンス0100011100010010は0x4712であり、これはval
で宣言された変数です。.equ,
したがって、最初の4つのオペコードはすべてaddiであり、addiは0x04であると言うため、000100である必要があります。レジスタの2つの5ビットフィールドを変換する方法は今はわかりませんが、マニュアルで確認できます。' has opcode 0x06 so it should say 000110 in the opcode for br.
brbne`にはopkod0x1Eがあり、バイナリは011110 = 30(?)
これは正しい始まりですか?
assembly - アセンブリ/マシン コードが等しい場合に分岐
使用の違いは何ですか:
そして使用:
同じことをするのに、分岐する方法が 2 つあるのはなぜですか? また、それらが異なる場合、それぞれの利点は何ですか?
ありがとう
編集:「c.eq.s」がコプロセッサ固有であることを知りませんでした。2 番目のコード セットとの統一のために、$f1、$f2 の代わりに $1、$2 のみを記述しました。
assembly - MIPS アセンブリでは、'addi' はコプロセッサ レジスタで操作できますか?
まず、私はアセンブリ/マシン コードを学習する初心者です。
いくつかのコードを読んでいて、コードが "1.0" を浮動小数点コプロセッサ レジスタに入れるスニピットに出くわしました。
コードは
私の最初の質問は次のとおりです。
コプロセッサーに転送する前に、最初に「1」を「$t5」に入れる必要があるのはなぜですか? もっと簡単にできるんじゃないの
あるいは
私の2番目の質問は次のとおりです。
このコード行の
2つのレジスターが異なる必要がありますか? それとも両方とも $f2 にできますか?
x86 - バイナリ シーケンスが x86 マシン コードかどうかを確認する方法は?
x86 アーキテクチャでは、データとコードがメモリまたはディスクに混在していることは誰もが知っています。しかし、どのように彼らに伝えるのですか?
この方法は紙に必要です。100% の精度は期待できません。80% で大丈夫です。いくつかのアイデアでも問題ありません:)
assembly - PIC アセンブリ命令のマシンコードへの変換
MIPS アセンブリ命令をマシン コードに変換する特定の形式があることを確認しました。PIC アセンブリを手動でマシン コードに変換するには、同様の手順が必要です。これに関連するドキュメントを誰か親切に提供してもらえますか?
executable - Java バイトコードのようなバイト コードと、ELF のようなファイルやマシン コードの実行可能ファイルの違いは何ですか?
Java クラス ファイル、Parrot バイトコード ファイル、CLR ファイルなどのバイト コード バイナリ実行可能ファイルと、ELF、Mach-O、PE などのマシン コード実行可能ファイルの違いは何ですか。
両者の際立った違いは何ですか?
ELF 構造の .text 領域などは、クラス ファイルのどの部分に相当しますか?
または、すべてにヘッダーがありますが、ELF および PE ヘッダーにはアーキテクチャが含まれていますが、クラス ファイルには含まれていません。
Java クラス ファイル
エルフファイル
PE ファイル
c - 制御フロー グラフからどのような情報を取得できますか?
非常に複雑な C プログラム (VM で実行) のトレースの制御フロー グラフを取得しました。コントロールの依存関係とは別に、プログラム トレースの CFG がある場合に抽出できる情報を知りたいです。ありがとうございました
visual-studio-2010 - JIT によって生成されたマシン コードは、2 つの異なるシステムで同じですか?
私は C# の初心者ですが
、実行時に JIT によって生成されたマシン コードは、まったく同じ構成を持つ 2 つの異なるシステムで同じですか?
assembly - このマシン コードが "inc qword [rsp]" に対して生成されるのはなぜですか?
次の x64 NASM 構文アセンブリを検討してください。
nasm でアセンブル (および gnu ld でリンク) しobjdump -d
た後、次のように報告されます。
mod フィールドが設定されているため、生成されたコードinc qword [rbp]
は理にかなっています。しかし、 を24
組み立てるときに がどこから来たのかわかりませんinc qword [rsp]
。私はcoder64 #xFFを見てきましたが、24 を生成する必要があることを示唆するものは何もありません。明らかに、より高いレベルで何かが欠けています。