2009/03/18 23:07:36
common lispのdisassembleを使うとアセンブラっぽく出力できる。
* (defun add1 (a) (+ a 1))
ADD1
* (disassemble 'add1)
; disassembly for ADD1
; 119CBD7A: 8B55F4 MOV EDX, [EBP-12] ; no-arg-parsing entry point
; 7D: BF04000000 MOV EDI, 4
; 82: E8B94363F2 CALL #x4000140 ; GENERIC-+
; 87: 7302 JNB L0
; 89: 8BE3 MOV ESP, EBX
; 8B: L0: 8D65F8 LEA ESP, [EBP-8]
; 8E: F8 CLC
; 8F: 8B6DFC MOV EBP, [EBP-4]
; 92: C20400 RET 4
; 95: 0F0B0A BREAK 10 ; error trap
; 98: 02 BYTE #X02
; 99: 18 BYTE #X18 ; INVALID-ARG-COUNT-ERROR
; 9A: 4D BYTE #X4D ; ECX
NIL
プログラミングの力を生み出す本を読んだので、アセンブラもちょっとは楽しくなってきた。
で、この本の後ろのほうの章(マルチスレッドとか)が気になっているんだけど、ちと高い。
2009/02/27 22:13:26
アセンブラの本で、最近OS自作入門を読んでいるので非常に気になった。
改訂版じゃなければ1円だった。
買いですよ奥さん!みたいなオーラが漂ってたので即買い。
来たらそのうち読む。
2007/03/17 22:57:25
順調にprog_actionscript30.pdfを読み進めてきて、ただいま第三部のFlash Playerの仕組みのとこ。
で、イベントフローがいまいち掴めん。
と思って調べてみたら、イベントフローをわかりやすく説明してあるエントリみつけた。
要するにイベントを木構造で表現すんのか。なるほど。
概念上、イベントフローは 3 つの部分に分けられます。
第 1 の部分はキャプチャ段階と呼ばれ、ステージからターゲットノードの親までのノードすべてがこれに含まれます。
第 2 の部分はターゲット段階と呼ばれ、ターゲットノードだけがこれに含まれます。
第 3 の部分はバブリング段階と呼ばれ、ターゲットノードの親からステージまでの帰り道を構成するすべてのノードがこれに含まれます。
バブリング段階とかは、継承関係のコンストラクタみたいなイメージでいろいろやれそうなことがわかるんだけど、キャプチャ段階って実際のところどういう処理が入る可能性があるんだろうか。