有關disammbly(電腦程序)的各種問題

2011-08-13 1:22 am
為什麼程序開始總是push ebp的?
我用od 載入簡單c++ helloworld 程序 :
00401030 |> \55 PUSH EBP ; C0003.main(void)
00401031 |. 8BEC MOV EBP,ESP
00401033 |. 83EC 40 SUB ESP,40
00401036 |. 53 PUSH EBX
00401037 |. 56 PUSH ESI
00401038 |. 57 PUSH EDI
00401039 |. 8D7D C0 LEA EDI,[LOCAL.16]
0040103C |. B9 10000000 MOV ECX,10
00401041 |. B8 CCCCCCCC MOV EAX,CCCCCCCC
00401046 |. F3:AB REP STOS DWORD PTR ES:[EDI]
00401048 |. 68 20104300 PUSH OFFSET 00431020 ; ASCII "Helloworld!"
0040104D |. 68 1C104300 PUSH OFFSET 0043101C ; ASCII "%s
"
00401052 |. E8 F9700000 CALL printf ; [printf
裡面mov, push, pop, sub, cmp是什麼意思?
有什麼書籍和website關於這方面的可推薦?

回答 (1)



收錄日期: 2021-04-26 00:08:20
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20110812000051KK00890

檢視 Wayback Machine 備份