2017-02-19 59 views
-4

atmega32是8位還是16位?iam真的很困惑。
雖然我在閱讀mazidii avr。
他說atmega32的ramend是0x085f。
這是16位,需要幫助。
從書中鏈接一個剪輯。 enter image description hereatmega32是8位還是16位?

+2

這是一個8位的CPU。你引用的「推薦」價值是無關緊要的。 http://www.atmel.com/devices/atmega32.aspx –

+0

我想你錯過了這個代碼是atmega32代碼來設置堆棧指針。 –

+0

他使用一個16位地址 –

回答

2

cpu是8位,因爲通用寄存器是8位寄存器。

有一些16位寄存器,例如堆棧指針SP和程序計數器PC。但是它們必須更大,因爲地址空間長度超過了256個字節。

我們仍然說cpu是8位的,因爲通用寄存器執行8位操作。

+0

你的意思是這段代碼是正確的。有一些16位的寄存器雖然微控制器是8位的 –

+0

是的,並且可以是比16位更大的寄存器。一些AVR器件具有如此多的閃存程序存儲器,以至於PC中的16位不足以解決所有這些問題,所以除了HI和LO之外還有一個擴展部分。但是一般來說,當人們說「寄存器」時,它們是指數學運算中使用的通用寄存器。從技術上講,SP,PC和STATUS也是寄存器,但這些不是我們正在討論的寄存器。 – UncleO

+0

另外,還有一些16位通用寄存器,X,Y和Z.但實際上這些寄存器只是8位寄存器對的名稱,而不是它們自己的獨立16位寄存器。它們通常用於基於地址的說明。 – UncleO