2012年9月2日 星期日

Assembly 第一課

Assembly Language處理型態是一連串的暫存器相互將值傳遞、堆疊並加上符號指令組合而成的程式,而這些核心"容器"肩負著完成任務的重要工作,所以學習該語言就要從了解各式暫存器下手嘍cs、DS、SS分別為程式、資料與堆疊等區段定位用。

AX、BX、CX與DX等又作為累加器、作為索引以延伸定址、計算與特殊計算用,其次32位元則用EAX、EBX、ECX與EDX。

SI、DI、ESI、EDI又分別為16位元與32位元的索引暫存器,用以延伸地址並可用來加減及處理字元用。

還有OF、DF、IF、TF、SF、ZF、AF、PF、CF等旗標暫存器。

光看這些就有些眼花撩亂了,還有上百個符號指令集要搭配和運用,再經由Complier與Link後方能成為我們所熟悉的可執行檔了,不過現今的組合語言這種低階語言已不再討喜了,並且早已被Java或C++等高階語言所取代了。

我之所堅持無非是"好奇心"與"為什麼"使然,是否曾想過當你移動滑鼠點複製、貼上等指令時,有沒有想過它的背後是如何運作的,它為什麼會完成我們想要的工作,為什麼會這樣,為什麼??是的,組合語言它有助於我解開與探詢為什麼,雖然它非常的枯燥與艱澀,但是為了瞭解"為什麼"所以我慢慢走進了Assembly Language的世界,只為解開心中的迷惑。

沒有留言:

張貼留言