x86

    0

    1答えて

    DX:AXの単語の符号付き除算をしようとしていますが、単語[b] = 10で1234567としましょう。 a dd 1234567 b dw 10 mov ax,[a] mov dx,[a+2] idiv word [b] 商は123456である必要がありますが、大きすぎるためaxに収まりません。この問題を解決するにはどうすればよいですか?

    0

    1答えて

    私はこの test db "Test", 0 のような文字列がどのように私は、x86アセンブリにDSレジスタにこれを移動することができている場合(例えば、文字を印刷しますか)? は、これは間違っているだろう: mov ax, test mov ds, ax

    1

    1答えて

    int x = 5; void foo() { long unsigned r[8]; memset(&r, 0, sizeof(long unsigned) * 8); __asm { pushad; pop r[7]; pop r[6]; pop r[5]; pop r[4]; pop r[3

    2

    1答えて

    x86のローカルAPICから読み書きできるLinuxカーネルモジュール用のコードをいくつか記述しようとしています。私は、割り込みコマンドレジスタから読み出すために以下のコードを使用しています: printk(KERN_ERR "APIC %p %d", (int32_t *)(APIC_BASE + 0x300), *(volatile int32_t *)(APIC_BA

    3

    1答えて

    私はこれを理解するのに苦労しています。 スケジューラは、一定の期間が経過したことをどのように知っていますか? 何らかの種類のシステムコールを使用しているのですか? 秒の代わりに定数HZを使用する点は何ですか? システムタイマはスケジューラと何が関係していますか?

    0

    1答えて

    SSE/AVXアセンブリ命令をテストするためにX64dbgを使用して、コードを記述する前にその動作をよりよく理解しています。私はvmovapd、vbroadcastsd、vsubpd、およびvaddpdの指示を問題なくこの方法でテストすることができました。しかし、 VMULPD ymm2, ymm1, ymm0 私はYMM1でYMM0を乗算しようとしている、とYMM2に結果を格納: YMM0:

    1

    2答えて

    GCCは-marchスイッチをサポートしています。このスイッチを使用すると、ターゲットとするアーキテクチャを指定できるため、そのプラットフォームの命令シーケンスをチューニングできるだけでなく、プラットフォーム上で利用可能な「デフォルト」アーキテクチャの基本バージョン。 たとえば、-march=skylakeは、AVX2などのSkylakeで使用可能な命令セットを使用することを含め、Skylake

    1

    1答えて

    ページディレクトリとページテーブルについてのマニュアルを読んでいますが、これらの概念については非常に混乱しています。たとえば、here私は、単一のレベルのページングだけでメモリを浪費していることがわかりました。したがって、x86アーキテクチャでは、2レベルのページングを使用します。 cr3 --> PageDirectory --> PageTable --> Page 次の線形アドレスを考え

    1

    1答えて

    アセンブリで基本的なブートローダを作成しましたが、実際にはカーネルにジャンプしません。それはちょうど "起動..."と言います。私は間違った場所に飛び乗るように、私が作ったばかげたミスだと確信しています。 "Booting ... Loaded!"のような出力が表示されます。私もそれをロードする前に0に設定しようとしましたが、それは動作しません。ここに私のコードです: mov ax, 9ch m

    0

    1答えて

    Android用GNSDKサンプルアプリケーションは、x86 AVDで実行するとシグナル4(SIGILL)、コード2(ILL_ILLOPN)でクラッシュします。私は、APIレベル22と25でNexus 5 AVDとPixel XL AVDの両方を試しました。サンプルアプリケーションがonCreate()でネイティブGNSDKライブラリを使用しようとすると、同じSIGILLクラッシュが両方で発生しま