問題タブ [x86-64]
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 - LEA 命令の目的は何ですか?
私にとっては、ファンキーな MOV のように思えます。その目的は何ですか?いつ使用する必要がありますか?
c++ - C++でのCPUIDの実装
この辺りの誰かが、マネージド.net言語のいずれかから参照できるC++CPUID実装の良い例をいくつか持っているかどうか知りたいです。
また、これが当てはまらない場合は、X86とX64の特定の実装の違いに注意する必要がありますか?
CPUIDを使用して、ソフトウェアが実行されているマシンに関する情報(crashreportingなど)を取得したいと思います。また、すべてを可能な限り広く互換性を保ちたいと考えています。
私が尋ねる主な理由は、CPUレジスタなどの基本的な知識はありますが、おそらくすべてのマシン命令になるものを書くことに関しては、私はまったくの初心者だからです...
人々が私にGoogleに話し始める前に:私はいくつかの例をオンラインで見つけましたが、通常、それらはマネージコードからの対話を許可することを意図しておらず、どの例もX86とX64の両方を対象としていませんでした。ほとんどの例はX86固有のようです。
c++ - 複数のスレッドとメモリ
Visual C ++のドキュメントで、複数のスレッドが同じオブジェクトから安全に読み取れることを読みました。
私の質問は、複数のコアを備えたX86-64CPUはこれをどのように処理するのかということです。
1MBのメモリブロックがあるとします。異なるスレッドは文字通りまったく同じデータを同時に読み取ることができますか、それともコアは一度に1つの単語を読み取ることができ、コアは一度に1つの単語のみを読み取ることができますか?
c# - C#で使用するためのX86/X64用のアセンブリのコンパイル
C#アプリにcpuid機能を追加したいと思います。この興味深いブログ投稿をオンラインで見つけました。これをコンパイルするにはおそらくMASMが必要ですが:
- どのように始めればよいですか?
- X86とX64の両方のdllをコンパイルする必要があると思いますが、そのようなことをどのように行うかについての手がかりがありません(そして私は少し時間に追われています)。
だからどんな助けでも大歓迎です!
macos - OSX10.6 で x86_64 に逆アセンブル (ただし、_Intel_ 構文を使用)
のことは知っていますが、AT&T よりもIntelotool -tv
の構文を使用したいと思います。主に、本を簡単に読み進めることができ、何千ものとを調べる必要がありません。%
$
gdb
の構成ファイルがどこにあるかについてのヒントもいただければ幸いです。
編集:忘れました:私は64ビットプロセッサを実行していますが、32ビットアセンブリに逆アセンブルすることもできるかどうか疑問に思っていましたか? それだけでなく、OSXのgdb
コマンドは標準版list
と動作が違うのですか?GNU
本当にありがとう!
(また、C -> MIPS からの小さな逆アセンブラをどこで見つけられるかについて何か考えがあれば、それで遊ぶのはとても楽しいでしょう。しかし、必須ではありません!)
assembly - 新しい X86_64 プロセッサ レジスタの名前は?
このアーキテクチャでのアセンブリ用の新しいレジスタの名前はどこにありますか?
EAX、ESP、EBX などの X86 のレジスタについて言及していますが、64 ビットで使用したいと考えています。
Cコードを逆アセンブルしたときと同じではないと思います.eの代わりにrを取得します.
macos - プリコンパイル済みヘッダーとOSXでのユニバーサルオブジェクトのコンパイル
プロジェクトではGCCでプリコンパイル済みヘッダーを使用しており、次のようにビルドします。
今、私はOSX 10.6でプロジェクトを構築しており、次のようにすべてのアーキテクチャで同時に構築するという気の利いた機能を使用しようとしています。
ただし、これはプリコンパイル済みヘッダーでは機能しないようです。
編集:MarkがXCodeに従って指摘したように、プリコンパイル済みヘッダーはアーキテクチャごとに個別にビルドする必要があるため、ユニバーサルオブジェクトをビルドするときにgccに正しいプリコンパイル済みヘッダーを使用させる方法があるかどうかが私の質問です。
XCodeのように各アーキテクチャを完全に個別にビルドできることは理解していますが、同時にビルドする可能性を利用して、さまざまなビルド構成をいじくり回す必要はありません。
c++ - x64 アーキテクチャは x86 とどう違うのですか
私はこれらのアーキテクチャのスタックをいじる必要があり、ここでは本当に無関心です。私ができるトピック/グーグル検索を読むためのポインタ。これらのアーキテクチャが互いに根本的にどのように異なるかを探しています。このトピックに関するウィキペディアの記事以上のものhttp://en.wikipedia.org/wiki/X64
x86 - SSE に対する x87 の利点
x87 の方が内部精度が高いことはわかっています。これは、おそらく x87 と SSE 操作の最大の違いです。しかし、x87 を使用する利点は他にあるのでしょうか? 私はどのプロジェクトでも自動的に入力する習慣があり-mfpmath=sse
、x87 FPU が提供する他の機能が欠けているのではないかと考えています。
c++ - グローバルおよびローカルで一意の 10 文字の ID
10 文字の一意の ID を生成する必要があります (SIP/VOIP 関係者は、それが P-Charging-Vector ヘッダーの param icid-value であることを知っておく必要があります)。各文字は、26 個の ASCII 文字 (大文字と小文字を区別) の 1 つ、10 桁の ASCII 数字の 1 つ、またはハイフンマイナスである必要があります。
それは「グローバルに一意 (ID を生成するマシンの外部)」であり、十分に「ローカルに一意 (ID を生成するマシン内)」でなければならず、すべてを 10 文字に詰め込む必要があります。
これが私の見解です。私は最初に「MUST」をグローバルに一意のローカル IP アドレスを base-63 (エンコード後に 1 ~ 6 文字を占める unsigned long int) にエンコードし、次に現在のタイムスタンプ (そのエンコードされた IP アドレスが最初に占めるスペースの量に応じて、エンコード後に 9 ~ 4 文字を占める time_t/long long int)。
また、関数が 1 秒間に複数回呼び出された場合に一意性を維持するために、ループ カウント 'i' をタイム スタンプに追加しました。
これは、グローバルおよびローカルで一意にするのに十分ですか、それとも別のより良いアプローチがありますか?
ガウラフ