讀書報告:計算機是怎樣跑起來的
第三章:體驗一次手工彙編
最近花费有点多,令我有点紧张收入。帮人做的一个SMS群发功能,對方也不清楚是怎樣一個情況過了十天也沒打錢。在上學的空閒有時會在一間零食網店的公司做一名IT support,賺取一點點生活費,最近他們想自己打造一套網店系統,我卻不敢很肯定的答應他們,主要原因還是因為收費上面,我不清楚他們預算是多少,我還是不敢妄下決定。
言回書上面,彙編語言我想從事過IT行業或多或少聽說過,在了解彙編和機器語言總會幫助我們更加的理解第三代電腦語言(C,Java)。
機器語言:
- 只用0和1兩個二進制數書寫的編程語言 e.g 01010011
- CPU的種類不同,對二進制的解釋亦不同
- 機器語言也叫做原生代碼(Native Code)
彙編語言:
- 機器語言中,全是0和1的組合,每個組合都是有特定的含義。But 01011100的組合很難令人理解和判斷當中的含義
- So, 根據指令的功能賦予0和1的組合賦予相似暱稱-》助記符 -》 彙編語言
- 使用十進制或十六進制
- 語法:把標籤,操作碼,操作數並排一行
標籤 為該行代碼對應的內存地址起一個名稱
操作碼 表示“做什麼”的指令
操作數 指令執行的對象
標籤 | 操作碼 | 操作數 |
LD | A,207 | |
OUT | (2),A | |
LOOP: | IN | A,(0) |
OUT | (1),A | |
JP | LOOP |
CPU的寄存器結構:
- 寄存器是CPU內部儲存數據的地方,它不止能儲存還能運算數據。
- 寄存器的類型:
累加器-》運算的核心
標誌寄存器-》存儲運算結果的狀態
程序指針-》儲存著指向CPU下一步要執行的指令地址
棧頂指針-》用於在內存中創建出一塊成為“棧”的臨時數據存儲區域。
想起第一次看見機器語言和彙編語言的時候是在反編譯程序中。當初反編譯程序的時候,就會出現一大串很難讀懂的數據和指令混合體,仿佛在茫茫大海中尋找那一顆燦爛的珍珠,十分的痛苦。但是如果你喜歡破解程序,特別是打遊戲的時候開掛,我想這個你總會接觸的。
在CPU寄存器中,令我回想起中學學習CPU運作時,看著數據和指令如何在CPU中傳遞和執行,CPU運作我認為文字確實很難解釋,如果看視頻的話就相對容易理解。若能感受到計算機底層的工作方式,在學習當代的新技術時也會變的相對比較容易理解。