問題タブ [basm]

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

delphi - Delphi インライン アセンブラとクラス プロパティ

アセンブラ (XE3) で TList.IndexOf メソッドを書き直そうとしています。これが私のコードです

当然、Count や List などのプロパティを直接使用したいと思います。コンパイラがプライベート フィールド FCount および FList へのアクセスを拒否する理由は理解できますが、対応するプロパティにアクセスするにはどうすればよいですか? Count、Self.Count、および [eax].Count はすべてインライン アセンブラ エラーを返します。

JIC: ここでは意図的に見つからない状況を処理しません

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

delphi - Delphi と FPC の裸の 64 ビット asm 関数

FPC のディレクティブnostackframeと Delphi の.NOFRAMEディレクティブは、64 ビットの asm 関数でまったく同じですか?

つまり、次のコード テンプレートは

Delphi と FPC で同一の裸の 64 ビット asm 関数を生成しますか?

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

delphi - Delphi アセンブラ: Result レジスタを理解する

DelphiでASMをいじっています。私の理解では、EAX は Result を保持しています。以下では、最後に RET を付ける必要があります。それ以外の場合、Result は正しくありません (入力が 0 の場合は正しい)。私は何を間違っているのですか、それとも何を理解していないのですか?

私なら次のように言います。

次に、次のコンパイルを取得します。

ただし、上記のコードには次の追記があります。

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

delphi - FPC BASM32 MUL バグ?

Delphi BASM32 コードを FPC に移植しているときに問題が発生しました。

上記のコードは Delphi XE でコンパイルされ、期待どおりに動作します。MUL EAX,EDXFPC は次の行にコンパイル時エラーを出力します。

エラー: Asm: [mul reg32,reg32] オペコードとオペランドの無効な組み合わせ

Win32 用の Lazarus 1.4.4/FPC2.6.4 (現在の安定版) を使用しています。

問題の回避策または修正はありますか?

0 投票する
0 に答える
143 参照

delphi - FPC BASM32 POP バグ?

Delphi と FPC BASM の間の別の不一致:

この 32 ビット コードは、Delphi XE では期待どおりに動作し、FPC でアクセス違反が発生します (2.6.4)

POPデバッグにより、 (FPC コンパイラの) 命令が予想されるダブル ワードではなくワードをポップし、スタックとプロシージャの戻りアドレスが破壊されることが明らかになりました。解決策は

これは、パラメーター サイズのあいまいさがなくなるため、実際にはより優れたコードです。

バグかどうか?

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

delphi - インライン アセンブラで Exception.CreateRes を呼び出す

インライン アセンブラを使用して、リソース文字列メッセージで例外を呼び出すにはどうすればよいですか?

いろいろ試してみましたが、何もうまくいかないようです。インライン アセンブラの構文エラーやオペラントのサイズが一致しないなどのエラーが発生します。