問題タブ [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.
assembly - x86 yasm、cmpsb の segfault; cmpsb の適切な使用法?
演習として、yasm でバブルソートの始まりを書いています。しかし、私は以下の最後の命令で毎回セグメンテーション違反をしており、その理由がわかりません。
私の理解では、cmpsb は si と di のバイトを比較します。なぜセグメンテーション違反になるのでしょうか? これは私の側では本当に単純なエラーに違いありませんが、私にはわかりません。通常、cmpsb は repe のコンテキストで使用されますが、ここでも機能すると思いました。助けてくれてありがとう!
assembly - このYASM警告を防ぐ正しい方法は何ですか?
YASM(32ビットコード)に次のコード行があります。
これは正しく機能しますが、次の警告が表示されます。
警告を回避したり、抑制したり、完全に無視したりする方法はたくさんあります。
しかし、私が知りたいのは次のとおりです。
そもそもこの警告を回避する適切な方法は何ですか?
assembly - アセンブリ言語でのPCIデバイスチェック
私は単純なプログラムを持っていて、それを読まなければなりませんPCI configuration space
(最初のPCIデバイスのためだけに)。しかし、それは機能しません。YASM:
コードは次のとおりです。
ありがとう。
PS私はエミュレーションにBochsを使用し、アセンブラーとしてYASMを使用しています
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 パッケージのリンクを解除してからやり直しましたが、うまくいきませんでした。何か案は?
assembly - YASM アセンブラーを使用するための正しい構文
YASM アセンブラを使用すると、次のような入力時に構文エラーが発生することがあります。
nop dword [ds:rax+rax+0x0]またはnop dword [eax+eax]など。
分解:
構文エラーを発生させずにこれを入力する正しい方法は何ですか?
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を使用しています
assembly - シンプルなブートローダーと bochs
AT&T 構文で書かれた単純なブートローダーがあります。
私はyasm -f bin -o boot.bin loader.s
それをコンパイルするために使用し、bochs を実行します。
しかし、bochs
あると言ったno bootable device
。
そこで、次の質問があります。
- AT&T 構文で書き直すにはどうすればよいですか (代わりにどの構造を使用する必要があります
times 510-($-$$) db 0)
か? - ボクの何が悪いの?
ありがとう!
PSBochs
はサポート付きでコンパイルされましたが、公式の arch リポジトリからはx86_64
動作しません。bochs
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 つのオペランドで使用されます。
linux - アセンブリでドットの三角形を作成しようとしていますが、うまくいきません
ユーザーが入力した値を取得して(結果の三角形のサイズを変えるため)、それを使用して減少するドットの行を書き込むことにより、画面上にドットの三角形を作成しようとしています。
コードは次のとおりです。
問題:
- プログラムの実行時に、ユーザーが入力した数値を最初の行のドット数に使用したい。ただし、任意の数字を入力すると、それぞれに 1 つのドットを含む多数の行が印刷され、約 1 秒後に 32768 ドットを含む行が印刷されます。これに 32767 ドットのラインなどが続きます。各ラインのドット数は、1 ドットのラインまで減少し続けます。
32768 は 10000000_00000000 の 16 進数であることに気付きましたが、それ以外は完全に行き詰まっており、何か助けていただければ幸いです!
PS私はx84-64 Linuxを使用しており、YASMでアセンブルしています
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に関する提案はありますか?