第一步 初始化 建立mian函式的棧幀結構。
第二步 初始化 儲存 變數「a」
第三步 初始化 儲存 變數「b」
第四步 將變數「b」的值儲存到 暫存器 「eax」 並將 暫存器壓入 「main」 函式的棧幀中。
第五步 將變數「a」的值儲存到 暫存器 「ecx」 並將 暫存器壓入 「main」 函式的棧幀中。
2,隨即,跳轉至指定函式。(jmp)
第七步 將 「ebp」暫存器中的位址 壓入棧中;
第八步 將「ebp」棧底暫存器下移 與「esp」重合;
第九步 將「esp」棧頂暫存器下移44h,建立屬於my-add的棧幀
;第十步 將「ebp」+8即「a」的值寫入「eax」暫存器後,再與「ebp」+12即「b」完成相加。相加後的值存入「eax」暫存器壓入my-add函式的棧底。
第十一步 返回 將「ebp」-4即z的值儲存在暫存器「eax」中。
第十二步 將「esp」暫存器與「ebp」重合,釋放my-add函式的棧幀。
第十三步 「pop」指令將「main-ebp」放入「ebp」暫存器,「esp」棧頂暫存器隨機上移,「ebp」暫存器回到「main」函式棧底。
第十四步 「ret」指令 跳出函式 將「main-ret」儲存到「eip」暫存器。
第十五步 「esp」棧頂暫存器上移8回到最初的位置;將「eax」中存放的z的值即a+b賦值給c變數。
第一章 簡單的順序程式
1.1 a b問題 小朋友 include int main 犇犇 include int main 1.2 比較char型的ascii碼大小 小朋友 include int main else return 0 犇犇 include int main 1.3 有關四則運算的練習 小朋友 inclu...
第一章實驗 簡單的C 程式
實驗目的和要求 1.熟悉code blocks 16.01編譯系統的常用功能。2.學會使用code blocks 16.01編譯系統實驗的c 程式。3.熟悉c 程式的基本結構,學會使用簡單的輸入 輸出操作。實驗內容 1.編譯下列程式,改正所出現的錯誤資訊,並寫出輸出結果。執行結果如下 修改程式如下 ...
乙個程式猿寫的網遊小說(第一章 少年阿九)
幾年前在企業裡外包做erp系統那段時間,有段時間特別閒,就心思著寫網遊 磨磨唧唧就寫了那麼一章節,在qq閱讀上發布了,後來斷更了,qq閱讀就給下架了,也曾用了許多心思,想來浪費,發在csdn裡記錄一下 想當初高中時代就立志搞網遊開發之類的發家致富,後來現實磋磨,逐漸認清這理想的成本太高,已然負擔不起...