問題タブ [mips64]
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 - 64 ビット アプリケーションのメモリ内レイアウト
64 ビット OSは、汎用レジスタのビット幅を指します。一度に 64 ビット (データ + 操作) を処理できます。
64 ビット システムが真に有用であるためには、プログラマーが 64 ビット アプリケーションを作成する必要があることはわかっています。
しかし、32 ビット アプリケーションと 64 ビット アプリケーションの違いは何だろうか。64 ビット アプリケーションをコンパイルするために必要な構成変更を尋ねているわけではありません。代わりに、メモリ内の 2 つのアプリケーションの構造上の違いを知りたいです。
たとえば、Linux 上の C プログラムは通常、メモリ内で次のようになります。
- テキスト セグメント
- 初期化されたデータ セグメント
- 初期化されていないデータ セグメント
- ヒープ
- スタック
64 ビット アプリケーションは、メモリ内のレイアウト構造に関しては同じように見えると思いますが、各バイトのアドレス (バイト アドレス指定可能なシステムを想定) がより多くのビットを持っている点が異なります。それが本当なら、64 ビットは何を意味するのでしょうか? 単にアドレス指定可能なメモリ空間が大きいだけですか?
また、64 ビット アプリケーションがコンパイルされるときに、ソース コード内の 1 つの命令がアセンブリ コード内の add MIPS 命令にコンパイルされると仮定します。
各 MIPS 命令は、正確に 32 ビットでエンコードされます。ここで質問です。アプリケーションが 64 ビット アプリとしてコンパイルされるように構成されている場合、add
命令はどのようになりますか? それはまだ32ビットですか、それともMIPSルールに違反する64ビットに拡張されていますか? それでも32ビットの場合、64ビットアプリが「64ビットOSを最大限に活用する」ためにどのような違いをもたらすかわかりません。
教えてください。
mips32 - 「ADD」と「DADD」の違い
ADD
' ' 命令と ' DADD
'命令の違いは何MIPS
ですか?
「 」が Double Word Add の略であることは知っていますが、「 」と「 」DADD
の違いがわかりません。ADD
DADD
さらに、両方の命令が同じ構文を持っているように見えます。
例えば、
mips - メモリ内の可変数の引数を引数空間に展開します
としてメモリ アドレスを受け取る関数があり、を使用$a0
して (可変) ワード数にアクセスします。MIPS アセンブリはまったく新しいので、ここにあるポインタが役に立ちます!x($a0)
x
$sp
$a0
linux - MIPS TLB では、2 つのエントリが ASID フィールドを除いて同一であることは可能ですか?
ASID が異なることを除いて、同じ仮想アドレスと物理アドレスを持つ 2 つのエントリをマップすることは可能ですか?
assembly - 文字列を MIPS に格納する
私は短くなります。
ユーザーから15文字の文字列を取り込むMIPSでプログラムを作成しています。文字列をスタックに保存できません。2D マトリックス [20][15] を使用していることに注意してください。ここで、20 は文字列で、各文字列は 15 文字です。
私を案内してください。私は過去10時間にわたってこれを試してきました。