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

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>
            亚洲欧美三级伦理| 国一区二区在线观看| 亚洲字幕一区二区| 欧美日韩三级在线| 欧美激情中文字幕一区二区| 欧美高清不卡在线| 欧美精品久久久久久| 欧美日韩八区| 国产精品一区一区| 一区二区在线视频| 日韩午夜免费视频| 亚洲欧美视频在线观看视频| 午夜电影亚洲| 欧美a级一区二区| 亚洲欧洲精品一区| 亚洲精品国产拍免费91在线| 一本色道久久88精品综合| 亚洲理伦在线| 欧美一级成年大片在线观看| 久久久久久一区二区| 欧美电影免费观看高清完整版| 欧美另类69精品久久久久9999| 国产精品午夜av在线| 激情久久一区| 亚洲欧美99| 亚洲大片av| 欧美在线一二三| 国产精品av一区二区| 怡红院精品视频| 亚洲欧美中日韩| 亚洲国产天堂久久综合| 亚洲欧美日韩在线| 欧美日韩视频在线一区二区| 国模私拍一区二区三区| 亚洲美女网站| 美女精品国产| 亚洲欧美韩国| 欧美日一区二区三区在线观看国产免| 国产一区二区三区四区三区四| 亚洲人成网站色ww在线| 久久精品道一区二区三区| 一本色道久久88亚洲综合88| 久久久久久网址| 国产亚洲一区精品| 亚洲欧美国产精品桃花| 亚洲激情av| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品一区二区三区观看| 亚洲毛片在线| 亚洲承认在线| 麻豆精品一区二区综合av| 国产欧美日韩亚洲精品| 亚洲一区二区三区高清| 亚洲精品国产无天堂网2021| 老司机久久99久久精品播放免费| 欧美性猛交xxxx乱大交蜜桃| 另类综合日韩欧美亚洲| 国产精品99久久久久久久女警| 欧美一区二区三区久久精品| 亚洲免费观看视频| 欧美成人蜜桃| 亚洲国产精品va在看黑人| 久久久国产精彩视频美女艺术照福利 | 久久国产直播| 亚洲一区精品电影| 国产精品久久久久影院亚瑟| 一区二区精品在线| 亚洲伦理在线免费看| 欧美激情视频在线免费观看 欧美视频免费一 | 午夜电影亚洲| 国产一区二区三区自拍| 久久精品中文| 久久国产日本精品| 影音先锋另类| 亚洲激情一区二区| 欧美精品九九99久久| 在线视频亚洲| 一区二区三区四区国产精品| 欧美日韩亚洲一区二区三区在线| 夜夜嗨一区二区三区| 日韩一区二区精品视频| 国产精品毛片a∨一区二区三区| 亚洲免费在线看| 校园春色国产精品| 一区二区三区在线观看国产| 免费观看久久久4p| 欧美日韩人人澡狠狠躁视频| 亚洲欧美日韩国产综合| 欧美中文在线字幕| 亚洲精品免费一二三区| 99爱精品视频| 国产香蕉97碰碰久久人人| 欧美不卡三区| 欧美午夜久久久| 老司机一区二区| 欧美性大战久久久久| 久久一区欧美| 欧美区一区二区三区| 午夜亚洲福利| 欧美成人一区二免费视频软件| 亚洲调教视频在线观看| 久久精品一区二区三区不卡| 亚洲欧洲综合另类| 亚洲一区免费网站| 99精品视频免费全部在线| 午夜精品影院| 一区二区三区|亚洲午夜| 欧美中文在线观看| 亚洲免费视频一区二区| 欧美高清视频一区二区| 久久电影一区| 欧美午夜精品一区| 91久久久久久久久| …久久精品99久久香蕉国产| 影音先锋中文字幕一区| 一区二区成人精品| 久久精品综合| 午夜精品久久久| 欧美色道久久88综合亚洲精品| 久久综合伊人77777尤物| 欧美性片在线观看| 亚洲激情在线激情| 亚洲国产综合在线| 久久综合色综合88| 久久久夜精品| 国产精品五月天| 亚洲私人影院| 亚洲深夜激情| 欧美日韩精品一区二区三区四区 | 亚洲精品一区二区三区在线观看| 欧美一区二区高清| 欧美一区在线看| 国产精一区二区三区| 中文亚洲欧美| 一区二区激情小说| 欧美三区在线| 亚洲图片欧美一区| 亚洲综合成人在线| 国产精品女人毛片| 欧美在线91| 久久综合久久综合九色| 国产资源精品在线观看| 久久精品国产免费| 免费成人av| 日韩午夜激情| 欧美日韩综合| 午夜精品视频在线观看| 久久久久久久网| 亚洲电影毛片| 欧美精品一区二区三区四区 | 久久久精彩视频| 久热精品视频在线免费观看 | 午夜精品久久久久影视| 欧美午夜精品伦理| 亚洲中字在线| 免费成人黄色片| 亚洲久久在线| 国产精品久久久对白| 亚洲制服av| 久久综合成人精品亚洲另类欧美| 黄色亚洲在线| 欧美国产精品va在线观看| 日韩一级片网址| 久久网站免费| 在线中文字幕一区| 国产欧美在线视频| 麻豆精品在线视频| 日韩一级精品视频在线观看| 欧美一二三区精品| 在线播放精品| 欧美日韩天堂| 久久综合久久美利坚合众国| 最新成人av网站| 欧美影片第一页| 亚洲精品欧洲| 国产曰批免费观看久久久| 美女视频网站黄色亚洲| 日韩亚洲欧美一区二区三区| 久久精品视频99| 一区二区三区国产盗摄| 亚洲人成在线影院| 国内精品视频一区| 欧美区一区二区三区| 亚洲欧美日韩综合国产aⅴ| 蜜桃久久精品一区二区| 亚洲手机在线| 亚洲人精品午夜在线观看| 国产精品国产三级国产| 久久精品成人一区二区三区蜜臀| 久久精品一区二区三区中文字幕| 亚洲日本在线观看| 久久精品91| 中日韩高清电影网| 亚洲国产精品传媒在线观看| 国产乱码精品| 国产精品yjizz| 欧美久久九九| 蜜桃精品一区二区三区| 欧美一区日韩一区| 亚洲综合视频一区|