簡體   English   中英

完整的寄存器訪問含義

[英]Full register access meaning

我正在研究MSP430微控制器,並正在研究其體系結構。 在用戶指南的“功能”選項卡下,有這樣一條語句:“ 包括程序計數器(PC),狀態寄存器(SR)和堆棧指針(SP)在內的完全寄存器訪問 ”。 我給人的印象是,CPU始終可以訪問所有寄存器,而與體系結構無關。

我對聲明的理解可能是錯誤的。 誰能解釋我的確切含義?

根據Wikipedia頁面

處理器包含16個16位寄存器,其中4個專用於特殊目的:R0是程序計數器,R1是堆棧指針,R2是狀態寄存器,R3是稱為常量發生器的特殊寄存器,可用於訪問6個常用常數值,不需要其他操作數。 R3始終讀為0,並忽略寫入。 R4至R15可供一般使用。

換句話說,在這種情況下,“完全訪問”意味着不僅使用jmp -type指令能夠跳轉到新位置,而且還允許諸如xor r0, #1234類的東西直接(並且可能致命地)修改程序計數器。 。

R3之外,其他特殊寄存器也同上,常量生成器以及報價中未提及的四個中的唯一一個。 盡管所有指令都可以在該寄存器上操作 ,但它會忽略寫入操作 ,並在讀取時生成各種固定值( -1..2 ,使用R2還可以為您提供48 ),具體取決於所使用的尋址模式。


這似乎有些奇怪,但這並不是我見過的最奇怪的。 為此您必須研究RCA1802A CPU,它與MPS430一樣具有用於特定功能的“通用”寄存器,但實際上您可以在運行時選擇應該是程序計數器還是堆棧指針。 它實際上沒有任何callret指令,而是使用標准調用和返回技術(SCRT)效仿。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM