タグ

X86とlanguageに関するItisangoのブックマーク (3)

  • Tips IA32 P6ファミリ命令一覧

    このサイトで挙げる命令はMMX命令の一覧となります。MMXは64ビットの個別要素の整数データ処理を 行います。IA-32アーキテクチャ以降で追加された機能となりますが、IA-32より前のプログラムとの 互換性を維持しています 調べたい命令の頭文字をクリックすると、表の下に詳細が表示されます IA32 MMX命令一覧

    Tips IA32 P6ファミリ命令一覧
    Itisango
    Itisango 2013/01/26
    #MMX 命令を使っていたか!これが #x87 #FPU データレジスタスタックとの間で干渉してるんじゃないかな? > http://goo.gl/xNdZH http://goo.gl/aXZcO
  • Assembly Programming Linux

    実行しているのは次のコードです.fld でメモリにある80ビットの浮動小数を スタックにつみます. (a) の fsub 命令でスタックの上部の2つの数値を取り出して 減算し, 結果をスタックに戻します. (b) の fsubp 命令では fsub の後にスタック をポップ(スタックトップを空にした後,ポインタをインクリメント)します. (c) の例では, fcompp で大きさを比較した結果を C0, C2, C3 の条件コードに設定 してスタックを2回ポップしています. 比較に使った数値が不用の場合です. Num16 dt 16.0 Num4 dt 4.0 fld tword[Num16] fld tword[Num4] fsub st1, st0 ; (a) ; または fsubp st1,st0 (b) ; または fcompp st1,st0 (c) 使いやすいのは (b) の方

  • プログラミングノート - x86

    movl 3(%esi,%ebx,2), %eax 整数演算 ロード/ストア mov eax, [4] mov eax, [ebx] mov eax, [ebx+4] mov eax, [ecx*2+4] mov eax, [ebx+ecx] mov eax, [ebx+ecx+4] mov eax, [ebx+ecx*2] mov eax, [ebx+ecx*2+4] mov eax, [rip+4] レジスタ (eax, ebx, ecx の部分) は汎用レジスタどれでも指定できる。 シフト (*2 の部分) は 2, 4, 8 のいずれか。 オフセット (+4 の部分) は符号付き 8 ビットまたは 32 ビット。 64 ビットでは rip 相対アドレッシングが可能。 ただし単純にオフセット (符号付き 32 ビット) を加算する形式のみ。 32 ビットでは eip 相対は不可。 c

    Itisango
    Itisango 2013/01/25
    #x86 の #アセンブラ について軽く解説しているページ。
  • 1