国产成人资源手机免费看a_亚洲欧美视频二区_午夜播影院_午夜在线免费视频_久久久久久成人综合网_白白国产永久视频

Java虛擬機(jī)用于數(shù)字電視機(jī)頂盒研究與實(shí)現(xiàn)

本地方法函數(shù)調(diào)用
來源:中國有線電視 更新日期:2007-10-15 作者:佚名
內(nèi)容導(dǎo)航:  分頁瀏覽 | 全文瀏覽

   本地方法

    解釋器處理字節(jié)碼時,與給定字節(jié)碼有關(guān)的動作的語義、執(zhí)行字節(jié)碼的相關(guān)動作大多是從堆棧中獲得其操作數(shù),并將其結(jié)果送回堆棧中。典型的情況下字節(jié)碼是帶有參數(shù)的,這些參數(shù)在字節(jié)碼流中緊跟在字節(jié)碼自身之后。

    在虛擬機(jī)解釋字節(jié)碼過程中,執(zhí)行引擎會不時遇到請求本地方法調(diào)用的指令,虛擬機(jī)負(fù)責(zé)試著發(fā)起這個本地方法的調(diào)用。本地方法是Java虛擬機(jī)指令集的一種可編程擴(kuò)展,運(yùn)行這個本地方法就是Java虛擬機(jī)對這條指令的執(zhí)行。

    本地方法函數(shù)調(diào)用

    為了增加虛擬機(jī)的性能,加快其速度,解釋器在處理一些字節(jié)碼時調(diào)用的本地方法函數(shù)用匯編實(shí)現(xiàn)了將Java棧轉(zhuǎn)換為C棧,然后在C堆棧上實(shí)現(xiàn)函數(shù)的調(diào)用。Linux下是用獨(dú)立的匯編語言程序invokeNative_i386。S實(shí)現(xiàn)函數(shù)CVMjniInvokeNative(),我們采用在C里面嵌入?yún)R編的形式來實(shí)現(xiàn)該函數(shù)。

    該函數(shù)的形參有7個,完成的主要功能是將由實(shí)參傳遞來的部分?jǐn)?shù)據(jù)通過直接或者運(yùn)算后得到本地方法的參數(shù),然后壓入本地棧,通過匯編來實(shí)現(xiàn)本地的C函數(shù)調(diào)用。實(shí)參傳遞過來的7個數(shù)據(jù)包含JNI環(huán)境指針(env)、本地方法的函數(shù)指針(nativecode)、Java棧指針(args)、本地方法的描述符(tersesig),Java棧的參數(shù)總數(shù)(argssize)表示靜態(tài)或非靜態(tài)方法的類對象標(biāo)志(classobject)及用于存儲返回值的一個指針變量(returnvalue),其中env要作為第一個本地方法的參數(shù)傳遞,并且nativecode也要傳遞到本地方法來實(shí)現(xiàn)本地方法的正確調(diào)用。

    J2ME中的CDC移植

    由于Linux有多個通用寄存器,在實(shí)現(xiàn)該函數(shù)的代碼中充分運(yùn)用了如esp、ebp、esi等寄存器,但是OS20提供的可操作的寄存器只有3個通用寄存器Areg、Breg、Creg和1個工作指針寄存器Wptr(相當(dāng)于堆棧指針),在實(shí)現(xiàn)過程中,我們用在C函數(shù)中設(shè)立局部變量來代替Linux的通用寄存器,通過手動調(diào)整工作棧指針來實(shí)現(xiàn)本地方法的調(diào)用,具體實(shí)現(xiàn)過程如圖3所示。

    當(dāng)進(jìn)入?yún)R編函數(shù)時,工作區(qū)指針為Wptr,實(shí)參、狀態(tài)寄存器和指令指針寄存器的值全部自動入棧,然后是我們定義的代替Linux寄存器的局部變量自動入棧,此時的Wptr自動移到Wptr′,利用OS20的匯編指令,手動將實(shí)參傳遞過來的參數(shù)通過計(jì)算得到本地方法參數(shù)的個數(shù),然后將本地方法所需的參數(shù)依次壓棧,最后再手動調(diào)節(jié)工作區(qū)指針實(shí)現(xiàn)本地方法的成功調(diào)用。這里我們先將本地方法函數(shù)指針和1個標(biāo)志位flag(0x10101010)入棧,原因有兩個:

 標(biāo)簽:
廣告聯(lián)系:010-82755684 | 010-82755685 手機(jī)版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時代網(wǎng) 版權(quán)所有 關(guān)于投影時代 | 聯(lián)系我們 | 歡迎來稿 | 網(wǎng)站地圖
返回首頁 網(wǎng)友評論 返回頂部 建議反饋
快速評論
驗(yàn)證碼: 看不清?點(diǎn)一下
發(fā)表評論
主站蜘蛛池模板: 成人羞羞视频播放网站 | 国产精品国产三级在线 | 国产精品9 | 国产高潮好爽受不了了夜夜做 | 好男人影视社区在线www | 欧洲美女乱xxoo高潮大片 | 91精品伦理 | 搡女人免费视频大全 | 国产精品福利一区 | 精品国产91aⅴ一区二区三区 | 在线麻豆精东9制片厂AV影现网 | www.爱久久| 在线亚洲天堂网 | 中文字幕十一区 | 日本不卡免费高清视频在线 | 人妻系列影片无码专区50 | 国产在线首页 | 天天操天天干天天操天天干 | 香蕉视频一级毛片 | www.色就是色.com | 精品丝袜一区二区三区 | 红桃视频成免费人入口 | 成年人在线视频播放 | 一二三不卡视频 | 无码人妻品一区二区三区精99 | 蜜臀aⅴ一区二区三区 | 黄A无码片内射无码视频 | 国产人与动牲交毛长 | 人妻丰满熟妞AV无码区 | 影音先锋中文字幕无码资源站 | 1000部禁又爽又黄的禁片免费 | 免费在线日韩 | 操她射她视频 | 天堂av在线8 | 国产精品av99 | 国产成人精品免费视频大全可播放的 | 色草视频| 波多野结衣一区在线 | 麻豆91茄子在线观看 | 色女人久久| 77tv色成人|