タグ

x86に関するTAKESAKOのブックマーク (196)

  • ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記

    というわけで、昨日から話題沸騰の Javascript PC Emulator すごいですね。JavaScript で書かれた x86 PC エミュレータ上で Linux 動かして、入ってる tcc 使えばそこそこのソースもコンパイルして動いたり。 もとのディスク容量が少ないので、適当な母艦を用意して、こんな感じ で新しいディスクイメージ作って、CocProxy や Fiddler の AutoResponder を使って root.bin へのリクエストをローカルのファイルに差し替えてやれば、好きなファイルも入れられますね。 というわけで、SpiderMonkey を入れて動かしてみました。ブラウザ内でJavaScriptが動くなんてムネアツですね! 手順としては、コンパイルの簡単な SpiderMonkey 1.7 を x86 の32ビットマシンで -static 付きでビルドして、r

    ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記
  • はじめての80386記号プログラミング - Articles Advent Calendar 2010 Sym

    こんにちは。id:TAKESAKOです。 そろそろ単純な「Hello, world!」に飽きてきた頃なので、フィボナッチ数列を数えるプログラムをC言語で書いてみたいと思います。 C言語でフィボナッチ数列を数える それではまず最初に、Cの文字列領域にフィボナッチ数列を数えるx86の32bit実行コードを書いて、それを無理やり関数呼び出しの形式にして実行してみたいと思います。 #include <stdio.h> char x86[] = { 0x8B, 0x4C, 0x24, 0x04, // mov ecx,[esp+0x4] 0x31, 0xC0, // xor eax,eax 0x99, // cdq 0x49, // dec ecx 0x7F, 0x04, // jg 0xe 0xE0, 0x01, // loopne 0xd 0x40, // inc eax 0xC3, // re

    はじめての80386記号プログラミング - Articles Advent Calendar 2010 Sym
    TAKESAKO
    TAKESAKO 2010/12/16
    書きました→「はじめての80386記号プログラミング」 #jpac2010
  • http://www.ttyshare.com/rec/takesako/111868456/

    TAKESAKO
    TAKESAKO 2010/10/17
    "all your base10 are belong to us" - That Goes Without Alpha-Num (or Does It ?) #yapcasia
  • Programming Memo: SIMDでテーブル参照

    2009年11月14日土曜日 SIMDでテーブル参照 こんな感じの、いわゆるテーブル参照をSIMDで並列化することを考える。 char table[N] int index[N] char result[N] for ( int i = 0; i Nが16以下ならば簡単。shuffle命令を使えばいい。 __m128i mindex; __m128i mtable; __m128i mresult; mindex = _mm_load_si128( (__m128i *)index ); mtable = _mm_load_si128( (__m128i *)table ); mresult = _mm_shuffle_epi8( mtable, mindex ); _mm_store_si128( (__m128i *)result, mresult ); Nが16より大きい場合は、sh

    TAKESAKO
    TAKESAKO 2010/04/13
    SIMDでテーブル参照
  • SIMD演算 - MUGI COM

    C言語でSSEやSSE2を使う方法について。ポイントがいくつかあります。 xmmintrin.hやemmintrin.hをインクルードする SSE命令のみならxmmintrin.h、SSE2命令も使うならemmintrin.h SIMD命令でアクセスするメモリは16バイトアラインメントにする gccの場合、_mm_malloc関数を使えばよい。 MMX命令はAMDCPUでは使えない Pentium4以降に限定されますが、SSEやSSE2を使うのが良いでしょう。 これらを踏まえて、画像の各ピクセルのRGB値を反転させる例を示します。 各ピクセルは8bitのRGB値が並んでいるものとします。8bitの整数演算を行うので、8bit計算を16個並列で行うSSE2命令を使用します。 最初はSSE2のインクルードファイル。 #include <emmintrin.h> つづいて16バイトアラインメン

    SIMD演算 - MUGI COM
    TAKESAKO
    TAKESAKO 2010/04/13
    C言語でSSEやSSE2を使う方法について。画像の各ピクセルのRGB値を反転させる例
  • 仙石浩明の日記: x86_64 Linux などの 64bit 環境で MD5 を使うときの注意点

    MD5 (Message Digest Algorithm 5) は、 RFC 1321 でアルゴリズムが紹介されていて、 Appendix (付録) として C によるリファレンス実装が付属しているが、 その global.h に /* UINT4 defines a four byte word */ typedef unsigned long int UINT4; と書いてある。 すなわち 32bit 整数として UINT4 型を定義している。 x86_64 Linux を始め多くの 64bit Unix は LP64 すなわち long int (とポインタ) が 64bit な整数データモデルを採用している。 したがって UINT4 型の定義が 「unsigned long int」 のままで、 この MD5 リファレンス実装を使ってしまうと、 32bit であるべき UINT4

    TAKESAKO
    TAKESAKO 2010/03/01
    x86_64 Linux などの 64bit 環境で MD5 を使うときの注意点
  • http://www.sabamiso.net/yoggy/tdiary/?date=20100221

    TAKESAKO
    TAKESAKO 2010/02/28
    CTF10勉強会(2/21) - メモ
  • http://www.sabamiso.net/yoggy/tdiary/?date=20100211

    TAKESAKO
    TAKESAKO 2010/02/12
    CTF10勉強会(2/11) - メモ
  • Faster.pm の中身の話 - tokuhirom's blog

    Faster.pm の中身の話 mlehmann の Faster.pm という Perl 用 JIT があるのだが、これの仕組み。 op_entersub をフックするop_entersub にはいるタイミングで発動! op tree を C のコードに変換するcc するdynaloader でよみこむといった具合。基的には Shibuya.pm で発表済のだれでもしっているようなテクニックをつかっている。 これはだいたい 20% ぐらいはやくなるらしい。まあ妥当なかんじか。とはいえテストとおらないしまともにうごかないので、当かどうかはわからない。 結局 run_ops まわりの部分がインラインで最適化されるという点におけるメリットぐらいで、各 opcode の操作はそれぞれの中でやっているわけだから、納得できる数字かとおもう。ただ、実際にそのテストにつかったコードってのがないんで、

    TAKESAKO
    TAKESAKO 2010/02/04
    mlehmann の Faster.pm という Perl 用 JIT の仕組み
  • バイナリ解析講座/Backdoor.Hacarmy.D - Scientia

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 // 不明 0040300A PUSH EBP 0040300B MOV EBP,ESP 0040300D SUB ESP,42C 00403013 PUSH

    TAKESAKO
    TAKESAKO 2010/01/28
    バイナリ解析講座 / Backdoor.Hacarmy.D
  • 消費者金融地域ラボ

    TAKESAKO
    TAKESAKO 2010/01/07
    XbyakにMOVBEを組み込む
  • i7って? - VIPで自作PC @ Wiki

    2008年11月16日発売となったIntelの新CPU、Core i7。 「その速さ、ビッグバン。」というキャッチフレーズで全国のショップで大々的にアピールされているが、その性能はどれ程なのだろうか。 実はi7の演算ブロックはCore2のものをベースに改良したもので、劇的な変化はない。 それでもその性能は、最下位のi7 920でもCore2の最上位であるQX9770を凌ぐほど。 では,i7はCore2からどこが変化したのだろうか。 このページではCore i7の強化ポイントを紹介する。

    i7って? - VIPで自作PC @ Wiki
    TAKESAKO
    TAKESAKO 2009/12/28
    VIPで自作PC @ Wiki i7って?
  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

    TAKESAKO
    TAKESAKO 2009/12/28
    データ型のアラインメントとは何か,なぜ必要なのか?
  • Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム 2ページ | OSDN Magazine

    この処理時間の違いであるが、SSE4で新たに追加された、整数型の最大値を探索する「PMAXSD」という命令がその要因である。これは複数のint型変数の最大値を求める命令で、/QxSSE4.2オプション付きでコンパイルしたコードではこの命令が使用され処理の高速化が図られている。/QxSSSE3オプション付きでコンパイルした実行ファイルと、/QxSSE4.2オプション付きでコンパイルした実行ファイルについて、int型配列の探索を行っている部分のアセンブラコードを抜き出したものが次のリスト2およびリスト3だ。/QxSSSE3オプション付きの場合は「PCMPGTD」という、MMXに含まれる命令を使用して比較を行っているのに対し、/QxSSE4.2オプション付きの場合はPMAXSD命令を使用しており、アセンブラコードの行数も短くなっているのが確認できる。 リスト2 「/QxSSSE3」オプション付き

    Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム 2ページ | OSDN Magazine
    TAKESAKO
    TAKESAKO 2009/12/28
    Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム
  • http://pcjuornal.com/PCJ2/topics/Intel_i7.html

    TAKESAKO
    TAKESAKO 2009/12/28
    インテルCore i7プロセッサの詳細
  • 第2回 x86で簡単に仮想化ができないのはなぜ?(その1)

    個々の仮想化技術の説明に入る前に,まず仮想化技術が適用できるプロセッサの要件を明確にしていこう。以下では,汎用的な仮想化の要件について述べたうえで,現在最も広く使われているx86(IA-32)アーキテクチャを例に取り上げ,問題点を明らかにする。 すべてのセンシティブ命令が特権命令であることが要件 仮想化を実現するためにCPUアーキテクチャが満たすべき要件の研究は古く,IBM システム/360の時代から行われている。最も有名な論文としては1974年にCACM(Communications of the Association for Computing Machinery)に掲載されたGerald J. Popek氏とRobert P. Goldberg氏の“Formal Requirements for Virtualizable Third Generation Architecture

    第2回 x86で簡単に仮想化ができないのはなぜ?(その1)
    TAKESAKO
    TAKESAKO 2009/11/05
    x86で簡単に仮想化ができないのはなぜ?
  • JavaScriptでアセンブラ書いた - 葉っぱ日記

    JavaScriptでAjax風味な8086用のアセンブラを書きました。先日のまっちゃ139勉強会でLTが急きょ決まったので、発表直前まで書いていたのですがなんとか間に合いました。 Symbolic assembler demo <http://utf-8.jp/public/sas/> JavaScriptだけで書いていますので、ダウンロードさえすればオフラインでも快適なアセンブラ生活が送れます。 Ajax風味に仕上げてあるので、コードを書いたら即時アセンブルしてエラーも表示され、ついでに記号エンコードされるので、記号だけでできた16bit MS-DOS comファイルを誰でも簡単に作ることができます。 いまのところ、Hello, World を書く程度の命令( いくつかの mov と、int と db、nop )くらいしか命令はサポートしていませんが、オペコード、オペランドのパースまで

    JavaScriptでアセンブラ書いた - 葉っぱ日記
  • x86系CPUのネイティブコードを解析する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    x86系CPUのネイティブコードを解析する
    TAKESAKO
    TAKESAKO 2009/10/26
    x86系CPUのネイティブコードを解析する - ネイティブコード生成モジュールを作ってみよう
  • http://www.mozilla.gr.jp/ml/logs/moz-addon/300/327.html

    TAKESAKO
    TAKESAKO 2009/10/16
    のちの Secure Click である・・・ http://www.secureclick.jp/index_ja.html
  • KMC Staff Blog:gas のインテル構文

    2009年10月08日 gas のインテル構文 twitter で gas の構文は理解しにくいと hmori さんがつぶやいていたのを見て、意外と知られて無さそうなので書きます。 x86 と x86-64 において、gas と GCC が出力するアセンブリコードのデフォルト構文は AT&T 構文と呼ばれる UNIX アセンブラの伝統的な構文です。プログラミングの力を生み出すや、ふつうのコンパイラをつくろうなど、最初から一貫して AT&T 構文を元にアセンブリプログラミングを解説している書籍も無いことは無いのですが、確かにintel のマニュアルの構文とは引数の順番などが異なるので、慣れないと混乱の元になるのではないかと思います。 また、%レジスタや$即値などの独特のプリフィクスが大量に付くので、見た目が少しゴチャゴチャするようにも感じます。(movl などの b/w/l のように、デー

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy