Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel
このテキストは、2005年7月にデータハウスから出版された「アセンブリ言語の教科書」の原稿をWEB用に修正したものです。WEB用に修正したといっても、誤植を直した程度であり、ほぼそのままの状態で公開しています。 現在でも「アセンブリ言語の教科書」は書店で売られており、一般に流通しているため、本来ならば、出版社との契約上、このようにフリーでWEB上に公開することはできません。しかし、「アセンブリ言語の教科書」は、発売後すでに一年を過ぎようとしているにも関わらず、現在でも安定した売り上げを伸ばしており、当初の予想を超えて多くの方々に読んでいただけました。 よって、出版社に「本書の値段が高くて、読みたくても買えない学生の方々や、まだ本書の存在を知らない人たちのために、原稿の一部をWEB上にも公開できないだろうか」と、相談を持ちかけたところ、本書に関わった編集者からも「原稿のすべては無理だが一部分
はじめに 本稿では、Microsoft Visual C++のインラインアセンブラを用いて、アセンブリ言語の基本的な命令セットを学習します。本来のアセンブリ言語は、単純にアセンブリ言語の文法を覚えるだけでは使うことができず、CPUが内部で何を行っているのかや、メモリアドレスに関連した高度な知識が必要になります。しかし、インラインアセンブラであれば、多くのプログラマが使い慣れているC言語の内部にアセンブリ言語を埋め込むことができるので、スムーズにアセンブリ言語の学習ができます。インラインアセンブラであればメモリアドレスの計算などが不要で、C言語で宣言された変数などの識別子をそのまま利用することができるのです。アセンブリ言語初心者が、アセンブリ言語の学習を開始するのに非常に適しているでしょう。 インラインアセンブラの基本については、前稿『インラインアセンブラによるアセンブリプログラミング体験』
はじめに アセンブリ言語は、コンピュータのCPUが直接理解することができる命令である機械語を記号化した言語であり、機械語と対の関係にあります。アセンブリ言語の1文は1つの機械語に置き換わります。機械語は2進数だけで構成されるバイナリデータで、命令の意味を表すオペコードと呼ばれる値でCPUに指示を出しています。人間が直接機械語を読み書きする場合は、16進数を使うのが一般的です。どちらにしても、数値だけで表現されるプログラミングは人間が読み書きするには不向きなので、数値の代わりにアルファベットによる記号を与えたものがアセンブリ言語なのです。マシン後に対応したアセンブリ言語の記号のことをニーモニックと呼びます。 しかし、ニーモニックを学習するだけではアセンブリ言語は使えません。問題は、CPUがメモリと通信を行う際に発生するさまざまなアドレスの計算です。機械語の世界では変数や関数という概念は存在せ
フラグレジスタの内容 前回に引き続き、今回は条件付ジャンプを説明します 条件付ジャンプには、これまで何度が簡単に説明をした「フラグレジスタ」を用います 条件付ジャンプにはJump if Condition Is Metと呼ばれる命令セットを使います これは、数多くのフラグの状態を調べるジャンプ命令がサポートされているので より詳しく知りたいのならば、IntelのWebページからPDFファイルをDLしてください フラグレジスタは16ビットの一つのレジスタで構成され それぞれ1ビットずつに意味のあるフラグが存在しています 全てのフラグは1ビットで表現され、0か1かでその状態を表します フラグレジスタ名前意味ONOFF OF
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く