タグ

x86に関するhitotakuchanのブックマーク (11)

  • CC500: a tiny self-hosting C compiler

    Introduction I wrote this tiny compiler, which translates a subset of C into x86 machine code, for fun. It has no use, unless it counts as educational. I called it CC500 because I initally guessed it would take about 500 lines. It turned out to be about 600 lines even without the comments and blank lines. With the comments and blank lines it has about 750 lines. It could be made shorter, but I wan

  • LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)

    PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics

    LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
  • 仮想メモリ方式の分類

    作成日:2006.03.30 修正日:2016.10.17 更新記録 (2006.03.30) 2006/3/10 と2006/3/11 の日記の内容を元に作成。 (2006.04.07) SPARC 32 ビットプロセッサのページテーブル構成を修正。 (2006.05.25) 3.2節ページテーブルエントリを追加。 (2012.05.29) PowerPC のセグメントサイズの誤りの修正と図の追加。 (2016.10.17) Intel64 の Process-Context Identifiers(PCIDs) と Protection Keys の説明を追加。また TLB エントリの無効化と ARM の情報も追加。タイポの修正。 1. はじめに 2. 仮想メモリの全体像とページング以外の機構 事前処理 事後処理 3. ページング 3.1 ページウォーク 3.2 ページテーブルエントリ

  • ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記

    バイナリ列を見て x86 のコードかな〜とニヨニヨできる人に、x86 のコードであること、だけじゃなく実際のコード列も読めるようになってほしい!そんな願いから、今回は hex dump のバイト列を見つめてハンド逆アセンブルできるようになるための、効率良い覚え方を紹介します。 今回は、32-bit x86 について解説するよ。 まとめて覚えておきたい 8 つの命令、add, sub, adc, sbb, and, or, xor, cmp (00h〜3Dh) これらの命令は近い所に配置されていて、しかも命令のルールがほとんど同じです。 つまり、ほとんど同じように覚えることができるのです。opcode map 上では次の領域が相当します。 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 ■ ■ ■ ■ ■ ■ ←add ■ ■ ■ ■ ■ ■ ←or 1 ■ ■ ■ ■

    ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
  • x86/x64最適化勉強会1

    茂木 和洋 @kzmogi さて、いよいよ明日か。初めて会う方々ばかりなので楽しみ。 x86/x64最適化勉強会1 : ATND http://t.co/jkAHxiF via @atnd #x86opti 2011-08-05 10:42:50

    x86/x64最適化勉強会1
  • x86の全盛期は終わった

    記者が子供の頃の1970年代は、i8080、Z80、MC6800などがマイコン用8ビットCPU(Central Processing Unit)として全盛だった。それに続いたのが16ビットCPUで、米Intelのi8086がパソコン分野の勝者となった。それがx86アーキテクチャーの始まりである。x86アーキテクチャーは32ビットになり、64ビット(これは「x64」とも呼ぶ)になり、今やWindowsパソコンもMacも企業のサーバーもx86だ。でも、x86の全盛期は終わったのではないだろうか。 x86の強力なライバルが二つ浮上してきた。一つは英ARMのARMアーキテクチャーだ。消費電力が少ない割に高性能なARMは携帯機器に多く採用され、「Microsoft、次期版WindowsでARMアーキテクチャーをサポートへ」といった動きも報じられている。米Microsoftは以前、WindowsでAl

    x86の全盛期は終わった
    hitotakuchan
    hitotakuchan 2011/06/28
    まずアムダールの法則でググること。そしてこのGPUの実行時間はGPU上で実際に計算が行われている時間で、(GPUにコードを転送+GPU内のメモリ確保+GPUとのデータ転送)の時間(数秒かかる場合もある)が入ってませんよ。
  • x86_64 Assembly Language Programming

    レジスタの使い方は次の通りです. レジスタ用途保存 rax戻り値不要 rcx1番目の整数型引数不要 rdx2番目の整数型引数不要 r83番目の整数型引数不要 r94番目の整数型引数不要 r10, r11-必要なら呼び出し元(caller)で保存 r12〜r15, rdi, rsi, rbx, rbp, rsp-必要なら呼び出し側(callee)で保存 xm01番目の浮動小数型引数 / 戻り値不要 xm12番目の浮動小数型引数不要 xm23番目の浮動小数型引数不要 xm34番目の浮動小数型引数不要 xm4, xm5-必要なら呼び出し元(caller)で保存 xm6〜xm15-必要なら呼び出し側(callee)で保存 スタックは常に16byteアラインメントされています. ただし関数呼び出し直後は戻りアドレス(8byte)がpushされているため, 8(mod 1

  • 新命令AVXがもたらすx86の次の革新 その特徴とは (1/4)

    拡張命令から見るx86 CPUの最終回は、拡張命令の今後について語ろう。とは言っても、ここで述べるのはあくまで現時点で見えているだけの話である。 Sandy Bridgeで新命令「AVX」が追加 Larrabee命令のx86導入はまだ先? まず、筋とあまり関係ない話を片付けておこう。インテルが現在「Larrabee」と呼ばれるGPU(というかStream Processor)を開発中なのは、すでに周知の事実だ。このLarrabeeでは、「LRBni」(Larrabee New Instructions)と呼ばれる新しい拡張命令が搭載されることがすでに明らかにされている。 LRBniに合わせて、32個の新しい512bitベクタレジスター「v0~v31」と、8つの16bitマスクレジスター「k0~k7」が追加され、(少なくとも)Vector Arithmetic/Logical/Shiftの

    新命令AVXがもたらすx86の次の革新 その特徴とは (1/4)
  • gccのx86インラインアセンブリに関して

    GCCでインラインアセンブリを使用 する方法と留意点等 for x86  (1999〜2006年10回改訂、2006年1月22日注意を追加、最終更新日2006年5月27日) 文: A. SAITOH <s-akira at users.sourceforge.net>  home ※システム名、CPU名は一般に開発会社の登録商標です。 以下の情報はあまり過度に信用しないで下さい。より正確な情報は、asやgccのinfoから得て下さい。 個々のプロセッサ命令の解説はここでは述べません。そのような技術資料は、インテルやAMDのウェブ サイトのdeveloper向けのページからpdf形式で入手できます。 以下の文及びプログラム例の運用結果に関して、筆者は一切責任を負いません。 参考文献 [0] D. Stancevic, K. Scheibler, J. Leto, Linux Assembly

  • Phidgets RFID開発キット インストールガイド on MacOSX

    最近ではコンピューター、ウェブ、モバイルでゲームを楽しめるようになりました。これらのゲームプログラミングについて学びましょう。 ゲームプログラミングの特徴 ゲームプログラミングは比較的新しいジャンルです。 ゲーム開発に使用される言語は、C#、C++JavaScriptSwiftRubyです。ゲームでは通常のアプリケーションと異なり複雑なビジュアルを操作するパフォーマンスと速度が要求されますので、プログラム言語もそれに特化している言語がおすすめです。 ゲームプログラミングは今後も人気の職種です。習得してステップアップを目指しましょう。 Oracle PLのプログラミング言語について学びましょう。 Oracle PLの特徴 SQL、T-SQLと同様にOracle PLもデータベースを処理するための言語です。違いとしてはOracle PLは世界最大のデータベースのひとつであるOracle

  • IA-32 SIMDの扉

    SIMD命令およびアセンブラの基礎 SIMDとは 用語集 開発環境 アセンブラの基礎知識 x87 FPU命令を使用したプログラミング CPUの識別 メモリアドレスのアライメント ラップアラウンド算術と飽和算術 SIMD命令セットの分類と歴史 SIMD命令セットの記述方法 SIMD命令セットの概要 MMX命令セットの概要 SSE命令セットの概要 SSE2命令セットの概要 SSE3命令セットの概要 SSE4命令セットの概要 命令リファレンス データ転送命令 算術命令 比較命令 論理演算命令 シフト命令 シャッフル命令 パックおよびアンパック命令 変換命令 挿入および抽出命令 ブレンド命令 丸め命令 キャッシュ制御命令 その他の命令 プログラミング例 画像処理 音声信号処理 参考資料 参考資料 トップSIMDの扉

  • 1