青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0
在我們的C/C++學習生涯中、在我們大腦的印象里,通常只有指針的概念,很少聽說指針還有遠、近、巨之分的,從沒聽說過什么近指針、遠指針和巨指針。
可以,某年某月的某一天,你突然看到這樣的語句:
char near *p; /*定義一個字符型“近”指針*/
char far *p; /*定義一個字符型“遠”指針*/
char huge *p; /*定義一個字符型“巨”指針*/
實在不知道語句中的“near”、“far”、“huge”是從哪里冒出來的,是個什么概念!本文試圖對此進行解答,解除許多人的困惑。
這一點首先要從8086處理器體系結(jié)構(gòu)和匯編淵源講起。大家知道,8086是一個16位處理器,它設(shè)定了四個段寄存器,專門用來保存段地址:CS(Code Segment):代碼段寄存器;DS(Data Segment):數(shù)據(jù)段寄存器;SS(Stack Segment):堆棧段寄存器;ES(Extra Segment):附加段寄存器。8086采用段式訪問,訪問本段(64K范圍內(nèi))的數(shù)據(jù)或指令時,不需要變更段地址(意味著段地址寄存器不需修改),而訪問本段范圍以外的數(shù)據(jù)或指令時,則需要變更段地址(意味著段地址寄存器需要修改)。
因此,在16位處理器環(huán)境下,如果訪問本段內(nèi)地址的值,用一個16位的指針(表示段內(nèi)偏移)就可以訪問到;而要訪問本段以外地址的值,則需要用16位的段內(nèi)偏移+16位的段地址,總共32位的指針。
這樣,我們就知道了遠、近指針的區(qū)別:
Ø 近指針是只能訪問本段、只包含本段偏移的、位寬為16位的指針;
Ø 遠指針是能訪問非本段、包含段偏移和段地址的、位寬為32位的指針。
近指針只能對64k字節(jié)數(shù)據(jù)段內(nèi)的地址進行存取,如:
char near *p;
p=(char near *)0xffff;
遠指針是32位指針,它表示段地址:偏移地址,遠指針可以進行跨段尋址,可以訪問整個內(nèi)存的地址。如定義遠程指針p指向0x1000段的0x2號地址,即1000:0002,則可寫作:
char far *p;
p=(char far *)0x10000002;
除了遠指針和近指針外,還有一個巨指針的概念。
和遠指針一樣,巨指針也是32位的指針,指針也表示為16位段:16位偏移,也可以尋址任何地址。它和遠指針的區(qū)別在于進行了規(guī)格化處理。遠指針沒有規(guī)格化,可能存在兩個遠指針實際指向同一個物理地址,但是它們的段地址和偏移地址不一樣,如23B0:0004和23A1:00F4都指向同一個物理地址23604!巨指針通過特定的例程保證:每次操作完成后其偏移量均小于10h,即只有最低4位有數(shù)值,其余數(shù)值都被進位到段地址上去了,這樣就可以避免Far指針在64K邊界時出乎意料的回繞的行為。當然,一次操作必須小于64K。下面的函數(shù)可以將遠指針轉(zhuǎn)換為巨指針:
void normalize(void far ** p)
{
  *p=(void far *)(((long)*p&0xffff000f)+(((long)*p&0x0000fff00<<12));
}
從上面的函數(shù)中我們再一次看到了指針之指針的使用,這個函數(shù)要修改指針的值,因此必須傳給它的指針的指針作為參數(shù)。
講到這里,筆者要強調(diào)的是:近指針、遠指針、巨指針是段尋址的16bit處理器的產(chǎn)物(如果處理器是16位的,但是不采用段尋址的話,也不存在近指針、遠指針、巨指針的概念),當前普通PC所使用的32bit處理器(80386以上)一般運行在保護模式下的,指針都是32位的,可平滑地址,已經(jīng)不分遠、近指針了。但是在嵌入式系統(tǒng)領(lǐng)域下,8086的處理器仍然有比較廣泛的市場,如AMD公司的AM186ED、AM186ER等處理器,開發(fā)這些系統(tǒng)的程序時,我們還是有必要弄清楚指針的尋址范圍。
如果讀者還想更透徹地理解本文講解的內(nèi)容,不妨再溫習一下微機原理、8086匯編,并參考C/C++高級編程書籍的相關(guān)內(nèi)容。
posted on 2008-07-23 16:27 chatler 閱讀(127) 評論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關(guān),覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美综合一区| 国产精品高清免费在线观看| 国内视频一区| 美女精品国产| 欧美精品一区二| 亚洲性色视频| 午夜一区二区三视频在线观看 | 国产精品99久久久久久有的能看| 欧美日韩国产经典色站一区二区三区| 一区二区三区你懂的| 亚洲一区二区三| 在线免费观看日本欧美| 亚洲人成网站影音先锋播放| 欧美婷婷在线| 六月天综合网| 欧美日韩四区| 蜜桃av一区| 欧美亚洲第一页| 蜜桃久久av一区| 欧美色中文字幕| 免费国产自线拍一欧美视频| 欧美日韩在线播放| 久久亚洲影院| 欧美视频在线观看免费| 另类春色校园亚洲| 国产精品扒开腿做爽爽爽视频 | 亚洲婷婷免费| 久久久综合香蕉尹人综合网| 国产精品99久久久久久人| 欧美一区永久视频免费观看| 夜夜嗨av一区二区三区| 久久久999精品视频| 亚洲欧美国产精品桃花| 欧美成人精品福利| 久久视频在线看| 国产精品欧美日韩一区| 亚洲毛片在线观看.| 伊人久久婷婷色综合98网| 亚洲一区二区少妇| 一本色道久久88综合日韩精品 | 国产一区二区三区在线观看精品| 亚洲精品一二区| 亚洲国产精品女人久久久| 午夜精品影院在线观看| 亚洲综合导航| 欧美精品一区三区| 亚洲高清av| 伊人婷婷欧美激情| 欧美在线视频一区二区| 先锋影院在线亚洲| 国产精品美女久久久| 99精品国产高清一区二区| 亚洲精品中文字幕有码专区| 久久免费黄色| 久久字幕精品一区| 好男人免费精品视频| 欧美一区二区三区在线播放| 欧美一级视频免费在线观看| 国产精品电影网站| 在线亚洲免费| 午夜在线成人av| 国产欧美综合在线| 欧美一级在线视频| 久久亚洲精品一区| …久久精品99久久香蕉国产| 久久香蕉国产线看观看网| 久久中文字幕一区| 亚洲国产一区二区三区a毛片| 噜噜噜在线观看免费视频日韩| 欧美a级片网站| 亚洲欧洲精品一区二区三区不卡| 免费在线欧美视频| 亚洲精品一区中文| 亚洲免费伊人电影在线观看av| 国产精品久久久久久久久久免费 | 欧美国产日韩一二三区| 亚洲人成在线播放网站岛国| 欧美日韩国产免费| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美综合激情网| 欧美黄色免费网站| 制服丝袜激情欧洲亚洲| 国产欧美日本在线| 久久中文字幕一区| 日韩小视频在线观看| 欧美一区二区三区的| 激情综合久久| 欧美日韩一区二区国产| 性高湖久久久久久久久| 亚洲第一天堂av| 亚洲欧美日韩精品在线| 在线播放中文一区| 欧美日韩国产123区| 小处雏高清一区二区三区| 欧美福利视频| 香蕉成人伊视频在线观看| 亚洲国产成人久久| 国产精品亚洲综合| 欧美mv日韩mv国产网站| 亚洲欧美日韩电影| 亚洲国产精品高清久久久| 欧美一区久久| 99视频热这里只有精品免费| 国产亚洲一区二区三区| 欧美精品v日韩精品v国产精品| 午夜亚洲视频| 欧美高清你懂得| 久久综合给合久久狠狠狠97色69| 99国产精品久久| 国内激情久久| 国产精品久久一卡二卡| 男女激情久久| 久久国产精品第一页 | 欧美一级视频免费在线观看| 亚洲激情在线激情| 国产综合网站| 国产精品一页| 欧美系列亚洲系列| 欧美黄在线观看| 久热爱精品视频线路一| 欧美一区二区精品在线| 亚洲一区二区免费在线| 日韩亚洲不卡在线| 亚洲欧洲在线观看| 欧美电影免费观看高清完整版| 欧美中文字幕久久| 亚洲欧美视频在线观看| 国产精品99久久久久久有的能看| 亚洲人成网站777色婷婷| 樱桃成人精品视频在线播放| 国产日韩精品一区二区三区| 国产精品国码视频| 欧美日韩在线播放一区| 欧美日韩综合精品| 欧美日韩三级电影在线| 欧美日韩国产不卡| 欧美日韩国产综合新一区| 欧美美女福利视频| 欧美精品在线免费| 欧美日韩精品在线播放| 欧美日韩视频一区二区| 欧美日韩综合一区| 国产精品久久久久久久久久三级 | 久久久久久亚洲精品中文字幕| 欧美专区第一页| 久久久精品免费视频| 久久久久**毛片大全| 久久精品卡一| 久久综合给合| 欧美精品久久一区二区| 欧美色中文字幕| 国产视频精品网| 亚洲大胆在线| 中文精品在线| 欧美在线一二三| 欧美aaa级| 日韩一本二本av| 亚洲欧美日韩国产一区| 欧美在线免费观看视频| 欧美成人资源| 国产精品视频大全| 亚洲电影下载| 国产精品99久久久久久久久| 欧美一区影院| 亚洲国产天堂久久综合网| 亚洲美女免费精品视频在线观看| 亚洲综合色丁香婷婷六月图片| 久久成人在线| 欧美日韩精品久久久| 国产欧美日韩精品在线| 亚洲福利视频网| 亚洲一区二区三区成人在线视频精品 | 亚洲美女区一区| 午夜视频一区在线观看| 欧美xart系列在线观看| 99视频精品| 久久久免费观看视频| 欧美三级在线| 亚洲大胆女人| 欧美一区二区三区电影在线观看| 女同性一区二区三区人了人一 | 在线亚洲欧美专区二区| 久久精品国产清高在天天线| 欧美日本成人| 黄色成人免费观看| 亚洲一区二区视频在线| 蜜臀av在线播放一区二区三区| 99综合精品| 欧美成人国产| 精品动漫3d一区二区三区| 亚洲免费视频观看| 亚洲成人在线免费| 欧美一区二区在线| 亚洲国产91色在线| 久久不射网站| 国产日韩亚洲欧美综合| 亚洲一区二区综合| 最新亚洲激情| 你懂的视频欧美| 伊人精品在线|