"asm"と"__asm__"は、基本的には同じであるが、"__asm__"は使用している言語の予約語/関数等とぶつかる場合使用します。またはANSI C互換のコードをつくっている場合、"asm"キーワードが使用できなくなるので"__asm__"を使います。 /* keyword asm と同じ関数*/ function asm(void){ } /* asmが使用できないので__asm__を使用 */ function inline(){ __asm__("asm code"); }
x86 (IA-32) Assembly Language Intel 486 プロセッサ [注意] 本ページで扱っているのは 32bit OS上でGNUのgcc コンパイラを使った例です。 2005年ごろまではC コンパイラとして GNU プロジェクトの gcc が利用されることが一般的でしたが、 それ以降は LLVM の clang が使われることが多くなり、現在ではgccコマンドを起動しても 内部はclangであることが多くなっています。 そのため、本ページの例と、手元のシステムのgccの出力が異なる場合がありえます。 x86アセンブラ/GASでの文法 参考文献: はじめて読む486,蒲地輝尚 著,アスキー出版局,1994 Intel CPUの発展: 4004 → 8080 → 8086 → 80186 → 80286 → 80386 → 80486(i486) → Pentium
Binary Hacks は GNU/Linux & x86 メインですが、 それ以外だとどんな感じだろうってことを書くところです。 私が個人的にいじってるものですが、 他の人にいじってもらっても問題ありません、 というか知らないことだらけなのでありがたいです。 1. イントロダクション Binary Hack入門 Binary Hack用語の基礎知識 file でファイルの種類をチェックする od でバイナリファイルをダンプする 2. オブジェクトファイルHack ELF 入門 静的ライブラリと共有ライブラリ ldd で共有ライブラリの依存関係をチェックする readelf で ELF ファイルの情報を表示する objdump でオブジェクトファイルをダンプする objdump でオブジェクトファイルを逆アセンブルする objcopy で実行ファイルにデータを埋め込む nm でオブジェク
アセンブラで遊ぶ時に便利な ~/.gdbinit を紹介します。まず ~/.gdbinit を次のように記述してください。 # # ~/.gdbinit # # .so を shlib コマンドで手動で読み込む # set auto-solib-add 0 # スレッド生成時のSIG32でブレークしない handle SIG32 nostop # ニモニック構文の選択 # set disassembly-flavor intel set disassembly-flavor att # フラグレジスタの可読化関数 define pf printf "eflags: %s%s%s%s%s%s%s%s%s (= 0x%08u)\n",\ $eflags & 2048 ? "O":"-",\ $eflags & 1024 ? "D":"-",\ $eflags & 512 ? "I":"-",\
開発環境でのバイナリやデバッグバイナリではないもの、すなわち、 障害解析対象のプログラムは-gが付いていない(プロダクション用なら当然) というようなバイナリからとれたstacktraceを手がかりにsignal 11の位置を特定する方法について書きます。 (以前よりも少しやりかたを改善できたのでメモしておきます。もっと簡単にできる方法があればコメント下さい) 16進数のstacktraceを確認 まずエラーログを見る。mysqldの場合はエラーログにstacktraceを吐いてくれるので別にcoreファイルがなくても大丈夫。吐いてくれないプログラムの場合は"ulimit -c unlimited"でcoreを出すようにしておいてbtする。 こんな感じの16進数のstacktraceが取れる。 0x5c4ceb 0x6267de 0x626e63 ...hoge.logとでもしておく。 バ
「生涯一プログラマ」志望の中年プログラマ noocyte (ヌーサイト) です. 主にプログラミングやアルゴリズムの話題と,自作フリーソフトを扱っています. 自分で考案したことを中心として,なるべくここにしかない情報を書くようにしています. よそに書いてあることは,そこを見ればすむことなので, わざわざここで同じことを書く気力が湧きません. (私はズボラなので.) 自分で考案したアルゴリズムやデータ構造を中心に解説します. メモリ管理 アラインメントの大きなメモリ領域を確保する方法 アラインメントの大きなメモリ領域を用いて, 高速かつメモリ効率の良い多数の集合を実現する方法 幾何学・CG のアルゴリズム集 3点の座標から簡単に角度と回転方向を求める.(2・3・N次元,外積を用いる方法) 多角形の面積,重心(図心),断面N次モーメントの公式と,向き (頂点列の回転方向) の判別方法 (Win
作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。
Linux Zaurusでアセンブリプログラミング copyright (C) 2003 Jun Mizutani (mizutani.jun@nifty.ne.jp) はじめに PC Linux (i386 CPU) の Linuxでアセンブリプログラミングと同じように、 シャープのSLシリーズを使ったアセンブリプログラミングを解説していく予定です。 アセンブラは GNU binutils に入っている GNU as を使います。 binutilsのipkパッケージを用意しました。 Sharp Linux Zaurus には、ARM系のCPUであるインテル製の Intel(R) XScale(TM) を使用しています。 インテルのサイト に XScale に関するいろいろな文書が公開されていますが、ARMコアのアーキテクチャや命令セットに関する資料は 置いてないようです。アセンブリ言語
はじめに 今回は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に関するテクニックは出てきませんので、ご了承ください。
更新履歴 DNS拡張EDNS0の解析 Linuxカーネルをハッキングしてみよう Windowsシステムプログラミング Part 3 64ビット環境でのリバースエンジニアリング Windowsシステムプログラミング Part2 Windowsシステムプログラミング Part1 Contents インフォメーション 「TCP/IPの教科書」サポートページ 「アセンブリ言語の教科書」サポートページ 「ハッカー・プログラミング大全 攻撃編」サポートページ ブログ(はてな) BBS メール このサイトについて テキスト 暗号 詳解 RSA暗号化アルゴリズム 詳解 DES暗号化アルゴリズム crypt() アルゴリズム解析 MD5 メッセージダイジェストアルゴリズム crypt() アルゴリズム解析 (MD5バージョン) TCP/IP IP TCP UDP Header Format(IPv4) Ch
作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
このテキストは、2005年7月にデータハウスから出版された「アセンブリ言語の教科書」の原稿をWEB用に修正したものです。WEB用に修正したといっても、誤植を直した程度であり、ほぼそのままの状態で公開しています。 現在でも「アセンブリ言語の教科書」は書店で売られており、一般に流通しているため、本来ならば、出版社との契約上、このようにフリーでWEB上に公開することはできません。しかし、「アセンブリ言語の教科書」は、発売後すでに一年を過ぎようとしているにも関わらず、現在でも安定した売り上げを伸ばしており、当初の予想を超えて多くの方々に読んでいただけました。 よって、出版社に「本書の値段が高くて、読みたくても買えない学生の方々や、まだ本書の存在を知らない人たちのために、原稿の一部をWEB上にも公開できないだろうか」と、相談を持ちかけたところ、本書に関わった編集者からも「原稿のすべては無理だが一部分
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く