"asm"と"__asm__"は、基本的には同じであるが、"__asm__"は使用している言語の予約語/関数等とぶつかる場合使用します。またはANSI C互換のコードをつくっている場合、"asm"キーワードが使用できなくなるので"__asm__"を使います。 /* keyword asm と同じ関数*/ function asm(void){ } /* asmが使用できないので__asm__を使用 */ function inline(){ __asm__("asm code"); }
目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。
2^20+HMA #4 #1 物理アドレスと仮想アドレスのビット数はCPUID命令のEAX=80000008hで得られる。 #2 ES,CS,SS,DSは0。FS,GSはセグメントディスクリプタまたはモデル固有レジスタで指定。 #3 x86では、ページサイズ拡張または物理アドレス拡張を有効にすると2^36になるが、AMD64のlegacyモードではそれぞれ2^40、2^52になる。 #4 リアルモードの特殊な状態を使うと、2^32になる。 各モードの区別は次のビットで行う。 legacyモードとlongモード: EFER(モデル固有レジスタC0000080h)のLMEビット compatibilityモードと64ビットモード: コードセグメントディスクリプタのLビット compatibilityモード中の16/32ビット: コードセグメントディスクリプタのDビット(legacyモードと同様
via Ajaxian JSASM は、ブラウザで動くJavascript製の x86 アセンブラだ。 これで、出先のネットカフェで突然x86のハンドアセンブルが必要になっても安心だ。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません
会社でカーネル勉強会を夕方やっていたので、ふらっと参加してみた。エライ人がでると自由な議論ができなくなるとか、若手がやりにくいとかいろいろ言われそうではあるが、楽しそうだから、そーゆー雑音は聞かなかったことにしてお話を聞く。セマフォがどうだとか共有メモリがどうだとかいう話をしていてプロジェクタにはsem.cだかなんだかのソースコードがうつされていたりする。 質疑応答で、「ところで、このasmlinkageってなんですか」というのが出る。ソースコード上、お馴染みなフレーズであるが、まあこんなものだろうということで深くは追求したことがなかった。 疑問はGoogleに聞け。 まづ、「asmlinkageとは」では、所望の回答はみつからない。*1 そこで、「asmlinkageというのは」で、検索したところ、 https://www.codeblog.org/blog/gniibe/2006022
アセンブラで遊ぶ時に便利な ~/.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":"-",\
今週のミス。 二度と繰り返さぬよう、記録に残しておく。 _ アライメント アセンブラで書いたテスト用データ。 .align 4 これを忘れたために、えらい目に…。 _ 浮動小数点レジスタを使い切る VU1 MicroMode プログラミングの話。 複数行列で頂点ブレンディングするコードを書いている時のこと。 何も考えずに、ループ開始前に行列をレジスタに読み出すコードを書いたら、 VCL に「レジスタ使い切った」と怒られる。 31 本しかレジスタ無いのに、 行列まとめて読み出せば不足するが道理。 そもそも VU1 MicroMode では ローカルメモリからデータを読み出す積和演算 は Upper/Lower で同時実行できるから、 焦ってレジスタに置いておく利点はない。 そこで、 ループ中で行列を順に読み出しつつ計算を行うように書き直して対応。 それにしても VU0 MacroMode の
日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。
GCCでインラインアセンブリを使用 する方法と留意点等 for x86 (1999〜2006年10回改訂、2006年1月22日注意を追加、最終更新日2006年5月27日) 文: A. SAITOH <s-akira at users.sourceforge.net> home ※システム名、CPU名は一般に開発会社の登録商標です。 以下の情報はあまり過度に信用しないで下さい。より正確な情報は、asやgccのinfoから得て下さい。 個々のプロセッサ命令の解説はここでは述べません。そのような技術資料は、インテルやAMDのウェブ サイトのdeveloper向けのページからpdf形式で入手できます。 以下の文及びプログラム例の運用結果に関して、筆者は一切責任を負いません。 参考文献 [0] D. Stancevic, K. Scheibler, J. Leto, Linux Assembly
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く