亚洲AV无码国产精品午友情链接,五月丁香在线视频,欧美日韩人妻,曰本大码熟中文字幕

鄭州信息科技中專職業(yè)學(xué)院中專部

不僅僅統(tǒng)招學(xué)歷喲

  • 熱門專業(yè)!
  • 大學(xué)校園!
  • 就業(yè)保障!
  • 拿學(xué)歷又能高薪就業(yè),誰能不愛!
了解詳情>
鄭州北大青鳥翔天信鴿參加“安心學(xué)習(xí)·放心就業(yè)”公約簽約儀式

讓每一個家庭“安心”、“放心”

  • 教學(xué)為本
  • 師愛為魂
  • 安心學(xué)習(xí)
  • 放心就業(yè)
了解詳情>
北大青鳥20周年慶典與總部年會鄭州翔天信鴿榮獲7項榮譽

深耕細作IT職業(yè)教育15載

  • 青鳥之星教學(xué)質(zhì)量大獎
  • 卓越風(fēng)云人物
  • 北大青鳥中心理事會成員
  • 七項榮耀載譽而行!
了解詳情>
鄭州北大青鳥學(xué)員喜獲全國IT精英挑戰(zhàn)賽冠軍

我們教學(xué)怎么樣

  • 實力見證
  • 網(wǎng)絡(luò)組一等獎
  • 網(wǎng)絡(luò)組二等獎
  • 軟件組四等獎
  • 200家校區(qū)脫穎而出!
了解更多>
北大青鳥榮獲315重承諾守信用放心品牌

北大青鳥職業(yè)IT20周年

  • 重承諾
  • 守信用
  • 放心品牌
  • 放心學(xué)習(xí)
  • 靠靠譜譜好就業(yè)!
了解更多>
學(xué)IT好工作高薪就業(yè)

我命由我不由天

  • 學(xué)個性的技術(shù)
  • 做愛做的事
  • 掙滿意的錢
  • 衣食無憂
  • 選擇寬且高大尚!
了解更多>
鄭州北大青鳥IT培訓(xùn)辦學(xué)14年

我們靠不靠譜

  • 14年辦學(xué)
  • 14年磨練
  • 14年成長
  • 14年探索
  • 只為讓每個學(xué)員成材!
了解更多>
鄭州北大青鳥IT培訓(xùn)

不打工也牛掰

  • 好工作
  • 好環(huán)境
  • 高薪資
  • 好課程
  • 支持你成為有“錢”人!
了解更多>

學(xué)IT就讀北大青鳥

  • 好工作
  • 好未來
  • 好老師
  • 好課程
  • 支持你成為受人尊敬的人!
了解更多>
河南北大青鳥電腦培訓(xùn):Linux GCC內(nèi)嵌匯編基礎(chǔ)知識
作者: 添加時間:10-13 瀏覽次數(shù):0

 河南北大青鳥電腦培訓(xùn),專業(yè)的電腦IT培訓(xùn)學(xué)校,今天我們給大家分享的是Linux GCC內(nèi)嵌匯編基礎(chǔ)知識。

