CPU 字長與儲存器位寬不一致處理

2022-02-09 04:33:06 字數 920 閱讀 6648

80186 的字長為16,而nvram

的位寬為8,在這種情況下,我們需要為nvram 提供讀寫位元組、字的介面,如下:

1 typedef unsigned char

byte;

2 typedef unsigned int

word;3/*

函式功能:讀nvram 中位元組45

* 返回:讀取到的位元組值6*/

7extern

byte readbytenvram(word woffset)812

/*函式功能:讀nvram 中字

1314

* 返回:讀取到的字

15*/

16extern

word readwordnvram(word woffset)

1728

/*函式功能:向nvram 中寫乙個位元組

2930

* bydata,欲寫入的位元組

31*/

32extern

void

writebytenvram(word woffset, byte bydata)

3336

/*函式功能:向nvram 中寫乙個字

*/37 *引數:woffset,寫入位置相對nvram 基位址的偏移

38 *wdata,欲寫入的字

39 */

40extern

void

writewordnvram(word woffset, word wdata)

41

子貢問曰:why 偏移要乘以2?

子曰:請看圖1,16 位80186 與8 位nvram 之間互連只能以位址線a1 對其a0,cpu

本身的a0 與nvram 不連線。因此,nvram 的位址只能是偶數字址,故每次以0x10 為

單位前進!

linux時間與Windows時間不一致的解決

一 首先要弄清幾個概念 1.系統時間 與 硬體時間 12 01 19 07 date 2009年 12月 07日 星期一 14 22 20cst 12 0119 07 date u 2009年 12月 07日 星期一 06 22 22utc 2.硬體時間 sbin hwclock 直接呼叫 sbin...

docker容器時間與宿主機不一致

使用docker拉去mysql映象並啟動容器,發現容器時間與宿主機不一致。而宿主機是網路時間。第乙個想法是進入容器修改容器時間。但是發現從官方拉取下來的映象啟動的容器很多命令是沒有的。其中就包括修改時間的clock命令。無奈之下,只好問度娘。度娘的解決方案有兩種,一 修改dockerfile。但這種...

docker 系統時區與jvm時區不一致

linux centos 7.5 docker 18.06 最近做了乙個功能,要求資料庫中的時間和系統時間存在很小誤差才能使用,部署上伺服器時出現了很大時差,計算下來剛好8個小時,然後去看log發現log4j打出來的時間不是東八區。修改系統時區,執行 cp usr share zoneinfo as...