問題タブ [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 に答える
1774 参照

delphi - Delphi + アセンブリ配列へのアクセス

アセンブリ(デルファイ)で配列の要素にアクセスするのに問題があります。

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

何が間違っている可能性がありますか?

ありがとう!

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

delphi - Delphi 読み取りオーバーフロー フラグ

私がこれをしたら

加算がオーバーフローしたため、c は 0 になります。このオーバーフローしたブール値をキャッチする最良の方法は何ですか? (a+b<a) or (a+b<b)? 本当に良い方法はインラインアセンブラを使用することですが、私はアセンブラでそれほど多作ではありません(私の推測では、次のようなものが含まれると思いますがJO

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

delphi - Delphi でアセンブリを使用するための良いリソース?

質問

Delphi でアセンブリを使用する方法を学習するためのリソースはありますか?

背景情報

一般的なアセンブリと命令セットのリファレンス (x86、MMX、SSE など) を見つけて読みました。しかし、その情報を Delphi に適用するのは難しいと感じています。クラスプロパティの値を取得する方法などの一般的なこと。

コードを最適化するときにアセンブリを使用するオプションが必要です。

理解します:

  • コンパイラに勝つのは難しいでしょう。
  • 高レベルの最適化手法は、低レベルのアセンブリ最適化よりも数桁もパフォーマンスを向上させる可能性が高くなります。(異なるアルゴリズムの選択、キャッシュなど)
  • プロファイリングは不可欠です。実際のパフォーマンス分析にはSampling Profilerを使用し、低レベルの詳細には CPU サイクル カウントを使用しています。

次の理由から、Delphi でアセンブリを使用する方法を学ぶことに興味があります。

  • ツールボックスに別のツールを入れても問題ありません。
  • コンパイラが生成したアセンブリ出力を理解するのに役立ちます。
  • コンパイラが何をしているかを理解することは、より良いパフォーマンスの Pascal コードを書くのに役立つかもしれません。
  • 私は興味がある。
0 投票する
1 に答える
1651 参照

delphi - Delphi XE2 64ビット:GraphicExのインラインasm

これは、asmから純粋なdelphiにどのようになりますか?GraphicExを必要とするコンポーネントをコンパイルできません。JPGユニットで、インラインアセンブリが64ビットでサポートされていないというエラーが発生します。

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

delphi - DelphiスタイルのASMを英語に翻訳しますか?

私が継承した最近のDelphiプロジェクトには、ASMにプロシージャがあります。私は完全なASM初心者なので、理解できません。プロシージャフローを解読するためにさまざまなASM命令を読みましたが、それでもわかりません。

ASMの経験がある人が私の理解を助け、次の手順を英語に翻訳できますか(その後、Delphiに翻訳し直して、コードが将来読みやすくなります!!!)

Mem1の宣言は、バイトの配列[0..15]です。。そして、Mem2はLongIntです。

手順は次のとおりです。

編集:Roman Rのおかげで、ASMをDelphiに戻しました

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

delphi - アセンブリのbasmへの変換

CrapWOW Hash をhttp://www.team5150.com/~andrew/noncryptohashzoo/CrapWow.htmlから delphi または basm に変換しようとしています。私のasmスキルは非常に限られていますが、それほど難しくないと思いました...

とにかく、asm変換に関するいくつかのWebページの助けを借りて、私はこれにたどり着きましたが、うまくいきません...特に、最後の部分では、変換方法がわかりません。これは、パラメーターと戻りパラメーターへのレジスターの割り当てですか?

これについて少しでもお役に立てれば幸いです。

騎士キラー

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

delphi - Delphi XE2で絶対アドレスからデータを読み取る方法

64ビットモードで絶対アドレスから読み取りたいとしましょうgs:$30.asmコードは次のようになります:

...そしてコンパイラはこのコードを...に変換します

しかし、私は相対アドレスを使いたくありません(rip + $30)。コンパイラで絶対アドレスを使用して、次のようにコンパイルする必要があります。

gs:(接頭辞を付けても付けなくても同じです!)

どうすればいいですか?

編集:

私は回避策を知っています。場所を相対ではなく絶対としてアドレス指定するようにコンパイラに指示するコマンドが存在するかどうかを尋ねます。

編集

ここまでは順調ですね... :)

drhirsch がコマンドを見つけるのを手伝ってくれたので、コンパイラは次のように翻訳します。

これに:

これはほとんど問題ありません:)長い64ビットオペコードよりも短い32ビットオペコード(上のオペコードを見てください)が欲しいからです。

長い代わりに短い 32 ビット アドレス オペコードを使用するようにコンパイラに指示する方法はありますか?

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

delphi - Delphi XE2 アセンブリ

Delphi 2006 で動作する次の関数がありますが、Delphi XE2 では、処理時にアクセス違反エラーまたは特権命令エラーが発生しますRET

組み立てがよくわかりません。何が問題ですか?

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

delphi - Delphi 32でSSE2をサポートしている場合、コンピューターをプローブするにはどうすればよいですか?

それを行うためのc++の方法はここにあります(Windowsの下で)。

同じ答えですが、GCCを使用するLinuxで。

私が理解している関連するasmコードの抜粋:

私はBASMにあまり慣れていません。

私の質問:

次のようにテストをラップする必要があります

私を助けてください。

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

delphi - ASMを使用してオブジェクトメソッドを呼び出す

私が達成しようとしていることをよりよく説明するために、私はうまくいくものから始めます。

別のプロシージャを呼び出して文字列パラメータを渡すことができるプロシージャがあるとします。

これは、私たちが呼び出す手順です。

これで、 SaySomethingをso(テスト済みで動作(:))のように呼び出すことができます。

私の質問は、どうすれば同様の機能を実現できるかということですが、今回はSaySomethingをメソッドにする必要があります。

だから、あなたがまだ私と一緒にいるなら...、私の目標は次のような手順に到達することです:

かなりの数のショットを出しましたが、組み立ての知識は限られています。