不知道能不能有一個適合我磨練的環境和機會?
一般而言, 組合語言比較適用於發展Firmware or BIOS的領域, Driver可能會用到一點, 目前有需求的廠商(Micro processor, Chipsets, PC Motherboard/system 的Designer/Manufacturer), 在這部分比較傾向找有經驗的, 完全不懂的也是有機會但是很少可能要看運氣。
最低限度會找了解組合語言的人進去後on job training。
想問您,為什組合語言大家都不敢去碰呢?
組合語言在語法上太接近機器語言, 而不像一般高階語言比較接近人類的數學敘述, 在學習、認知上會有比較多的挫折。
還有, 組合語言除了需要學習語法更需要了解CPU架構, 個人覺得最關鍵的是記憶體位址的觀念(尤其是Intel X86 CPU有所謂的 segment暫存器)以及其定址法的運用,
另外在存取IO裝置除了一般的IO位址還須了解index port/data port的觀念。
For details about the answer of your question, refer to the attached “Forward” of the book The Art of Assembly Language.
關於組合語言的語法與CPU(8051 or X86)的基本觀念可以參考市面上的一些書籍, 但若是想深入了解CPU architecture則須參考各家製造商的Data Sheet, 這部分很需要讀英文的功力;
這個URL可以找到並下載Intel X86 CPU的官方詳細資料: http://www.intel.com/design/pentium4/manuals/index_new.htm#sdm_vol1。
組合語言和硬體的那些方面有關呢?
所有可以被程式控制的硬體功能都可以由組合語言達成
可以直接存取CPU的各種 register, 控制CPU的各種功能, 讓CPU進入各種狀態
可以直接access記憶體的內容, 可以定址到任何位址
可以直接存取IO位址(大部分是一些IO裝置或是擴充卡內的 register or data buffer)
可以執行所有的CPU指令 (包括compiler不懂的指令)
能用在那些東西上面呢?
因為組合語言可以很輕易的控制到硬體-->用於撰寫成硬體啟始的控制程式 ,又 , 編譯連結後的執行碼所佔的空間比較小-->可以燒錄在空間並不是很大(相對於RAM or Disk)的ROM之內
所以傳統上用於發展PC的BIOS 或是一些微控制器系統的Firmware
Develop compiler or linker
Reverse-engineering.
On the bad side: viruses programming, security attacker,…
2008年12月14日 星期日
2008年12月9日 星期二
文章名稱:人間 失格 高樹少年之死 讀書會
--------------------------------------------------------------------------------
2008 12/9 婉宜分享心得
如果 發生再 進專資二甲
這事件將 不會發生
因為 我們有各英明的班代
因為 進專 資二甲的同學 優秀 又團結
所以 這事件 我相信絕對不會發生
說起當時事件
我認為 學生素質絕對是各很大的問題
再來 家長絕對也有問題
通常家長 都要了解 學生的特質
再來決定 是不是 需要轉學的打算
學生本身 也是有問題
當事情在一開始 錯誤時 就應該 告知家長
家長當時 應該就要報警處理
之後 家長就要有轉學的打算
這事件 我相信就不會發生了
且 發生當時
應該要封鎖 現場不可以破壞案發現場
才能讓警方 好辦案
2008 12/9 婉宜分享心得
如果 發生再 進專資二甲
這事件將 不會發生
因為 我們有各英明的班代
因為 進專 資二甲的同學 優秀 又團結
所以 這事件 我相信絕對不會發生
說起當時事件
我認為 學生素質絕對是各很大的問題
再來 家長絕對也有問題
通常家長 都要了解 學生的特質
再來決定 是不是 需要轉學的打算
學生本身 也是有問題
當事情在一開始 錯誤時 就應該 告知家長
家長當時 應該就要報警處理
之後 家長就要有轉學的打算
這事件 我相信就不會發生了
且 發生當時
應該要封鎖 現場不可以破壞案發現場
才能讓警方 好辦案
訂閱:
文章 (Atom)