問題タブ [assembly]
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.
xcode - Mac での x86 アセンブリ
Mac でアセンブリを作成するための優れたツール (IDE を探しています) を知っている人はいますか? Xcode は私には少し面倒です。
また、Intel Mac では、汎用の x86 asm を使用できますか? または、変更された命令セットはありますか? ポストインテルに関する情報。
また、Windowsでは、OSによって作成されたエミュレートされた環境でasmを実行して、コードが独自の専用マシンで実行されていると認識できることを知っています。OS X は同じものを提供しますか?
operating-system - nasm で 32 ビットと 16 ビットのコードを混在させる
これはシステムに関する低レベルの質問です。
プロテクト モードからリアル モードに戻ろうとしているので、32 ビット コードと 16 ビット コードを混在させる必要があります。ちょっとした背景情報として、私のコードは GRUB の起動直後にこれを行っているので、できることとできないことを教えてくれる厄介なオペレーティング システムはありません。
とにかく、アセンブリで [BITS 32] と [BITS 16] を使用して、どのタイプの操作を使用する必要があるかを nasm に伝えますが、コードをテストすると、bochs を使用して、いくつかの操作で bochs が実行されていないコードのように見えます私が書いた。0x66
アセンブラがエクストラと's に固執しているように見え、0x67
bochs を混乱させます。
では、同じファイルに 32 ビットと 16 ビットのコードが混在している場合に、nasm でコードを正常にアセンブルするにはどうすればよいでしょうか? 何か裏技あるの?
gnu-assembler - アセンブリ言語で 0 から 100 までインクリメントする
これはちょっと変わった話ですが、今日、私は GNU アセンブラーをいじっていました (少なくとも構文を読めるようにしたいのです)。つまり、0から100まで行きたいだけで、その間ずっと数字を出力しています。だから数分後、私はこれを思いつきます:
これから得られるのは、3回何度も印刷されたものだけです。私が言ったように、ほんの少し不自然な例なので、あまり心配しないでください。生死の問題ではありません。
(フォーマットは少し乱れていますが、大きな問題はありません)。
simulator - 初心者向けアセンブラ IDE/シミュレータ
アセンブラでプログラミングする方法を学びたいです。以前 (A レベル コンピューティングのコースで) 少しアセンブリを行ったことがありますが、それは間違いなく単純化された「疑似アセンブラ」でした。父の古い Z80 アセンブラのリファレンス マニュアルを借りてきましたが、とても面白そうなので、可能であれば Z80 アセンブラを試してみたいと思っています。
しかし、手持ちの Z80 プロセッサがなく、自分の PC で実行したいと考えています (Windows または Linux を使用しているので、どちらでも構いません)。インターネット上でさまざまなアセンブラーを見つけましたが、16 進ファイルにアセンブルすることに特に興味はありません。PC 上のある種のシミュレーターで実行できるものにアセンブルできるようにしたいだけです。できれば、このシミュレーターですべてのレジスター、メモリー位置などの内容を表示し、命令を順を追って実行できるようにしてください。これを行う可能性があることを示唆するソフトウェアをいくつか見つけましたが、コンパイルを拒否するか、適切に動作しないようです。誰か提案がありますか?別のタイプのアセンブラで利用できる優れたシミュレータ/IDE があれば、代わりにそれを試すことができます (利用可能な優れたオンライン リファレンス マニュアルがあると仮定します)。
assembly - 集会の方言を学ぶことは価値がありますか?
私の目標は、ソフトウェアアプリケーションの開発、そしておそらくWebアプリケーションの開発に焦点を当てていますが、おそらくデスクトップアプリケーションです。私はC/C ++に慣れるための道を歩み始めていますが、それよりもはるかに低いレベルでアセンブリを実行する必要がありますか?それとも、長期的な目標にメリットがないのでしょうか。
c - ARM7TDMI で引数のアドレスを取得するときに GCC が壊れていますか?
私の C コード スニペットは、引数のアドレスを取得し、揮発性メモリの場所 (前処理されたコード) に格納します。
このコードのコンパイルには GCC の SVN バージョンを使用しました。関数の最後に、値がスタックに格納され、その値を指すアドレスが に格納されるfoo
ことを期待します。flag を使用して最適化なしでコンパイルすると、予想される ARM7TMDI アセンブリ出力が得られます (便宜上コメントされています)。1
0x40000d4
-O0
最初に引数をスタックに格納し、そこから に格納することは明らか0x40000d4
です。を使用して最適化してコンパイルすると-O1
、予期しない結果が得られます。
今回は、スタックの何かがまだ に格納されていても、引数がスタックに格納されることはありません0x40000d4
。
これは予想される/未定義の動作ですか? 何か間違ったことをしたのでしょうか、それとも実際に Compiler Bug™ を見つけたのでしょうか?
c - VS2005 で C ファイルからアセンブラ出力を取得するにはどうすればよいですか
生成されるファイルは .asm ファイルだと思いますが、ビルド時に Visual Studio でこれを生成する方法はありますか?
x86 - x86での「非一時的」メモリアクセスの意味は何ですか
これはやや低レベルの質問です。x86 アセンブリには、次の 2 つの SSE 命令があります。
MOVDQA xmmi, m128
と
MOVNTDQA xmmi, m128
IA-32 Software Developer's Manual によると、MOVNTDQAのNTはNon-Temporalを表し、それ以外は MOVDQA と同じです。
私の質問は、非時間的とはどういう意味ですか?
c - アセンブリ コードを C に挿入する方法はありますか?
古い borland DOS コンパイラを使用していた頃、次のようなことができたのを覚えています。
現在、これを行うためのセミプラットフォームに依存しない方法はありますか? BIOS 呼び出しを行う必要があるため、asm コードを使用せずにこれを行う方法があれば、それも同様に役立ちます。
timer - アセンブリ CPU 周波数測定アルゴリズム
プロセッサの周波数を測定するために使用されている一般的なアルゴリズムは何ですか?