enter函數(shù)的作用?
ENTER指令和LEAVE指令是由CPU提供的內(nèi)置工具,用于實(shí)現(xiàn)某種類型的堆棧幀。
它們使用起來非常簡(jiǎn)便,只需一步就可以完成在例程中建立堆棧幀的操作。
ENTER指令建立堆棧棧的過程是:將當(dāng)前EBP寄存器壓入堆棧,并使它指向局部變量區(qū)的頂部。
ENTER指令還支持嵌套堆棧幀的管理,通常嵌套堆棧是在同一個(gè)例程內(nèi)(當(dāng)然高級(jí)語言也得支持嵌套塊才行)。
為了實(shí)現(xiàn)嵌套,使用ENTER指令代碼的必須指明當(dāng)前嵌套的層數(shù)(這使得ENTER的使用與實(shí)現(xiàn)具體的例程調(diào)用之間關(guān)聯(lián)性較小)。
當(dāng)給出嵌套的層數(shù)時(shí),ENTER指令將指向當(dāng)前每一個(gè)活動(dòng)的堆棧幀的起始位置的指針存儲(chǔ)到例程的堆棧幀中。
然后,代碼就可以使用這些指針來訪問其它當(dāng)前活動(dòng)的堆棧幀了。