在C語言中怎麼把八位暫存器改到16位暫存器?火山口2021-06-18 00:54:53

什麼是暫存器?樓主所說的暫存器指的是什麼?

1、暫存器指的可以是特殊功能暫存器。

特殊功能暫存器,在某些晶片上簡稱SFR。

透過對SFR的各種操作,可以讓晶片實現某些特定的功能。SFR的規格通常是由硬體功能決定的,比如某個16位的時鐘計數暫存器,那就必須是16位的,你要只讀取它的8位也可以,但那需要你增加一些步驟,做個掩碼就好。再比如某個暫存器是8位的,你非要把它當16位來用?要麼你換個晶片,要麼你開心就好!反正正常來說,那是不可能的!

2、暫存器也可能指的是晶片的一級快取

比如51系列的Rx暫存器,ARM系列的Rx暫存器等等。這類暫存器,不具備特殊功能,你可以把它當做一段記憶體空間來使用,速度超級快,至少要比普通的RAM要快一些!在ARM系列中,你還可以用Rx暫存器來直接完成各種指令。如果題主說的是這類暫存器,那麼每個Rx的規格其實都是固定的,往往就是該晶片的位寬。

比如51裡面的R0就是一個位元組,你要想同時使用兩個位元組,把R0和R1連起來用,抱歉,8位晶片本身就不支援16位資料的運算指令。要不他怎麼叫8位晶片呢!51系列只有在乘法和加法指令下,才有可能允許出現16位的計算結果,而且這個結果是直接寫入累加器的,根本就不會去到Rx裡面。你要直接用兩個16位資料來計算的話,晶片表示做不到!所以,你想把Rx暫存器從8位改成16的企圖,令人有些不安,,,不知道你想幹啥!就像有人在頭條提問,請問如何讓我的共享單車拉一噸貨?

所以,題主所說的暫存器,到底是指什麼?題主你到底想幹啥?

在C語言中怎麼把八位暫存器改到16位暫存器?五蜂上人2021-06-17 18:27:40

用木工的錘子和斧頭肯定不行,估計,只能用光刻機了,這個還得把西皮油先火化了!

在C語言中怎麼把八位暫存器改到16位暫存器?王海濤的號2021-06-18 13:38:24

uin8_t a

uin16_t b

a+b[我想靜靜][我想靜靜][我想靜靜]