タグ

x86に関するgfxのブックマーク (7)

  • JavaScript で x86 アセンブラ (32 bit) を書いてみた - moriyoshiの日記

    4/22追記: Mach-O builder も実装したので Intel Mac でも遊べる。 JQuery っぽい文法で、ブックマークレットとして簡単に遊べるアセンブラが欲しいと思って勢いで書いてみた (デモ)。とりあえず以下のサンプルが動くくらいにしか実装してない。 var buf = new Buffer(); with (new Assembler(buf)) { call($('get_addr')); $$('get_addr'); pop(ecx); add($('str - get_addr'), ecx); mov($('sizeof(str)'), edx); xor(ebx, ebx); mov(4, eax); // write(2) int(0x80); mov(1, eax); int(0x80); // _exit(2) $$('str'); $string(

    JavaScript で x86 アセンブラ (32 bit) を書いてみた - moriyoshiの日記
  • http://atnd.org/events/25823

    http://atnd.org/events/25823
    gfx
    gfx 2012/03/12
  • With Unz- an Advanced Optimization for x86-CPU -

  • JavascriptによるPCエミュレーター

    Javascript PC Emulator Javascript PC Emulator - Technical Notes これは、QEMU作者による、Javascriptで書かれたPCエミュレーターである。その上で、Linuxカーネルを動かしている。どうも、Chrome 12では、バグにより動かないようだ。Firefox 4なら問題なく動く。にわかに信じがたい。 技術メモを読むとわかるが、これはかなり限定的なエミューレションである。しかし、Linuxカーネルを動かすには十分である。 エミュレートしているのは、主に以下のチップである。 a 32 bit x86 compatible CPU a 8259 Programmble Interrupt Controller a 8254 Programmble Interrupt Timer a 16450 UART. エミュレートされてい

  • max, min 関数の最適化と x86 の cmov 命令 - yuyarinの日記

    max 関数や min 関数は C 言語だと自分で書かないといけないので int max(int a, int b) { return a>b?a:b; } などと書いたりするのだが,比較を行っているので分岐が発生するから遅くなると思い,これって当に速いのかと思って調べてみた. 実験 以下の5つのコードを用意した.これらをそれぞれ max 関数の実装とした.検証用のコードは最後に載せる.PHP でランダムな2数値を作ったデータを 1,000,000 組用意し,入力データとして配列に読み込んだあと,ループで max 関数を実行した.このループの前後で gettimeofday で時間を測り,所要時間を算出した.それぞれの実装に対し所要時間の5回の平均をとって比較した.コードは gcc version 4.2.1 (Apple Inc. build 5664) でオプション無しでコンパイルし

    max, min 関数の最適化と x86 の cmov 命令 - yuyarinの日記
    gfx
    gfx 2010/11/24
    if文と三項演算子で出力されるマシンコードが変わるの!?
  • 第16回 64ビット化への遠い道程[その1] | gihyo.jp

    一方、ロングモードに入るとアドレス長が64ビットに拡張され、新たに追加された64ビットの汎用レジスタも使えるようになります。また、ロングモードの中には32ビットのバイナリを動かす互換モードも用意され、このモードを使えば既存の32ビットのバイナリもそのまま動かすことができるようになっています。 こう書けばいいことづくめのように聞こえますが、そもそもロングモードに入るためにはカーネル自体がx86-64用にコンパイルされて、x86-64のロングモードのことを知っていなければいけませんし、カーネルをx86-64用にコンパイルするためには、コンパイラやアセンブラがx86-64用に拡張されたコマンド(オペコード)を生成できる必要があります。すなわちx86-64 CPUの新機能を利用するには、まずx86-64用の開発環境を用意する必要があるわけです。 x86-64用開発環境の選択 x86-64用の開発環

    第16回 64ビット化への遠い道程[その1] | gihyo.jp
    gfx
    gfx 2010/11/17
  • Inline::x86でPerlの中に直接機械語を書く - JPerl Advent Calendar 2009

    Inline::x86でPerlの中に直接機械語を書く - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 前置き こんにちは、id:TAKESAKOです。最近コロプラにハマるようになってきて近郊遠方の国内出張が楽しくなりました。JPerl Advent Calendar 2009 Hacker Trackも9日目ですね。そろそろPerlのソースを読むだけでは飽き足らずx86の機械語を書きたくなってきたんじゃないでしょうか。そんなわけで、今日は稚拙のInline::x86を紹介します。 題 皆さんの中にはよくx86を書く方もいらっしゃると思いますが、x86機械語を含むコードインジェクションは実行環境の設定が結構大変ですよね。Linuxのシステムコールmprotectを呼び出して実行ビットを追加で指定した

    gfx
    gfx 2009/12/10
  • 1