問題タブ [nasm]

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 に答える
7575 参照

c - NASM externステートメントを使用してprintfにアクセスすると、GCCはエラー「`printf'への未定義の参照」を出力します

私はNASMを学んでいて、このコード(ここで見つけました)をコンパイルしようとしています。このNASMコマンドを使用してアセンブルします。

ただし、printf.oこのgccリンクコマンド:

エラーで失敗します:

私は何が間違っているのですか?前もって感謝します。(編集:私はWindows 7を使用しています);

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

assembly - 優れた NASM/FASM チュートリアル?

NASMまたは FASM の優れたチュートリアルを知っている人はいますか? アセンブラを学ぼうとしていますが、良いリソースが見つかりません。

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

assembly - アセンブリ言語の mul & imul 命令を理解する上での問題

ポール・カーターによるPCアセンブリから80386を学んでいます

  • オペランドがバイト サイズの場合、AL レジスタのバイトで乗算され、結果が AX の 16 ビットに格納されます。

大丈夫。

  • ソースが 16 ビットの場合、AX のワードで乗算され、32 ビットの結果が DX:AX に格納されます。

Q1:なぜ DX:AX なのですか? EAX / EDXに保存できないのはなぜですか?

imul本当に紛らわしい

代替テキスト

表の理解に問題があります。

Q2:表の 2 番目のエントリ。繰り返しますが、なぜ DX:AX なのか。なぜ EAX や EDX ではないのでしょうか?

次のコード スニペットを検討してください。

Q3:前に言ってたけどThe notation EDX:EAX means to think of the EDX and EAX registers as one 64 bit register with the upper 32 bits in EDX and the lower bits in EAX.、答えもedxに保存されてるんだよね?上記のコードでは、EDX を考慮していません。単に EAX を参照しているだけです。これはまだどのように機能していますか?

Q4:テーブルの残りのすべてのエントリに問題があります。2 つの n ビット数 (n = 8/16/32 ビット) の最悪の場合の乗算結果は 2n ビットです。2 つの 16/32 ビット乗算の結果を格納すると、レジスタ自体が同じサイズになるのはなぜですか?

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

assembly - モノASM生成

学習のために、cosmosのようなC#で単純なカーネルを書いてみたいと思います。Monoアセンブリからx86またはx86-64ASMを生成することは可能ですか?mono--full-aotが実行可能ファイルを生成するため...

ASMの生成後、NASMでコンパイルする必要があります。何か案は?

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

video - カーネルASM(NASMアセンブラ)でビデオモードを1920x1080(HD)以上に設定する

作業中のASMカーネルのビデオモードを1920x1080以上(または少なくともVESAの通常の制限よりも高い)のビデオモードに設定したいと思います。とにかくそれを行う方法はありますか?もしそうなら、サンプルコードを提供しますか?

NASMを使用してカーネルをコーディングしています。

0 投票する
4 に答える
1223 参照

nasm - アセンブリ言語の`アセンブラ`も特定ですか?どのアセンブラが最適ですか?

私はアセンブリ言語を学んでいます。PC Assembly LanguageNASM(The Netwide Assembler)を使用するPaulA.Carter 'sから始めました。それから途中で切り替えIntroduction to 80×86 Assembly Language and Computer ArchitectureてMASMを使った読み始めました。

NASMでは、バイトを初期化するために書いていました

db 110101b

MASMでは私が使用しています

BYTE 110101b

私は読んでいる最中です。これらはアセンブラディレクティブであるため、アセンブラごとに異なります。右?これらのアセンブラ開発者は、これらのディレクティブの標準に準拠していませんか?なぜなら、彼らはニーモニックがCPU固有であることを知っているからです。だから、アセンブリ言語で学び、コーディングするのはお尻の痛みです。

これで、それらが異なるディレクティブに従う場合、アセンブラーを変更したり、オペレーティングシステムを切り替えたりすると、さらに苦痛になります(MASM開発者がLinuxに移行すると、深刻な問題に直面します)。

私の混乱は、NASMまたはMASMに精通する必要があるかどうかです。私はWindowsのファンですが、(将来的には)Linuxでも作業する必要があるかもしれません。

すべての本には、「__________アセンブラを使用した_________アセンブリ言語」というタイトルを付ける必要があります

0 投票する
9 に答える
56575 参照

assembly - x86 asmのNASM構文で括弧はどういう意味ですか?

次のコードが与えられます:

の括弧は何を[L1]表していますか?


この質問は特にNASMに関するものです。Intel構文アセンブリのもう1つの主要なフレーバーは、MASMスタイルです。このスタイルでは、レジスターが含まれていない場合、ブラケットの動作が異なります。MASM32のブラケットの混乱
を参照してください。

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

assembly - MASM/NASM の違い

NASM アセンブラと MASM アセンブラの構文の違いは何ですか?

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

assembly - NASMアセンブラデバッガ

レジスタ/メモリの現在の状態を確認できる、 NASMによってアセンブルされたコードをステップスルーするために使用できるCodeViewのようなユーティリティはありますか?

0 投票する
3 に答える
5024 参照

c - GCC を使用した Nasm インライン アセンブリ

私のプロジェクトでは、インライン アセンブリを使用する必要がありますが、GAS にあまり詳しくないため、Nasm である必要があります。
私の試み:

これを行う方法はありますが、GAS の代わりに Nasm を使用しますか?

コンパイル時に引数を追加する必要があると思います。