精華區beta Programming 關於我們 聯絡資訊
※ 引述《abcdefghi (蠍子)》之銘言: : 不同的CPU有不同的Assembly, 跟計算相關的部份 C 可以應付, : 和Address相關的部份用 C 配合 Link Editor 也可以處理, 不過 : 有些控制 CPU Status 的指令, 就只能用 Assembly 了, 例如 : 在Bootstrap的時候要把Register和Cache都設好, 或者在OS中的 : Critical Section也要把Interrupt關起來, 一般Boot Section : 只做一些簡單的工作, 用Assembly就好了, 如果真的想多做一點 : 事再配合一些C Function, 不過在load整個系統時, 一樣得用 : Assembly才行, 因為要jump到主系統時, 還是得控制CPU的Status. 就大多數 MCU 而言, 即使在這樣的場合下,C/C++ 也大都足以擔任 :) 因為對這些晚近的 MCU 而言, 讀取這些 register 跟讀取一般的 memory , 其使用的指令並無不同。 這就跟所謂的 memory-map I/O 類似, 整顆 MCU 的 I/O port, registers 等,都被看作記憶體般來存取... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.19.226