問題タブ [yasm]

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 投票する
2 に答える
6313 参照

assembly - アセンブリで星の三角形を印刷するには?

次の出力を取得する必要があります。

10 行なので、星は 1 から始まり 10 になります。

現在、私は得ています:

私のコード:

私は試してみましたが、必要なものを手に入れることができませんでした。

これらすべてpushpop.

正直、これらはよくわかりません。starループを実行するために必要であると言われましたが、たとえば、関数で外側のループを呼び出す必要がある理由がわかりません。

pushとの組み合わせが見つかりませんでしpopた。私は常に多くの星を獲得するか、1 行に 1 つの星を獲得するか、または 1 つだけの星を獲得します。

私は文字通り、どのビットを変更して同じままにしているのか困惑しています。必要な出力を得ることができましたが、増加することはありませんでした。

星 10 個から星 1 個まで出力を得ることができましたが、望んだ結果にはなりませんでした。

私は何を間違っていますか?この質問はどうすればいいですか?

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

assembly - 最小オペコード サイズ x86-64 strlen 実装

コードゴルフ/バイナリ実行可能ファイルの最小オペコードサイズx86-64 strlen実装を調査していますが、これはある程度のサイズを超えることは想定されていません(簡単にするためにデモシーンを考えてください)。
一般的なアイデアはhereから、サイズ最適化のアイデアはhereおよびhereから得られます。

入力文字列のアドレスは にありますrdi。最大長は を超えてはいけませんInt32

最終結果はecx合計11バイトです。

質問はに設定ecxすることです-1

選択肢 1 は既に述べた

オプション 2

オプション 3

オプション 4 、おそらく最も遅いもの


オプション 1 は以前の値に依存していecxます
オプション 2 は以前の値に依存しています オプション 3以前のrax値に依存しているかどうかわかりませんか? オプション 4 は最も遅いものですか?
ecx

ここに明確な勝者はいますか?
基準は、オペコードのサイズをできるだけ小さく保ち、パフォーマンスに関して最適なものを選択することです。
最新の CPU 命令を使用した実装があることは十分承知していますが、この従来のアプローチは最小のもののようです。

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

assembly - 行頭にラベルまたは命令が必要です YASM

2D 平面上の 2 点 (A と B) 間の距離を計算するアセンブリ YASM コードを作成しようとしています。

これは、コードを作成するために使用しているコマンドです。

distance.asm:2: エラー: 行頭にラベルまたは命令が必要です distance.asm:4: エラー: 行頭にラベルまたは命令が必要です

私はアセンブリが初めてで、エラーを修正する方法を理解できません:

私の質問は、上記のエラーが表示されるのはなぜですか? (stackoverflow で同様の質問を読みましたが、コードの何が問題なのかまだわかりませんでした)