問題タブ [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.
delphi - Delphi インライン アセンブラとクラス プロパティ
アセンブラ (XE3) で TList.IndexOf メソッドを書き直そうとしています。これが私のコードです
当然、Count や List などのプロパティを直接使用したいと思います。コンパイラがプライベート フィールド FCount および FList へのアクセスを拒否する理由は理解できますが、対応するプロパティにアクセスするにはどうすればよいですか? Count、Self.Count、および [eax].Count はすべてインライン アセンブラ エラーを返します。
JIC: ここでは意図的に見つからない状況を処理しません
delphi - Delphi と FPC の裸の 64 ビット asm 関数
FPC のディレクティブnostackframe
と Delphi の.NOFRAME
ディレクティブは、64 ビットの asm 関数でまったく同じですか?
つまり、次のコード テンプレートは
Delphi と FPC で同一の裸の 64 ビット asm 関数を生成しますか?
delphi - Delphi アセンブラ: Result レジスタを理解する
DelphiでASMをいじっています。私の理解では、EAX は Result を保持しています。以下では、最後に RET を付ける必要があります。それ以外の場合、Result は正しくありません (入力が 0 の場合は正しい)。私は何を間違っているのですか、それとも何を理解していないのですか?
私なら次のように言います。
次に、次のコンパイルを取得します。
ただし、上記のコードには次の追記があります。
delphi - FPC BASM32 MUL バグ?
Delphi BASM32 コードを FPC に移植しているときに問題が発生しました。
上記のコードは Delphi XE でコンパイルされ、期待どおりに動作します。MUL EAX,EDX
FPC は次の行にコンパイル時エラーを出力します。
エラー: Asm: [mul reg32,reg32] オペコードとオペランドの無効な組み合わせ
Win32 用の Lazarus 1.4.4/FPC2.6.4 (現在の安定版) を使用しています。
問題の回避策または修正はありますか?
delphi - FPC BASM32 POP バグ?
Delphi と FPC BASM の間の別の不一致:
この 32 ビット コードは、Delphi XE では期待どおりに動作し、FPC でアクセス違反が発生します (2.6.4)
POP
デバッグにより、 (FPC コンパイラの) 命令が予想されるダブル ワードではなくワードをポップし、スタックとプロシージャの戻りアドレスが破壊されることが明らかになりました。解決策は
これは、パラメーター サイズのあいまいさがなくなるため、実際にはより優れたコードです。
バグかどうか?
delphi - インライン アセンブラで Exception.CreateRes を呼び出す
インライン アセンブラを使用して、リソース文字列メッセージで例外を呼び出すにはどうすればよいですか?
いろいろ試してみましたが、何もうまくいかないようです。インライン アセンブラの構文エラーやオペラントのサイズが一致しないなどのエラーが発生します。