問題タブ [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 投票する
1 に答える
310 参照

assembly - x86 yasm、cmpsb の segfault; cmpsb の適切な使用法?

演習として、yasm でバブルソートの始まりを書いています。しかし、私は以下の最後の命令で毎回セグメンテーション違反をしており、その理由がわかりません。

私の理解では、cmpsb は si と di のバイトを比較します。なぜセグメンテーション違反になるのでしょうか? これは私の側では本当に単純なエラーに違いありませんが、私にはわかりません。通常、cmpsb は repe のコンテキストで使用されますが、ここでも機能すると思いました。助けてくれてありがとう!

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

assembly - このYASM警告を防ぐ正しい方法は何ですか?

YASM(32ビットコード)に次のコード行があります。

これは正しく機能しますが、次の警告が表示されます。

警告を回避したり、抑制したり、完全に無視したりする方法はたくさんあります。
しかし、私が知りたいのは次のとおりです。

そもそもこの警告を回避する適切な方法は何ですか?

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

assembly - アセンブリ言語でのPCIデバイスチェック

私は単純なプログラムを持っていて、それを読まなければなりませんPCI configuration space(最初のPCIデバイスのためだけに)。しかし、それは機能しません。YASM:

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

ありがとう。

PS私はエミュレーションにBochsを使用し、アセンブラーとしてYASMを使用しています

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

ffmpeg - ffmpeg 醸造 yasm

Brew経由でffmpegをインストールしようとしています。yasmで発生するエラーは

「エラー: ffmpeg をインストールする前に、'brew link pkg-config yasm' を実行する必要があります」

そうすると、権限が不十分だと言われます。

「/usr/local/Cellar/pkg-config/0.28 をリンクしています... 警告: pkg-config をリンクできませんでした。リンクを解除しています... エラー: 許可が拒否されました - /usr/local/share/doc」

権限は -rw-rw--- です。yasm パッケージのリンクを解除してからやり直しましたが、うまくいきませんでした。何か案は?

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

assembly - YASM アセンブラーを使用するための正しい構文

YASM アセンブラを使用すると、次のような入力時に構文エラーが発生することがあります。

nop dword [ds:rax+rax+0x0]またはnop dword [eax+eax]など。

分解:

構文エラーを発生させずにこれを入力する正しい方法は何ですか?

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

linux - yasm はシステムにインストールされていますが、他のフォルダーにインストールされています

ffmpeg と x264 をインストールしようとしています。これをインストールするには、「 https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide 」の指示に従いました。yasm をインストールし、コマンド yasm --version を使用して確認したところ、正常にインストールされたバージョンが表示されました。しかし、ffmpeg をインストールしようとすると、yasm not found のようなエラーがスローされます。パスを確認するためのサイトをいくつか参照しました。yasm のデフォルト パスは /usr/local/bin ですが、私のシステムでは /home/janpal/bin/yasm として表示されます。rootユーザーでもやってみました。誰かがこれを正しいパスにインストールするのを手伝ってくれますか? ubuntu 10.04を使用しています

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

assembly - シンプルなブートローダーと bochs

AT&T 構文で書かれた単純なブートローダーがあります。

私はyasm -f bin -o boot.bin loader.sそれをコンパイルするために使用し、bochs を実行します。

しかし、bochsあると言ったno bootable device

そこで、次の質問があります。

  1. AT&T 構文で書き直すにはどうすればよいですか (代わりにどの構造を使用する必要がありますtimes 510-($-$$) db 0)か?
  2. ボクの何が悪いの?

ありがとう!

PSBochsはサポート付きでコンパイルされましたが、公式の arch リポジトリからはx86_64動作しません。bochs

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

assembly - 3 バイトの VEX プレフィックスを回避するには、どの AVX レジスタを使用すればよいですか?

現在、x64 用の Bitslice DES の実装に取り​​組んでおり、次の AVX 命令を使用して 3 バイトの VEX プレフィックスをできるだけ回避する方法を知りたいです。

コードをより小さく高速にするために、3 バイトの VEX プレフィックスではなく 2 バイトの VEX プレフィックスをできるだけ使用するように言われましたが、その方法が正確にはわかりません。xmm[89] と xmm1[0-5] の代わりに xmm[0-7] を使用する必要があることをどこかで読みましたが、オペランドのどの組み合わせが 3 ではなく 2 バイトの VEX プレフィックスを与えるかわかりません。バイトのもの。これらの命令は、次のスニペットに示すように、2 つまたは 3 つのオペランドで使用されます。

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

linux - アセンブリでドットの三角形を作成しようとしていますが、うまくいきません

ユーザーが入力した値を取得して(結果の三角形のサイズを変えるため)、それを使用して減少するドットの行を書き込むことにより、画面上にドットの三角形を作成しようとしています。

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

問題:

  • プログラムの実行時に、ユーザーが入力した数値を最初の行のドット数に使用したい。ただし、任意の数字を入力すると、それぞれに 1 つのドットを含む多数の行が印刷され、約 1 秒後に 32768 ドットを含む行が印刷されます。これに 32767 ドットのラインなどが続きます。各ラインのドット数は、1 ドットのラインまで減少し続けます。

32768 は 10000000_00000000 の 16 進数であることに気付きましたが、それ以外は完全に行き詰まっており、何か助けていただければ幸いです!

PS私はx84-64 Linuxを使用しており、YASMでアセンブルしています

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

windows - Windows 7 での libvpx のビルド - yasm エラー

ここの指示に従って、64 ビット Windows 7 で libvpx をビルドしています (ただし、win32 プラットフォームのビルドをターゲットにしたい)。

http://www.webmproject.org/code/build-prerequisites/

私は Mingw と yasm 1.1.0 を使用してこれを行っています。

私はほぼすべてのプロセスを完了しており、その結果、MSVS 2010 のすべてのプロジェクト ファイルとソリューション ファイルが作成されました。

MSVS 2010 でソリューションを開くと、libvpx をビルドできず (他のすべてのプロジェクトはこれに依存しています)、次のエラーが表示されます。

SO や他のサイトで検索すると、次のような似たような結果が得られます。

http://code.google.com/p/webrtc/issues/detail?id=197

しかし、私が理解していることから、それはwebrtcに関連しており、OPはおそらくyasmも構築しています。これは私の場合とは異なります-私はyasmを構築しておらず、そのサイトからダウンロードしています。

簡単に言えば、次の手順でこの問題が発生します。

  • インストールMingW
  • MingW/binがシステムパスにあることを確認してください
  • yasm (汎用実行ファイル) をダウンロードします。
  • yasm-1.1.0-win32.exe を MingW/bin ディレクトリにコピーします。
  • yasm-1.1.0-win32.exe の名前を yasm.exe に変更します
  • コマンド プロンプトを開き、Mingw/bin ディレクトリにいないことを確認し、yasm と入力します。
  • yasm: No input files specified, so I am sure yasm.exe is being located from other directory で応答します。
  • http://www.webmproject.org/code/build-prerequisites/のすべての手順に従います
  • VS プロジェクトをビルドするまで到達する
  • 実行する
  • すべてのプロジェクトと .sln ファイルが生成されていることを確認してください
  • MSVS 2010 で .sln ファイルを開きます (2008 から 2010 に変換する必要があり、変換プロセスは完璧です)
  • ソリューションのビルド - 失敗します (ただし、obj_int_extract をビルドすると obj_int_extract.exe ファイルが生成されます)
  • 次に、vpx プロジェクトのみをビルドしようとすると、yasm に関連する上記のエラーが表示されます

私は yasm を構築しておらず、yasm.exe のみに依存しているので、このエラーは発生しないはずですよね? また、同じ理由で、x86insn_gas.gperf または x86insn_nasm.gperf が存在するかどうかは気にしません。間違っている場合は修正してください。

誰かがこの問題に直面したことがありますか?

参考までに、make コマンドからの出力では、ビューに奇妙な点は何も表示されません。次のとおりです。

編集: MSVS IDE パスをシステム パスに配置し、make コマンドを再度実行します。今回は、上記の警告は表示されず、(MSBuild に関連する) いくつかの警告が表示されます。

文字数 (30k) の制限により、関係するビットのみを言及:

MSVS 2010 でコンパイルすると、次のようになります。

早く解決策が見つかりますように

御時間ありがとうございます!

Edit2 (20-12-2013): わかりまし た、Michael の提案に従って、cygwin でこれを実行しようとしました (MingW は ; を別の方法で処理している可能性があります) が、いくつかのエラーに遭遇しました:

Cygwinに関する提案はありますか?