Drkcore

18 03 2009 lisp as Tweet

Common Lispでdisassemble

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

プログラミングの力を生み出す本を読んだので、アセンブラもちょっとは楽しくなってきた。

で、この本の後ろのほうの章(マルチスレッドとか)が気になっているんだけど、ちと高い。

ProductName Cとアセンブリ言語で学ぶ計算機プログラミングの基礎概念 - プログラムはプロセッサ上でどのように実行されるのか
角川 裕次
森北出版 / ¥ 5,040 ()
在庫あり。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021