<samp id="tdkee"></samp>

    <mark id="tdkee"><acronym id="tdkee"></acronym></mark>

  1. 免费看又黄又无码的网站_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片_日本最新免费二区三区

    ×
    新網 > 虛擬主機 > 正文

    匯編器與虛擬機

    • 作者:新網
    • 來源:新網
    • 瀏覽:100
    • 2018-05-10 13:22:51

    上篇文章主要觀點是程序實現就是一個翻譯過程,最終會翻譯成(JIT)CPU指令。我們倒著推,那么GIT的上層就是虛擬機,而虛擬機是針對中間字節(jié)碼的。中間字節(jié)碼就是油匯編器對匯編語言文件的一個翻譯。

       上篇文章主要觀點是程序實現就是一個翻譯過程,最終會翻譯成(JIT)CPU指令。我們倒著推,那么GIT的上層就是虛擬機,而虛擬機是針對中間字節(jié)碼的。中間字節(jié)碼就是油匯編器對匯編語言文件的一個翻譯。

    Cg-4WlGqHDyIXbC2AAFEbC-WlaEAAJOZQKJsoQAAUSE577.jpg

    <div>  那么我們先來談談匯編器(虛擬匯編):
      對于匯編器實現中的詞法分析肯定是很簡單的,語法分析也嗯容易,因為其語法大致有三種:
      1:函數定義
      2:標簽定義
      3:定義變量
      3:匯編指令語句
      所以語法分析的結果就是要得到所有的函數定義表,然后每個函數中又有標簽表和變量表)
      我們的目的是生成中間字節(jié)碼,以至于提高速度,那么盡量讓每個指令干自己指令內部的事情而不需要關心其他(否則速度就降下來了)。
      這樣虛擬機的實現也就更簡單。
      因為虛擬機的實現大概只需要一個函數表以及一個運行時堆棧就OK。那么我們的中間字節(jié)碼中的虛擬指令就應該只針對棧進行操作(而且都是固定了偏移的)
      (想象一下,如果不存在匯編器,而進行純粹的語言解釋器,那么會通過一個map結構去查詢某個變量,而先通過匯編器-(可以看成預處理,事實上預處理也就是一個翻譯過程)
      去生成中間指令,給每個變量安排一個相對索引,那么查詢某變量,只需要一個常量時間-更短的時間即可)
      (正因為預處理-翻譯過程,所以才使得下一步過程的執(zhí)行速度才更快)
      接下來就是代碼生成,寫入OPcode,然后它具有參數,而參數無非就是一個特定偏移。
      虛擬機去執(zhí)行這個中間字節(jié)碼,提供一個堆棧作為運行時。

    免責聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發(fā)現本社區(qū)中有涉嫌抄襲的內容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

    免費咨詢獲取折扣

    Loading
    国产精品视频白浆免费视频_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片

    <samp id="tdkee"></samp>

      <mark id="tdkee"><acronym id="tdkee"></acronym></mark>