回覆列表
  • 1 # 使用者8479742503181

    有一天你發明了一個新核心的cpu,沒有現成的編譯器,你該如何寫第一行程式碼呢?首先,在定義這個核心的時候,應該已經想好了一套指令集。並且在文件中為這套指令集的每一條指令定義好了機器碼。然後你用這套指令集在記事本中寫下了mov r1, 1;想放到cpu中測試是否能使r1暫存器變為1。但是沒有彙編器你沒法轉換為機器碼,所以你對照著文件手工把這條彙編指令轉換成了機器碼。把這段機器碼放到一個檔案中然後燒錄到rom中,你的cpu運行了第一條指令。但是不能每次手工轉多費勁,所以你決定用機器碼做一個能轉換少數核心彙編指令的一段小程式,之後你可以用這套核心彙編指令寫很長一段程式碼去把其他複雜的彙編指令轉換為機器碼。終於所有彙編指令都能成功透過自己寫的程式碼轉換為機器碼之後,你擁有了一個真正的彙編器。後來你覺得用匯編寫的太慢,打算試試c,然後你寫下了a=1+2;但是你沒有c編譯器啊,所以你又不得不手工把這段程式碼轉換成彙編。想想之前的過程,你決定用匯編寫一段程式碼解析c,隨著這個程式的完善,你擁有了用匯編寫的第一個c編譯器。這編譯器用了幾年,c18釋出了,所以你用老的c語言為c18寫了一套編譯器。後來你想自己做套新語言,定義好規範後,可以用c語言來為這個新語言寫編譯器。大概就是這個意思。

  • 中秋節和大豐收的關聯?
  • 拳皇14ps4出招表?