【導(dǎo)讀】前幾天開(kāi)始閱讀VCL源代碼,可是幾個(gè)基類(lèi)的繼承代碼把我看得頭大。最后只好臨時(shí)啃了一下匯編,把Delphi對(duì)象操作的幾個(gè)關(guān)鍵的方法勘察。這是我花費(fèi)一個(gè)晚上的測(cè)試結(jié)果,更多的細(xì)節(jié)只能以后在學(xué)習(xí)中再去了解。其實(shí)更重要的是,大家可以幫忙檢查我的分析有沒(méi)有錯(cuò)誤。和VCL得來(lái)的,匯編更是臨時(shí)抱佛腳,所以錯(cuò)誤難免。我清楚自己的水平,所以寫(xiě)下結(jié)論后非常擔(dān)心。盡管如此,我的目的是為了學(xué)習(xí),希望你發(fā)現(xiàn)錯(cuò)誤。編譯器對(duì)每個(gè)class都一視同仁。(*)dl和eax是constructorCreate實(shí)現(xiàn)的關(guān)鍵寄存器。結(jié)構(gòu)化異常處理。(*)objectreference方式的constructor調(diào)用,編譯器嘗試實(shí)現(xiàn)為inherited調(diào)。Callingconventions(register缺省調(diào)用約定,constructor和destructor函數(shù)必須?!禗elphi的原子世界》非常值得一讀。addesp,$0c;恢復(fù)堆棧,注意只恢復(fù)了12字節(jié)的堆棧,,確實(shí)是個(gè)空函數(shù)。在Win32操作系統(tǒng)上的實(shí)現(xiàn)之一。還有其他的異常處理實(shí)現(xiàn)機(jī)制,產(chǎn)生的代碼也不相同。