問題タブ [fasm]

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

windows - ウィンドウが表示されない(x86 ASM、Windows)

リストボックスが入ったウィンドウを開こうとしています。ただし、何も起こりません。Windowsのタスクマネージャで約5秒間開いたままになり、その後閉じます。

Flat Assembler(http://flatassembler.net/)を使用して、プログラムをアセンブルおよびリンクしています。

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

assembly - X86アセンブリの浮動小数点除算は奇妙な結果をもたらします

私は現在、SimplyFPUチュートリアルを勉強しています。ですから、私自身の練習として、アセンブリでフローティングポイントを分割する方法を学びたいと思います。48.6を17.1で割るとします。これがコードです。

コードの出力は次のとおりです。

7.62883e + 265

ここで何が問題になりますか?

Jesterが提案したように、私はOllyDbgを使用してコードを調べました。

ollydbgスクリーンショット

結果は正しかったと思いますが、どういうわけかprintfでめちゃくちゃになってしまいましたか?

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

assembly - x86 アセンブラ cpuid 出力関数 レジスタの解析結果

fasm プログラムを作成するcpuidと、出力は次のようになります。

fprintfromを使用し/lib/ld-linux.so.2てこの出力を表示します。

EAXしたがって、すべての仕様を表示するには、いくつかの関数を使用して ,... regsからすべてのフラグを読み取る必要があります。

これは、レジスタからビットを読み取ること、またはcpuid出力の 1 つの構造を作成することを意味します。

それを行うための1つの解決策を教えてもらえますか?

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

assembly - x86 アセンブリ: movsd 命令の問題

これは私の問題です: (in ) を使用して単一の浮動小数点値を入力
しようとしてから、 (in )のような単純な「scanf プログラム」を作成します。scanfmsvcrt.dllflat assemblerC

次に、パラメーターを使用cl.exeしてコンパイルし、/FA次のようなアセンブリ ファイルを生成します。

私が誤解しているのはmovsd指導です。ここによると:http: //faydoc.tripod.com/cpu/movsb.htmですが、Move doubleword at address DS:(E)SI to address ES:(E)DI設定はありません。ここと生成されたソースファイルには2つのパラメーターがありますが、リンク内のドキュメントではそうすべきではありません。誰かがここで私を説明できますか?esiedimovsd

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

assembly - as86 を fasm に変換する

この as86 用のアセンブリを fasm に変換しようとしています。3 つの質問があります。

1) seg es与えられたerror: illegal instruction.this が 16 ビットで有効でないのはなぜですか?

2) (FASM 構文) はmov byte [0],0x41(as86 構文) とまったく同じmov [0],#0x41ですか? そうでない場合、同等のものを見せてもらえますか?

3) entry startFASM でエラーが発生するのはなぜですか?

アセンブリ コードは次のとおりです。

as86

そして、私が書いた fasm バージョン:

FASM

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

assembly - ASMx86FASMアセンブラで関数を宣言する

組み立ての最初の試み..helloworldをスキップして、すぐに飛び込んでCRC32Checksumを実行することにしました:l

今、私は混乱しています笑..

私の試み:

CRC32Checksumを呼び出すにはどうすればよいですか?私も正しい方向に進んでいますか?アセンブリで関数を宣言するにはどうすればよいですか?

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

function - ASM x86 FASM の関数パラメータ

アセンブリで関数にパラメーターを渡すにはどうすればよいですか? Last Paramをプッシュし、Second Paramをプッシュし、First Paramをプッシュしました..

しかし、関数内のパラメーターにアクセスできませんMeh..私がやっていることはプログラムをクラッシュさせます..

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

assembly - アセンブリ ディレクティブをコンパイルしません

Flat Assembler を使用していますが、何かを実行しようとすると、アセンブラー ディレクティブのすべての行に「不正な命令」と書き込まれます。たとえば、以下のコードでは、 that .MODEL SMALLis not legal と記述し、id がこの行を削除すると、 that .STACK 200His not legal と記述します。

このコードでは、次のように機能します。

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

assembly - この値を保持する方法

アセンブリ ルーチンによって変更される予約バイトがあります。

私はpusha/* 仕事をしました */を使用してpopaいましたが、セグメンテーション違反が発生します。

pushaandpopapush eax push ecx/* do my job */に置き換えると、正常にpop ecx pop eax動作します。

しかし、なぜこのセグフォルトが発生するのでしょうか? との関係はpusha

以下は私のコードの一部です。ここでは、8 つのレジスタのうち 2 つだけを使用します。ルーチンで 8 を使用する必要がある場合、各レジスタをプッシュ アンド ポップする必要がありますか? バフを維持する以外に方法はpushaありませんか?popa

seg fault を与えないでください:

bufは次のように定義されます。

セグメント読み取り可能書き込み可能
buf rb 12

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

linux - アセンブリ言語のポインタ

アセンブリでポインターを使用する方法を理解しようとしています。内部に関するいくつかのチュートリアルを読んで、いくつかの概念を理解したと思います。しかし、試してみると、うまくいきました。以下は、C を ASM に変換する試みです。

(これは完全なコードではありませんが、単語チェックであるため、0xFF0000、0xF000000 をそれぞれチェックする 2 つの stmts があります。

ASM:

セグフォルトを返します。

そして試してみてください:

これは gcc コンパイラによって生成され、他のアセンブリ コードで確認できます。

invalid symbol

FASM アセンブラー上。FASM で実際にサポートされていないか、何か不足していますか?