回覆列表
-
1 # Affgcff
-
2 # 使用者1719278897726782
0ffffh作為無符號數是16位的最大值65535。在計數時通常作為計數的初值,這時是按帶符號數的補碼解釋的,也就是帶符號數的“-1”。此時,-1加1就會得到計數的初值0,這樣程式設計有很多方便之處。
-
3 # 虞姬返航
微控制器C語言中的codecode:程式儲存區。data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的程式碼也最小。idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指標方式訪問的。彙編中的語句為:mox ACC,@Rx.(不重要的補充:c中idata做指標式的訪問效果很好)xdata:外部擴充套件RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。pdata:外部擴充套件RAM的低256個位元組,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。
在真實模式下,定址採用和8086相同的16位段和偏移量,最大定址空間1MB,最大分段64KB,也就是說當偏移量大於FFFFH時,要將段地址加1,偏移量減去10000H,如果所得的偏移量仍然大於FFFFH時,再將段地址加1,偏移量減去10000H,直至偏移量小於等於FFFFH為止(即取其64K的模)