freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

第八章虛擬機word版(編輯修改稿)

2024-09-13 06:04 本頁面
 

【文章內容簡介】 是BP的內容加上5的結果作為操作數存放的單元地址。這則指令式將棧中物理地址BP的內容加上5的單元的值傳送AX寄存器。 內存設計在我們的虛擬機中,存儲區(qū)主要有三個部分構成:全局變量存儲區(qū)、活動記錄區(qū)、對象存儲區(qū)(堆)。1.全局變量存儲區(qū)在我們的虛擬機中,每個程序它都使用棧最底部的那幾個單元來作為全局變量存儲區(qū)。這樣做的原因是和后面的活動記錄區(qū)設計聯系在一起的。因為在活動紀錄區(qū),存儲空間的分配大小是與具體的函數參數相關的,并且它們是生存期也會隨著函數的返回而結束。2.活動記錄區(qū) 在活動記錄區(qū)中包含的信息用于對象的動態(tài)鏈接,正常的方法返回以及異常傳播。動態(tài)鏈接 運行環(huán)境包括對指向當前類和當前方法的解釋器符號表的指針,用于支持方法代碼的動態(tài)鏈接。方法的class文件代碼在引用要調用的方法和要訪問的變量時使用符號。動態(tài)鏈接把符號形式的方法調用翻譯成實際方法調用,裝載必要的類以解釋還沒有定義的符號,并把變量訪問翻譯成與這些變量運行時的存儲結構相應的偏移地址。動態(tài)鏈接方法和變量使得方法中使用的其它類的變化不會影響到本程序的代碼。正常的方法返回如果當前方法正常地結束了,在執(zhí)行了一條具有正確類型的返回指令時,調用的方法會得到一個返回值。執(zhí)行環(huán)境在正常返回的情況下用于恢復調用者的寄存器,并把調用者的程序計數器增加一個恰當的數值,以跳過已執(zhí)行過的方法調用指令,然后在調用者的執(zhí)行環(huán)境中繼續(xù)執(zhí)行下去。3.對象存儲區(qū)(堆) 目前的語言中尚不需要在堆中分配空間;因此在這里不做介紹。4.棧中內容介紹:從棧的最底部開始,我們在那里存儲了程序中的全局變量,將需要對全局變量進行訪問時,我們首先通過查詢符號表,獲取它在棧中相對棧底的偏移位置,然后直接讀取這個單元的內容即可。Local varsparamsOld_pcBpPcParams全局數據區(qū)Old_bplocal vars分配了全局變量之后,就是程序的活動記錄區(qū),每個函數的活動記錄格式如下:Bp:棧底指針Pc:返回地址Local vars:局部變量Params:形式參數 棧中的內容在前一節(jié)中,我們介紹了虛擬機的結構,在接下來的內容中,我們將詳細地講述虛擬機怎樣執(zhí)行我們生成的代碼。第一步:對源文件進行語法分析、詞法分析……直至生成目標代碼。 的測試源文件,它的內容為:void main() { int a。 int b。 a=4。 b=5+a。}最后我們將得到一組文件:,,, 。第二步:運行虛擬機程序,我們將見到以下的界面: 界面第三步:點擊“裝入元數據”按鍵,將符號表數據導入。第四步:點擊“裝入中間代碼”按鍵,將指令數據導入。到這里,程序的裝入工作就已經完成了,然后我們點擊“單步執(zhí)行”按鍵,就可以運行代碼了。首先,我們來看看生成的代碼:line0: CALL NEAR PTR _MAINline1: HALT line2: main: MAIN PROC NEARline3: ADD SP 6line4: MOV [BP+2] 0line5: MOV [BP+3] 0line6: MOV AX 1line7:
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1