中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網站建設工作室的營銷方式創(chuàng)業(yè)計劃書長沙靠譜的關鍵詞優(yōu)化

網站建設工作室的營銷方式創(chuàng)業(yè)計劃書,長沙靠譜的關鍵詞優(yōu)化,煙臺公司做網站,web網站開發(fā)用什么系列文章戳這里👇 什么是上下文無關文法、最左推導和最右推導如何判斷二義文法及消除文法二義性何時需要消除左遞歸什么是句柄、什么是自上而下、自下而上分析什么是LL(1)、LR(0)、LR(1)文法、LR分析表LR(0)、SLR(1)、LR(1)、LALR(1)文法之間的關系編譯原理第三章習…

系列文章戳這里👇

  1. 什么是上下文無關文法、最左推導和最右推導
  2. 如何判斷二義文法及消除文法二義性
  3. 何時需要消除左遞歸
  4. 什么是句柄、什么是自上而下、自下而上分析
  5. 什么是LL(1)、LR(0)、LR(1)文法、LR分析表
  6. LR(0)、SLR(1)、LR(1)、LALR(1)文法之間的關系
  7. 編譯原理第三章習題
  8. 詞法分析、構建DFA、上下文無關文法、LL(1)分析、提取正規(guī)式
  9. 證明LL(1)、SLR(1)、LALR(1)文法
  10. 翻譯方案、屬性棧代碼
  11. 【運行時環(huán)境】什么是活動記錄、 活動記錄與匯編代碼的關系

編譯原理【運行時環(huán)境】—什么是活動記錄、 活動記錄與匯編代碼的關系

  • 系列文章戳這里👇
    • 什么是活動記錄?
      • 活動記錄-AR (Activation Record)
      • 活動記錄的內容
    • 舉個栗子
      • 再舉個栗子
    • 再再舉個栗子

什么是活動記錄?

相信大家也和我一樣,覺得編譯原理在運行環(huán)境這部分比較難理解,由于機器是棧式運行的,所以里面很多操作并不利于我們理解,下面分享一下我自己對活動記錄這一塊的部分理解,也有一些x86匯編的內容

活動記錄-AR (Activation Record)

  • 是一連續(xù)存儲區(qū)域,用于管理與存放和程序單元執(zhí)行相關的重要信息。
  • 下圖就是活動記錄的內容,簡單來說,活動記錄是用來記錄一段函數(shù)信息的地方,
    • 很好理解,當我們在寫C程序時,如果我們要用一個函數(shù)調用另一個函數(shù),那么在調用結束后怎么回到原來的函數(shù)呢?
      • 就是活動記錄在幫忙,他幫我們把調用者的地址記錄下來,并用控制鏈相連。
    • 而訪問鏈是記錄當前函數(shù)可以訪問的函數(shù)地址,這個是可選擇的,意思就是活動記錄中可以沒有它。
    • 返回值自然就是該函數(shù)return的值,實在參數(shù)其實就是函數(shù)的參數(shù),也就是int fun(int a,int b)里面的ab
    • 局部數(shù)據(jù)就是函數(shù)體里面定義的局部變量
    • 機器狀態(tài)就是活動記錄的一個指針,它是活動記錄的基地址,x86匯編中一般表示為%ebp,我們可以用它來找到活動記錄里面參數(shù)的位置,比如8(%ebp)就是ebp+8
  • 在這里插入圖片描述
  • 問題來了,如何獲取活動記錄里的內容呢?上面說了,可以通過%ebp,如下圖所示,bp進行偏移就可以取得的對應位置的值!在這里插入圖片描述

活動記錄的內容

  • 下圖是棧式分配下的活動記錄內容布局,其中返回值往下即為高地址到低地址,所以我們要調用參數(shù)就需要用bp+xx去取,而局部參數(shù)就是bp-xx,還不懂也沒關系,后面會舉個栗子,應該會更好理解在這里插入圖片描述

  • 臨時區(qū)域。用以保存臨時計算結果

  • 局部數(shù)據(jù)區(qū)。源程序中程序單元聲明的局部變量對應在此區(qū)域。

  • 機器狀態(tài)保存區(qū)。存有機器的寄存器,程序指令計數(shù)器 ip(返回地址)等。

  • 訪問鏈(靜態(tài)鏈)。當前程序單元可以訪問的(靜態(tài)程序中)外圍程序單元的活動記錄鏈。

  • 控制鏈(動態(tài)鏈)。程序單元的活動記錄按它們的生成(或調用)次序串成鏈。

  • 實在參數(shù)

  • 返回值

舉個栗子

  • 在這里插入圖片描述
  • 那么這個C程序的活動記錄安排你能畫出來嗎?試試看?
  • 函數(shù)g被調用時,活動記錄棧的(大致)內容如下:在這里插入圖片描述
  • 可以看到主函數(shù)中調用了h,而h調用了g,他們的old bp就是控制鏈,分別指向調用者,他們都有一個局部變量a,并且此時bp在函數(shù)g的活動記錄中,sp是棧頂指針(始終指向棧頂)

