作者:luster
摘要:匯編代碼編寫程序是非常枯燥的,但是通常是程序的一些要害的部分. 你應該根據自己的任務選擇合適的開發(fā)工具,
4. MetaPRogramming
匯編代碼編寫程序是非常枯燥的,但是通常是程序的一些要害的部分. 你應該根據自己的任務選擇合適的開發(fā)工具, 假如不適合用匯編的場合最好還是別用, C, Ocaml, perl, Scheme, 都是其他可以選擇使用的好的開發(fā)工具. 但是, 某些場合這些開發(fā)工具可能不能提供足夠的對機器的控制能力, 此時, 匯編語言就可以發(fā)揮作用了.這些場合,你經常學要結合macroprocessing和metaprogramming. 純粹的匯編代碼通常是不夠用的, 你要把自己的代碼和C 語言代碼link起來.
External filters
無論你的匯編器支持怎么樣的宏,或者你使用什么樣的語言(例如C), 這種語言應該對于你來說是足夠清楚的,你可以在Makefile里面使用這樣的規(guī)則來用一些擴展的filters來過濾你的文件:
%.s: %.S other_dependencies $(FILTER) $(FILTER_OPTIONS) < $< > $@
Metaprogramming
不使用擴展的filter來展開這些宏,也可以寫一些程序來產生其他的程序的一部分或者全部.
例如,你可以使用程序來輸出一些源碼:
· 產生標準的數學函數sin/cos等數學函數值查找表.
· 將我們的bitmap圖片文件快速顯示的函數
· 用自己寫的perl/shell/scheme腳本來產生一些我們自己的特定的匯編代碼.
· 用程序來生產初始化和結束處理的代碼,對數據表的描述代碼等.
· 等等
待續(xù)。。。