在Linux代碼中很多地方都使用了這種形式的匯編語言,嵌入?yún)R編程序的格式如下:
  __asm__ __volatile__ (
  asm statements
  : outputs
  : inputs
  : registers-modified
  );
  asm statements是一組AT&T格式的匯編語言語句,每個語句一行,由\n分隔各行。所有的語句都被包裹在一對雙引號內(nèi)。其中使用的寄存器前面要加兩個%%做前綴(%n表示參數(shù),n:數(shù)字);轉(zhuǎn)移指令多是局部轉(zhuǎn)移,因此多使用數(shù)字標(biāo)號。
  inputs指明程序的輸入?yún)?shù),每個輸入?yún)?shù)都括在一對圓括號內(nèi),各參數(shù)用逗號分開。每個參數(shù)前加一個用雙引號括起來的標(biāo)志,告訴編譯器把該參數(shù)裝入到何處。
  可用的標(biāo)志有:
  “g”:讓編譯器決定如何裝入它;
  “a”:裝入到ax/eax;
  “b”:裝入到bx/ebx;
  “c”:裝入到cx/ecx;
  “d”:裝入到dx/edx;
  “D”:裝入到di/edi;
  “S”:裝入到si/esi;
  “q”:a、b、c、d寄存器等;
  “r”:任一通用寄存器;
  “i”:整立即數(shù);
  “I”:0-31 之間的立即數(shù)(用于32位移位指令);
  “J”:0-63 之間的立即數(shù)(用于64 位移位指令);
  “N”:0-255 ,之間的立即數(shù)(用于out 指令);
  “n”:立即數(shù),有些系統(tǒng)不支持除字以外的立即數(shù),這些系統(tǒng)應(yīng)該使用“n”而不是“i”;
  “p”:有效內(nèi)存地址;
  “m”:內(nèi)存變量;
  “o”:操作數(shù)為內(nèi)存變量,但是其尋址方式是偏移量類型,也即是基址尋址,或者是基址加變址尋址;
  “V”:操作數(shù)為內(nèi)存變量,但尋址方式不是偏移量類型;
  “,”:操作數(shù)為內(nèi)存變量,但尋址方式為自動增量;
  “X”:操作數(shù)可以是任何類型;
  “f”:浮點數(shù);
  “t”:第一個浮點寄存器;
  “u”:第二個浮點寄存器;
  “G”:標(biāo)準(zhǔn)的80387;
  %  :浮點常數(shù),該操作數(shù)可以和下一個操作數(shù)交換位置;
  “=”:輸出;
  “+”:既是輸入又是輸出;
  “&”:改變其值之前寫,分配一個獨立的寄存器,使得函數(shù)返回值和該變量不因為重復(fù)使用同一個寄存器,出現(xiàn)數(shù)據(jù)覆蓋.
  “%”:與下一個操作數(shù)之間可互換;
  “#”:忽略其后的字符,直到逗號;
  “*”:當(dāng)優(yōu)先選擇寄存器時,忽略下面的字符;
  “0”~“9”:指定一個操作數(shù),它既做輸入又做輸出。通常用“g”;
  outputs指明程序的輸出位置,通常是變量。每個輸出變量都括在一對圓括號內(nèi),各個輸出變量間用逗號隔開。每個輸出變量前加一個標(biāo)志,告訴編譯器從何處輸出。
  可用的標(biāo)志與輸入?yún)?shù)用的標(biāo)志相同,只是前面加“=”。如“=g”。輸出操作數(shù)必須是左值,而且必須是只寫的。如果一個操作數(shù)即做輸出又做輸入,那么必須將它們分開:一個只寫操作數(shù),一個輸入操作數(shù)。輸入操作數(shù)前加一個數(shù)字限制(0~9),指出輸出操作數(shù)的序號,告訴編譯器它們必須在同一個物理位置。兩個操作數(shù)可以是同一個表達式,也可以是不同的表達式。
  registers-modified告訴編譯器程序中將要修改的寄存器。每個寄存器都用雙引號括起來,并用逗號隔開。如“ax”。如果匯編程序中引用了某個特定的硬件寄存器,就應(yīng)該在此處列出這些寄存器,以告訴編譯器這些寄存器的值被改變了。如果匯編程序中用某種不可預(yù)測的方式修改了內(nèi)存,應(yīng)該在此處加上“memory”。這樣以來,在整個匯編程序中,編譯器就不會把它的值緩存在寄存器中了。
  如:
  “cc”:你使用的指令會改變CPU的條件寄存器cc;
  “memory”:你使用的指令會修改內(nèi)存;
  __volatile__是可選的,它防止編譯器修改該段匯編語句(重排序、重組、刪除等)。
  輸入?yún)?shù)和輸出變量按順序編號,先輸出后輸入,編號從0開始。程序中用編號代表輸入?yún)?shù)和輸出變量(加%做前綴)。
  輸入、輸出、寄存器部分都可有可無。如有,順序不能變;如無,應(yīng)保留“:”,除非不引起二意性。
  看一個在C語言中使用at&t的嵌入?yún)R編程序的例子,c語言中的3個int變量,一般會是三個內(nèi)存地址。每個操作數(shù)的長度則要根據(jù)操作系統(tǒng)和編譯器來決定,一般32位操作系統(tǒng)為32位,則每個操作數(shù)占用4個字節(jié):
  int i=0, j=1, k=0;
  __asm__ __volatile__("
  pushl %%eax\n //asm statement
  movl %1, %%eax\n //asm statement
  addl %2, %%eax\n //asm statement
  movl %%eax, %0\n //...
  popl %%eax" //...
  : "=g" (k) //outputs
  : "g" (i), "g" (j) //inputs
  : "ax", "memory" //registers modified
  );
  按照參數(shù)編號原則輸出參數(shù)參數(shù)k為%0,輸入?yún)?shù)i和j依次為%1和%2。值得注意的是輸出和輸入標(biāo)志都使用了"g",所以我們不必關(guān)心這些參數(shù)究竟是使用了寄存器還是內(nèi)存操作數(shù),編譯器自己會決定。

     以上就是Linux GCC內(nèi)嵌匯編常用的基礎(chǔ)知識,想要了解更多的網(wǎng)絡(luò)技術(shù)知識請查看:http://i3061.cn/  

本文源自:http://i3061.cn 轉(zhuǎn)載請注明出處!


本文由站河南北大青鳥校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學(xué)習(xí)技巧、就業(yè)案例、招生詳情等問題,可以對在線咨詢老師進行一對一問答!


分享到:
波多野结衣久久精品99e| 免费欧美色区| 后入极品大奶少妇| 久久产精品一区二区| 国产丝袜在线精品丝袜| 久久综合激的| 精精品视频在线播放| 日韩777| 一本一道色欲综合网中文字幕| 永久黄色视频| 精品国产国偷自产网站| 亚洲伊人成无码综合影院| 成人在线观看导航| 美女好天天日| 国产女人的高潮国语对白| 亚洲欧洲精品久久| 日韩av无码精品色午夜| 另类欧美日韩国产| 国产精品V日韩精品V| 狠狠色丁香久久婷婷综合五月 | 欧美成人精品首页| 亚洲人成网亚洲欧洲无码久久| 国内久久无码专区| 亚洲一区二区久久久久| 日韩免费无码视频一区二区三区| 在线视频精品免费一区| 东京日韩成人在线观看| 欧美人与动牲猛交a欧美精品| 中文字幕AV在线一二三区| 大胆AV天堂| 亚洲欧美日韩国产在| 久久久久国产精品| 网站黄99| av日韩爽爽| 九九视频精品在线| 亚洲无码免费在线观看| 亚洲性爱欧美一区二区| 久久久精品男女操操操| 欧美人妻一区二区三区66| 亚洲AV无码砖区| 久伊人网|