タグ

アセンブラに関するryochackのブックマーク (7)

  • アセンブリ言語のみで言語処理系を作った話 // Speaker Deck

    第11回 カーネル/VM 探検隊

    アセンブリ言語のみで言語処理系を作った話 // Speaker Deck
  • 機械語の勉強会に参加したので8086の逆アセンブラをGoで書いてみてる - As a Futurist...

    HHVM の話を聴いてからというもの、VM というものにどうにも興味がわいて仕方がない今日この頃。世の中の言語処理系も中身は VM だったりするわけで、そもそも VM ってどうやって作るのかな − とか考えてたら @riywo PDP-11のVM作って、Unix V6動かせば、一石何鳥になることやら — sakamoto.kazuki (@splhack) October 1, 2014 というご意見をもらって、初めて PDP-11 というものを調べ始めました。UNIX V6とかを買って読み始めてみたり、言語処理系の作り方のにも手をだしてみました。 PDP-11/UNIX V6 の勉強会があった そんな中、@7shiさんが主催されている「池袋バイナリ勉強会」の存在を知りました。なんと、ついこの間まで PDP-11 の逆アセンブラ(機械語のバイナリからアセンブリ言語を出力する)を作っ

    機械語の勉強会に参加したので8086の逆アセンブラをGoで書いてみてる - As a Futurist...
  • 熱血! アセンブラ入門 - 秀和システム あなたの学びをサポート!

    コンピュータとプログラミングを愛するすべての人に捧げるアセンブラ入門。700ページ以上にわたり、40種類のアセンブラを読み説きながら、アセンブラが現役であり続ける理由を考察します。アセンブラを読みはじめるのに、CPUの仕様書や、英語力なんて必要ないのです。研究者がこだわる「わかる喜び」、エンジニアがこだわる「動く喜び」を追い求める「熱意」こそが大切です。書を片手にオンリーワン・エンジニアを目指しましょう。 【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4180.html 第1部 基礎編:まずはアセンブラに慣れよう 01 まずは基操作を覚えて,アセンブラに慣れよう! 01.01 アセンブラを見てみよう 01.01.01 3つの関数だけを見てみる 01.01.02 まずは,目的を意識して読んでみよう 01.01.03 ア

    熱血! アセンブラ入門 - 秀和システム あなたの学びをサポート!
    ryochack
    ryochack 2014/09/26
    おお、フィーリングで読むアセンブラ入門が名前を買えて発売かな。これは熱い!
  • iPhoneでインラインアセンブラを使う(資料編) - 強火で進め

    iPhoneでインラインアセンブラ(C言語の途中にアセンブラの記述を埋め込んだもの)について調べて最近になってやっと画像のグレースケール化のプログラムの作成に成功しました。 当初はマニアックすぎて需要が無いだろうと思ってエントリーを書く予定は無かったんですが意外と要望が有ったので書いときます。 ちょっと量が多いので「資料編」「プログラム編」に分けて記載する事にします。とりあえず、「資料編」から始めます。 iPhoneではPCで有名なIntelのCPUではなく、組み込みで有名なARMというCPUが搭載されています。 そのためアセンブラの資料を調べるときにはARMアセンブラ、もしくはARM CPUについて解説してある資料を探す事になります。 取りあえずの入門的、知識を身につけるためにおすすめ シャープのZaurusでのARMアセンブラの使い方について。 日語で丁寧な解説、シンプルなサンプルの

    iPhoneでインラインアセンブラを使う(資料編) - 強火で進め
  • gccのアセンブル出力を解析する時は-gオプションが便利

    アセンブラの勉強のために、gccで-Sオプションを使用してC言語のコードからアセンブラのコードを出力していたのですが、ソースコード中の何行目がどの出力に対応するのか分かり辛く、苦労していました。 もちろん注意深く読めば対応は分かるのですが、質的でないところに時間が取られてしまい、来の解析が出来なくなってしまうので非効率です。 と思ってたのですが、コンパイル時に-gオプションをつけ、デバッグ情報を付与させると、ソースとアセンブリの対応が出力される事に最近気づきました。 以下、試してみた結果です。 こちらがテストに使ったコード #include<stdio.h> int main() { int a; int b; int c; a = 2; b = 5; c = a + b; printf( "%d\n", c ); } .file "test10.c" .section .rodata

    gccのアセンブル出力を解析する時は-gオプションが便利
  • 任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた - syuu1228's blog

    このブログエントリはカーネル/VM Advent Calendar 2013 25日目の記事です。 前回、カーネル/VM探検隊で「バインディングさえあればスクリプト言語でもゲストOSローダを実装出来る」という話をちらっとしました(資料)。 今回の記事では、ゲストOSローダではなくてもっと実験的な、簡単なアセンブリコードをRubyスクリプトからハイパーバイザへ投入する仕組みを実装したのでこれを紹介します。 ruby-virtualmachine ruby-virtualmachineというgemを作成しました。 これを用いて、任意のアセンブリコードをアセンブル・ロード・VM上で実行、までの一連の処理をわずかな行数のRubyスクリプトで行えます。 インストール BHyVeが正常動作するFreeBSD 10.0以降の環境が必要です。 インストールコマンドは以下の通りになります。 $ gem in

    任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた - syuu1228's blog
  • X86アセンブラ/GASでの文法 - Wikibooks

    はじめに[編集] GAS(GNU Assembler)は、GNUプロジェクトによって開発されたアセンブラであり、GNU Binutilsの一部として配布されています。Binutilsには、アセンブラ(GAS)、リンカー(ld)、およびオブジェクトファイル操作ツール(nm、objdump、sizeなど)が含まれています。 GASは、x86、ARM、PowerPC、MIPSなど、多くのアーキテクチャをサポートしています。GASは、AT&T構文とIntel構文の両方をサポートしていますが、AT&T構文がデフォルトです。 一方、GCCは、GNU Compiler Collectionの略で、C、C ++、Objective-C、Fortran、Ada、およびその他の言語のコンパイラとして使用されます。GCCは、オブジェクトファイルを生成するためにGASを使用することができますが、GASに依存しない

  • 1