30 8月 2012

[Code::Blocks] Compile Code::Blocks source code in Windows

Code::Blocks是一款出色的跨平台IDE,是用跨平台的語言wxWidgets所寫的,由於wxWidgets並不像Java一樣,有Virtual Machine,是可以build成原生的執行檔執行的,所以執行的速度會快很多。由於最近想寫看看Code::Blocks的PlugIn,所以就試著build CB的source code看看,用CB來build CB倒是挺有趣的。

23 8月 2012

[VisualStudio] Generate Assembly result file

VisualStudio在compile檔案過後,預設是不會產生assembly file的,但是有時候會想看看compile過後assembly code長怎麼樣,當project的Optimization有enabled的話,一樣的code在不同的Optimization level會有不一樣的結果,這就是VC對code優化處理。

要打開assember output的話,先進入Project Property Page(在project上點右鍵,選propertys)
以VS2008為例,在 Configuration Properties | C/C++ | Output Files
選擇 Assembler Output ,有一些選項可以選

  • Assembly-Only   (輸出.asm檔)
  • Assembly, Machine Code and Source (輸出.cod檔)
  • Assembly With Machine Code  (輸出.cod檔)
  • Assembly With Source Code  (輸出.asm檔)
可以選擇最詳細的Assembly, Machine Code and Source來看



最後就可以在指定的輸出路徑(ASM List Location)裡,找到各個檔案的*.asm or *.cod,打開來就可以研究一下裡面的assembly code了~

更多詳細的設定介紹 - MSDN - /Fa /FA