再舉個栗子

  • 在這里插入圖片描述

  • 這是一個非常簡單的c函數(shù)程序,你能畫出它的活動記錄圖,并標明各個參數(shù)對應bp的偏移嗎?如果我們要取參數(shù)則上移,要取局部變量則下移,這里是int,占4個字節(jié),所以分別是bp+8bp-4在這里插入圖片描述

  • 更深一步,讓我們一起看一看這段程序的匯編代碼是怎么樣的吧!x86匯編是典型的棧式機,首先pushl %ebp將當前bp壓棧,movl %esp,%ebp將這個位置作為活動記錄的基址,即把esp送入ebp,subl $8, %esp為局部數(shù)據(jù)分配空間,有兩個整型變量,所以esp-8movl 8(%ebp), %eax取參數(shù)a的值放入寄存器%eax,再movl %eax,-4(%ebp)將其賦給局部變量,后兩句同理將b賦給d,最后leave和ret回收活動記錄,恢復原先保存的機器狀態(tài),leave相當于mov bp,sp ;pop bp //恢復調用者的bp

  • 在這里插入圖片描述

再再舉個栗子

int punc(int** &a,int b, int c,int &d)
{
a[b][c] = d;return 0;
}//C/C++程序,int 變量占 4 字節(jié)。

(1)準確畫出該函數(shù)的活動記錄內容安排。

  • 同理,也很簡單就能畫出來在這里插入圖片描述

(2)補全 5 處帶有下劃線的匯編代碼。

在這里插入圖片描述
那么這里的匯編代碼怎么填呢?

  • 可以看到參數(shù)分別為(int** &a,int b, int c,int &d),如果你不清楚指針引用的話,可以先看一下這篇文章《C語言指針、引用》,那么其中a是一個引用,它是指向某一個指針的指針的引用,也就是有一個指針x,它指向另一個指針y,而a就是指針x的引用,也就是x的另一個名字。知道這個以后就可以補充匯編代碼了!
  • movl 8(%ebp), %eax顯然是將參數(shù)a送入%eax,那么前面說了a是一個指針的指針的引用,也就是說此時的a是一個地址,那么①就應該是movl (%eax),%ebx,(%eax)相當于取指針a指向的地址,可以作為一個數(shù)組的首地址,然后把a這個地址先放到一個寄存器%ebx里面
  • %12(ebp)對應的就是參數(shù)b了,那接下來就應該計算a[b]的值了,數(shù)組地址的計算也很簡單,a+b*4對應匯編就是(%ebx,%eax,4),再把它送入%ebx就得到了a[b]的地址
  • 然后取d的值20(%ebp),送入%eax,再存到寄存器%edx
  • 然后再計算a[b][c]的地址,前面已經計算了a[b]為(%ebx,%eax,4),所以a[b]+c*4=(%ebx, %eax ,4),那么最后將d送入這個地址就可以了movl %edx,(%ebx,%eax,4)
  • 最后return 0即對應 xorl %eax, %eax:按位異或,相同的位置為0,不同的位置為1,eax和eax的每一位都相同,所以相當于清零。
  • 最終結果如下:在這里插入圖片描述
http://www.risenshineclean.com/news/7205.html

相關文章:

  • 網站建設優(yōu)化排名百度推廣登錄后臺
  • 幫傳銷組織做網站營業(yè)推廣怎么寫
  • 青島做網站多少錢東莞網站制作模板
  • 視頻鏈接生成競價推廣和seo的區(qū)別
  • 如何作做網站百度一下進入首頁
  • 公司網站 開源如何進行網絡營銷推廣
  • 做速賣通的素材有哪些網站做百度推廣的公司電話號碼
  • 代做網站作業(yè)廣告推廣平臺網站
  • 備案的域名可以做盜版電影網站嗎廣州各區(qū)正在進一步優(yōu)化以下措施
  • 建設銀行網站維修圖片做營銷策劃的公司
  • 甘孜州住房和城鄉(xiāng)規(guī)劃建設局網站外包公司為什么沒人去
  • 廣州企業(yè)網站建設公司bt磁力搜索神器
  • 做我的狗哪個網站可以看seo優(yōu)化技術是什么
  • 最新軟件發(fā)布平臺seo搜索引擎優(yōu)化課程總結
  • 西安正規(guī)網站建設報價重慶seo服務
  • 網站制作鄭州網站制作網站制作的重要性及步驟詳解
  • 企業(yè)如何建公司網站網站登錄入口
  • 可信網站辦理大數(shù)據(jù)精準營銷
  • 重慶免費網站制作寧波免費seo排名優(yōu)化
  • 網站添加谷歌地圖商城小程序開發(fā)哪家好
  • 網頁傳奇手游排行榜前十名吉林關鍵詞優(yōu)化的方法
  • 企業(yè)商務網站建設論文保定百度推廣聯(lián)系電話
  • 做視頻網站怎么掙錢上海關鍵詞優(yōu)化推薦
  • 網站建設河南優(yōu)化合作平臺
  • jquery 案例網站騰訊與中國聯(lián)通
  • 長沙長沙h5網站建設百度網頁鏈接
  • 學做美食網站哪個好文案短句干凈治愈
  • wordpress 換域名插件關鍵詞排名優(yōu)化江蘇的團隊
  • asp網站圖片輪播代碼衡陽seo優(yōu)化推薦
  • python做網站 jsp網站企業(yè)網站推廣方案