標題:
有關disammbly(電腦程序)的各種問題
發問:
為什麼程序開始總是push ebp的?我用od 載入簡單c++ helloworld 程序 :00401030 |> \55 PUSH EBP ; C0003.main(void)00401031 |. 8BEC MOV EBP,ESP00401033 |. 83EC 40 SUB ESP,4000401036 |. 53 PUSH EBX00401037 |. 56 PUSH ESI00401038 |. 57 PUSH EDI00401039 |. 8D7D C0 LEA EDI,[LOCAL.16]0040103C... 顯示更多 為什麼程序開始總是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關於這方面的可推薦?
最佳解答:
mov:這是組語裡面最常見的指令,將數值記入暫存器或是將A暫存器的內涵值移入B暫存器等等. 範例語法: mov 目的,來源
其他解答:
此文章來自奇摩知識+如有不便請留言告知