第5章:程序内容摘要:

,使用二個暫存器 • SS (堆疊片段 ) • ESP (堆疊指針 ) * * SP in Realaddress mode 23 PUSH 運算 (1 of 2) • 一個 32位元推動行動漸減堆疊指針在 4 之前而且拷貝價值進入被堆疊指針指向的地點。 24 PUSH 運算 (2 of 2) • 相同的堆疊在推動另外二個整數之後 : 在 ESP 下面的區域總是可得的。 (除非堆疊已經氾濫) 25 POP 運算 • 副本進入一個暫存器或變數之內在堆疊 〔 ESP〕 評價 . • 把 n 加入 ESP, n 是或 2 或 4. • n 的價值靠接受資料的運算元的屬性 26 PUSH 和 POP 指令 • PUSH 語法 : • PUSH r/m16 • PUSH r/m32 • PUSH imm32 • POP 語法 : • POP r/m16 • POP r/m32 27 使用 PUSH 和 POP push esi。 push registers push ecx push ebx mov esi,OFFSET dwordVal。 display some memory mov ecx,LENGTHOF dwordVal mov ebx,TYPE dwordVal call DumpMem pop ebx。 restore registers pop ecx pop esi 當他們包含重要的價值時候,解救而且回復暫存器. PUSH和POP協議指導在相反的次序中發生 . 28 例子 :築巢環路 mov ecx,100。 set outer loop count L1:。 begin the outer loop push ecx。 save outer loop count mov ecx,20。 set inner loop count L2:。 begin the inner loop。 loop L2。 repeat the inner loop pop ecx。 restore outer loop count loop L1。 repeat the outer loop 當創造一個被巢狀環路的時候,在進入內部的環路之前推動外部的環路櫃台 : 29 例子 :字串倒轉 • 和編入索引一起使用一個環演說 • push在堆疊上的每個字符 • 從最初的地方開始字串,彈出在反面的次序中的堆疊,進入字串之內把每個字符插入回來 • 原始碼 • Q: 壓入之前,為什麼每個字符必須被提出 EAX? 因為只有字 ( 16 位元)或 doubleword( 32 位元)價值能是急忙前進壓入。 30 你輪到的 . . . • 以相反規劃的字串作為出發點 , • 1:修正計畫,如此使用者能輸入在 1 和 50個字符之間包含的字串 . • 2:修正計畫,如此它輸入來自使用者的一連串的 32 位元整數,然後在反面的次序中顯示整數 . 31 相關的指令 • PUSHFD 和 POPFD • push 和 pop the EFLAGS 暫存器 • PUSHAD 推動在堆疊上的 32 位元泛用型的暫存器 • 命令 : EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI • POPAD 在反面的次序中從堆疊彈出相同的暫存器 • PUSHA 和 POPA 為 16 位元暫存器做一樣的 32 你輪到的 . . . • 寫一個跟隨的計畫 : • 分配整數價值到 EAX , EBX , ECX , EDX , ESI 和 EDI • 使用 PUSHAD 推動在堆疊上的泛用型的暫存器 • 使用一個環路,你的計畫應該彈出來自堆疊的每個整數而且在螢幕上顯示它 33 下一章 • 連結外部函式庫 • 本書所用的連結函式庫 • 堆疊運算 • 定義和使用程序 • 運用程序的程式設計 34 定義和使用程序 • 創造程序 • 程序的註解說明 • 例子: SumOf 程序 • CALL 和 RET 指令 • 巢狀程序呼叫 • Local 和 Global 標籤 • 程序參數 • 流程表象徵 • USES 運算 35 創造程序 • 大的問題能被區分為更小的工作使他們變成更易辦 • 一個程序是美國金屬學會同等 Java 或 C++函數 • 下列各項是一個被命名的組合語言程序 • 例子 : sample PROC . . ret sample ENDP 36 程序的註解說明 • 所有工作的描述完成的藉著程序 . • 接受:一連串的輸入參數;陳述他們的用法和需求。 • 回返:被程序歸還的價值的描述 . • 需要:在程序被叫做之前,需求的可選擇目錄呼叫了一定要被滿意的先決條件。 為每個程序建議了文件 : 如果一個程序沒有被滿意它的先決條件被叫,它可能將不生產預期的輸出 . 37 例子 :程序的總數。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。