百度競價排名點擊軟件seo技術培訓廣東
過程定義
過程用PROC和ENDP偽指令來聲明, 并且必須為其分配一個名字(有效的標識符) 。目前為止, 我們所有編寫的程序都包含了一個main過程, 例如:
當要創(chuàng)建的過程不是程序的啟動過程時, 就用RET指令來結束它。RET強制CPU返回到該過程被調(diào)用的地方:
過程中的標號
在默認情況下,代碼標號只在其被聲明的過程內(nèi)可見,這個規(guī)則常常影響到跳轉(zhuǎn)和循環(huán)指令.
解決這個限制的方法是聲明全局標號?, 即在名字后面加雙冒號(::)?
就程序設計而言,跳轉(zhuǎn)或循環(huán)到當前過程之外不是個好主意
USES自動壓棧和出棧指定的寄存器
?
USES操作符與PROC偽指令一起使用,能自動壓棧和出棧指定的寄存器
.386
.model flat,stdcall
option casemap:none
.stack 4096.data
var DWORD 1010h,2020h,3030h,4040hExitProcess PROTO,dwExitCode:DWORD .code ArraySum PROC USES esi ecx ;子過程
mov esi,OFFSET var
mov ecx,4040h
add ecx,2
ret
ArraySum ENDPmain PROC mov esi,1010hmov ecx,2020hcall ArraySumINVOKE ExitProcess,0
main ENDP
END main
說明:1.在子過程第一條語句執(zhí)行之前(在mov esi,OFFSET var之前),先PUSH指定的寄存器
? ? ? ? 2.在執(zhí)行ret之前,先執(zhí)行POP指定的寄存器