wordpress hook 列表武漢seo網(wǎng)站管理
x86架構(gòu)的寄存器
AT&T匯編和Intel匯編的區(qū)別
每取出完一條指令,PC會(huì)自動(dòng)+"1",指向下一條要被執(zhí)行的指令。這里的1是指下一條指令,但是指令本身可能占用多個(gè)字節(jié),所以地址可能不是以1疊加
當(dāng)前執(zhí)行的是108地址的指令,PC為112,但是108是無(wú)條件轉(zhuǎn)移指令JMP,所以PC跳轉(zhuǎn)導(dǎo)128地址的指令
選擇語(yǔ)句的匯編代碼
PSW程序狀態(tài)子寄存器
循環(huán)可以使用jmp和cmp來(lái)實(shí)現(xiàn),匯編給處了loop也可以實(shí)現(xiàn)
高級(jí)語(yǔ)言的函數(shù)調(diào)用,首先執(zhí)行main函數(shù),會(huì)創(chuàng)建main函數(shù)的棧幀用來(lái)保存一些局部變量和一些相關(guān)信息,在main函數(shù)中又調(diào)用了Q函數(shù),同時(shí)也會(huì)創(chuàng)建Q函數(shù)的棧幀來(lái)保存Q函數(shù)的局部變量和別的信息,同理,隨著更深層的函數(shù)調(diào)用,會(huì)一次次的創(chuàng)建函數(shù)棧幀放到棧頂,最棧頂?shù)奈恢镁褪钱?dāng)前執(zhí)行的函數(shù),執(zhí)行完畢后會(huì)出棧,繼續(xù)執(zhí)行。如圖中的caller函數(shù),其中的3個(gè)局部變量temp1,temp2,sum都保存在caller的棧幀中,之后調(diào)用add函數(shù),會(huì)繼續(xù)創(chuàng)建add函數(shù)的棧幀來(lái)執(zhí)行add函數(shù),執(zhí)行完畢return后,出棧,棧頂指針會(huì)指向caller的棧頂,繼續(xù)執(zhí)行caller函數(shù)
在匯編語(yǔ)言中,使用call和ret實(shí)現(xiàn)了函數(shù)的調(diào)用和返回,這里以caller和add函數(shù)為例,call add指令時(shí),跳轉(zhuǎn)到add函數(shù)處執(zhí)行,執(zhí)行完畢后ret,返回到斷點(diǎn)位置繼續(xù)執(zhí)行。
要保證過得去和回得來(lái),也就是跳轉(zhuǎn)過去和執(zhí)行完畢后返回過來(lái),本質(zhì)就是改變pc程序計(jì)數(shù)器中的值進(jìn)行跳轉(zhuǎn)
這里放上push ebp的作用