問題タブ [instruction-set]

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.

0 投票する
1 に答える
6080 参照

assembly - アセンブラ命令bneおよびbr(NIOS II)。それらのオフセットはどのように計算されますか?

私はこのアセンブラコードを持っています。これをバイナリ形式のマシンコードに変換することになっています。

「bner16、r0、loop」と「brstop」がどのように解釈されるのかわかりません。

私の命令セットリファレンスは、bne命令がこれを行うと言っています:

これは、私が理解しているように、プログラムカウンターが4+オフセットまたは単に4だけインクリメントされていることです。

しかし、私の場合、offset / IMM16値は何ですか?命令セットリファレンスには次のように書かれています。

「命令エンコーディングでは、IMM16によって与えられるオフセットは、bneの直後の命令を基準にした符号付きバイト数として扱われます」。

私の解釈では、IMM16値は次の命令アドレスまでの「距離」ですが、これが正しいかどうかはわかりません。bneの16進アドレスは0x40010、brの16進アドレスは0x40014であるため、これはIMM16値が4であることを意味しますか?(これにより、rA!= rBの場合、PCが0x40014アドレスを飛び越えてしまいますか?)

0 投票する
1 に答える
90 参照

comparison - 登録して比較を登録する

CPU の構成要素やランダム アクセス メモリの構造については調べましたが、レジスタ間の比較操作がわかりません。

「レジスタ間の比較操作は、通常、RAM 内の 2 つのデータ エントリに対する同等の操作よりも速いのはなぜですか?」

0 投票する
1 に答える
992 参照

assembly - AMD64 マシンコード「48 ff 25」は何を意味しますか?

次の逆アセンブル コードで "0x48ff25" が何を意味するか教えてもらえますか?

AMD64 アーキテクチャ プログラマーズ マニュアルを確認しましたが、自分で答えを見つけるのは本当に難しいです...

0 投票する
1 に答える
1678 参照

graphics - シンプルなグラフィック カードをシミュレートする

OK.単純なアーキテクチャのシミュレーション設計を見つけることができます.(編集:間違いなくx86ではないようです)

たとえばint、をプログラムカウンターとして使用しbyte array、をメモリとして使用します。

しかし、どうすればグラフィック カード (考えられる最も単純なグラフィック カード) の機能をシミュレートできますか?

を使用しarrayて各ピクセルを表し、各ピクセルを 1 つずつ「ペイント」します。
しかし、CPUと同期してペイントするか、非同期でペイントするのはいつですか? 誰graphic dataがその配列に格納しますか? ピクセルを保存してピクセルをペイントするための指示はありますか?

すべてのクエスチョン マーク ('?') は、「多くの質問をしている」という意味ではなく、問題自体を説明していることを考慮してください - グラフィック カードをシミュレートする方法 ?

編集: CPU +メモリシミュレーションの基本的な実装設計へのリンク

0 投票する
1 に答える
1068 参照

architecture - リーフ命令 (プロセッサ/アセンブリ)

SO がこの質問をするのに最適な場所かどうかはわかりません。そうでない場合は、どの姉妹サイトに行くべきか教えてください。

Intel の Trusted Execution Technology (TXT) に関する論文を読んでいましたが、次のようなテキストがあり、理解できないようです。

「インテルは、GETSEC と呼ばれる新しい「リーフ」命令を作成しました。これは、さまざまなリーフ操作 (SENTER を含む) を呼び出すようにカスタマイズできます。」

葉の指示については何もわかりません。それらは何で、なぜ/いつ使用されますか? ヒントはありますか?

ps 論文は、McCune らによる「どれだけ低くできますか?ハードウェアでサポートされる最小限の TCB コード実行の推奨事項」と呼ばれています。

0 投票する
5 に答える
2237 参照

c++ - Cコードからユーザー定義のhwアーキテクチャ用のアセンブリを生成するコンパイラバックエンドを作成する方法

私は、新しいプロセッサハードウェアアーキテクチャを定義する必要があるプロジェクトに取り組んでいます。このターゲットのアセンブリコードを生成するコンパイラが必要です(独自の命令セットがあります)。

このプロセッサのプログラムはCで記述されます。

これを行うための私のアイデアは、Cコードを解析して抽象構文木(AST)を生成し、次にASTからアセンブリを生成することです。

確かに、既存のコンポーネントを再利用したいのですが(希望するCパーサーを書き直す必要はありません)、このタスクを実行するためにどのツールまたはフレームワークを使用できますか?

ありがとう。

0 投票する
2 に答える
1189 参照

x86 - x86 でプレフィックスと必須プレフィックスを繰り返す

x86 arch に固有の Linux 用の小さな逆アセンブラーを作成しようとしているときに、小さな問題に直面しました。必須のプレフィックスと繰り返しプレフィックスに関するものです。Intel ドキュメント [1] を見ると、繰り返しプレフィックスは0xf2または0xf3であり、必須プレフィックスは0x660xf2または0xf3であると言われています。

次の基本オペコードを持つ 2 つの命令があります。

crc32 -- f2 0f 38 f0 (ここで、0xf2 は必須のプレフィックスです)
movbe -- 0f 38 f0

したがって、カウンタ レジスタがゼロでない限り繰り返す必要がある「movbe」命令のオペコードは次のようになります。

repnz movbe == f2 0f 38 f0

命令の逆アセンブルを開始するときに、バイト0xf2が表示されている場合、それが crc32 命令の必須プレフィックスであるが、movbe命令の繰り返しプレフィックスではない、またはその逆であることをどのように確認できますか? オペコード パターン「f2 0f 38 f0」と一致する命令はどれですか?

私は何が欠けていますか?

[1] http://www.intel.com/design/intarch/manuals/243191.HTM

ありがとう、よろしく、
Hrishikesh Murali

0 投票する
1 に答える
337 参照

x86-64 - x86 浮動小数点命令タイプと整数命令タイプの実際の違いは何ですか?

マイクロプロセッサ命令には、整数と浮動小数点の 2 つの基本的なタイプがあります。

したがって、それらは整数処理ユニットと浮動小数点処理ユニットで実行されます。それは理にかなっていますよね?

しかし、プロセッサーに命令を IPU または FPU に送信するように指示するものは何ですか? どの命令がどの種類であるかをどのように知るのでしょうか?

たぶん、命令にはビット/フラグ/ LUTまたは他のものと区別するための何かがありますか?

0 投票する
5 に答える
42375 参照

assembly - ARMで整数(符号付きまたは符号なし)除算を行うにはどうすればよいですか?

特に Cortex-A8 と Cortex-A9 に取り組んでいます。一部のアーキテクチャには整数除算が付属していないことは知っていますが、浮動小数点数への変換、除算、整数への変換以外にそれを行う最良の方法は何ですか? それとも、それが本当に最善の解決策ですか?

乾杯!= )