タグ

binaryとasmに関するWackyのブックマーク (12)

  • ホワット・ア・ワンダフル・ワールド masmでcrtを書く

    Wacky
    Wacky 2009/09/29
    crt(C RunTime)的な部分、要するにエントリーポイントからmainを起動するまでの部分をmasmで書いてみた。main以降は全く同じなので省略する
  • WinDbg入門

    Windowsセキュリティオンサイトセミナー タイトル 第01回: カーネルデバッガ「WinDbg」入門(その1) 第02回: カーネルデバッガ「WinDbg」入門(その2) 第03回: カーネルデバッガ「WinDbg」入門(その3) 第04回: WinDbgのインストールと起動 第05回: WinDbg環境の確認 第06回: WinDbg環境の有効性を確認する 第07回: WinDbgコマンド体系 第08回: WinDbgコマンドスクリプティング入門 第09回: WinDbgコマンドスクリプティングの利点 第10回: WinDbgとはいったい何なのか? 第11回: WinDbgを使ったアプリケーション分析 第12回: システム管理とWinDbgカーネルデバッガーコマンド 豊田孝の「IT談話館」 ホーム

  • TAKESAKO @ Yet another Cybozu Labs: Binary Hacks と 64bit popCount 問題

    高林さん、オライリーさん、ありがとうございます。 ちなみにetoさん情報によると、明日11/10は「いいバイナリの日」らしいです。 11 → いい 10 → バイナリ Binary Hacks の発売日は 11/11 で、ビットが全部立っている非常に縁起の良い日です。 縁起を担ぐためにも、いいバイナリの日に Binary Hacks を注文して、発売日に書店に行ってを見かけたら 11 冊買いましょう。 x86 パフォーマンスチューニング さて、最後の HACK #100「文献案内」でマイクロプロセッサアーキテクチャマニュアルが紹介されていましたが、 x86のパフォーマンスチューニングつながりということで、 ちょうど今日ラボの社内掲示板で盛り上がった話題をこちらでも共有したいと思います。 * popCount 問題 64bitの数値の中で1になっているビット数を数える popCount64

  • インラインアセンブラで学ぶアセンブリ言語 第3回:CodeZine

    はじめに これまで、『インラインアセンブラで学ぶアセンブリ言語』の第1回と第2回を通じて、Microsoft Visual C++のインラインアセンブラを用い、アセンブリ言語の基について説明してきました。 第3回となる稿では、インラインアセンブラを用いた流れ制御を解説します。アセンブリ言語は高水準言語における文の概念がなく、すべての命令が単純なオペコードと引数(オペランド)だけで構成されています。この純粋な構造のために、流れ制御を行う場合も、if文やfor文のように記述することはできません。基的にプログラムの流れ制御はすべてC言語で言うところのgoto文だけで記述し、比較命令や条件ジャンプも個別の命令で行います。 来のマクロ機能を持たない生のアセンブリ言語ならば、ジャンプ先のプログラムの位置すらも、すべてメモリアドレスで指定しなければなりません。実際に、機械語にアセンブルされた後は

    Wacky
    Wacky 2006/09/02
    アセンブリ言語による条件分岐や繰り返しなど、プログラムの流れを制御する方法を解説します。
  • http://homepage3.nifty.com/murasakigawa/tech/x86arith/index.html

    Wacky
    Wacky 2006/08/26
    これからはじめる一連の文章は、x86(インテルに言わせるとIA32)アーキテクチャーでの特殊演算に関する入門です。
  • SSE2による浮動小数演算の仕組みと検証:CodeZine

    x87 FPU x87 FPUは、x86アーキテクチャが標準で搭載する命令セットの一つです。st(0)~st(7)までの8つのレジスタ(80ビット)が利用可能ですが、これらはスタック構造になっており、各レジスタに自由にアクセスすることはできません。命令セットに即値モードがないため、単純に値を代入するだけでもメモリアクセスを要します。 しかしながら、x86 CPU同士であれば環境依存の問題が生じないという大きなメリットも持ち合わせます。一般的なx86用Cコンパイラなどは、デフォルトでFPU用のネイティブコードを生成するようになっていることが多いようです。MMX MMX Pentium以降のIntel CPUに組み込まれる拡張命令セットです。FPUレジスタの64ビット分を活用し、8ビット整数8組、16ビット整数4組、32ビット整数2組に対する演算を同時に行うことができます。 ちなみに、MMX命

    Wacky
    Wacky 2006/08/05
    SSE2です。これらは64ビット・128ビットなど、汎用レジスタでは表現不可能な整数演算を高速に行ったり、浮動小数演算をサポートしたりしてくれます。
  • リサイクル ショップ 通販 ファッション カタログ at kousaku.in

    Wacky
    Wacky 2006/07/29
    最新のGCCおよびVisual Studio 2005に組み込まれたMNIことSSE4の命令エンコーディングの情報と過去の実装例から、その機能を推測してみるという無謀な試みを行っています
  • x86系CPUのネイティブコードを解析する:CodeZine

    はじめに 今回はPC市場で一般的に採用される、x86系のCPUの機械語に迫ります。最新技術が次々と現れる昨今ですが、実はx86の規格はあまり目新しいものではありません。クロック周波数は上がるものの、機械語の形態は昔から引き継がれています。x86 CPUの種類 x86ネイティブコードを解読できるCPUには、下記のようなものが挙げられます(※AMD64を除く)。もはや説明はいりませんね。Intel Pentium 4Intel Pentium 3Intel Pentium 2Intel MMX PentiumIntel PentiumIntel 486/386AMD AthronAMD DuronAMD K-6  ここからは、32ビット以降のx86系 CPUに関する話題を扱っていきます。8ビットCPU、16ビットCPUに関するテクニックは出てきませんので、ご了承ください。

    Wacky
    Wacky 2006/07/29
    今回はPC市場で一般的に採用されているx86系CPUの機械語に迫ります。
  • AMD64の特徴と機械語コーディング:CodeZine

    はじめに 64ビットCPUが出始めて、数年が経ちます。現状では、ほとんどのデスクトップPCが64ビットCPUを搭載する形になり、ノートPCの64ビット化も時間の問題と思われます。今回は、64ビット技術がどのような特徴を持ち合わせているのか、ソフトウェア側のアプローチをどのように進めていったらよいのかという話題で進みます。そもそも、64ビットCPUって 実は、ひとことで64ビットCPUと言うと、2つの異なるCPUを意味してしまいます。AMD64/EM64-TIA-64  AMD64/EM64-T(以下、AMD64)とは、x86アーキテクチャのレジスタ幅を64ビットに拡張し、64ビット対応のネイティブコードを追加した規格になります。一般的に、パソコン市場で64ビットCPUと言うと、ほとんどがこちらのAMD64のことを意味しています。因みに、このアーキテクチャの設計を一番初めに行ったのはAMD

    Wacky
    Wacky 2006/07/29
    64ビット技術がどのような特徴を持ち合わせているのか、また、ソフトウェア側のアプローチをどのように進めていったらよいのかというテーマについて語ります。
  • Assembly Programming Linux - Linux でアセンブリプログラミング

    Linux でアセンブリプログラミング copyright (C) 2000,2001 Jun Mizutani (mizutani.jun@nifty.ne.jp)

  • DR-DOS System and Programmer's Guide (私訳)

    DR-DOS System and Programmers Guide (私訳) もくじ このガイドについて Chapter 1 イントロダクション (未訳) Chapter 2 API の使用 Chapter 3 DR-DOS のサポートする割り込み (途中まで) Chapter 4 DR-DOS のシステムコール (9割がた訳了) Chapter 5 エラー処理 Chapter 6 デバイスドライバ Chapter 7 DR-DOS BIOS (未訳) Appendix A デバイス入出力制御 (IOCTL) (未訳) Appendix B タスクマネージャのファンクション (未訳) Copyright (c) 1993, 1997 Caldera, Inc All rights reserved.

  • introduction to x86-asm

    x86アセンブリ言語入門 昔に書いたのを発掘し, 若干手直しして出しました. 内容の古いところや間違ってるところがあればご指摘ください. 64bit環境についてはx64 アセンブリ言語プログラミングを参照してください. なおこのページではごく簡単なコードを書けるようになること, デバッグ時に知っておけばよいこともあるだろう程度の知識の取得を目指します. 高速化手法自体については触れません. レジスタについて 基用語 最初の一歩 Cとの連係 Cとの連係 その2 Cとの連係 その3 Windows DLL 少し応用 gasの場合は 実際に書くならこんなことも 簡易命令一覧

    Wacky
    Wacky 2006/02/12
    x86アセンブリ言語入門
  • 1