過程調用指令CALL_第1頁
過程調用指令CALL_第2頁
過程調用指令CALL_第3頁
過程調用指令CALL_第4頁
過程調用指令CALL_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、過程調用指令CALL1.段內直接調用 CALL near_proc ; (SP)(SP)-2 , (SP)+1: (SP)(IP) ; (IP)(IP)+disp 指令的操作數是一個近過程,該過程在本段內。指令的操作數是一個近過程,該過程在本段內。 指令匯編以后,得到指令匯編以后,得到CALL的下一條指令與被調用的過程入的下一條指令與被調用的過程入 口地址之間的口地址之間的16位相對位移量位相對位移量disp。 指令的操作是將指令指針指令的操作是將指令指針IP壓入堆棧,然后將相對位移量壓入堆棧,然后將相對位移量disp加到加到IP上,從而使程序轉移到被調用的過程處執行。上,從而使程序轉移到被調

2、用的過程處執行。 相對位移量相對位移量 disp的范圍為的范圍為-32768+32767,占,占2個字節,段個字節,段內直接調用指令為內直接調用指令為3字符指令。字符指令。例如:例如: NAME1 PROC FAR CALL NAME2 RET NAME2 PROC NEAR RET NAME2 ENDP NAME1 ENDP2.段內間接調用 CALL reg16/mem16 ; (SP)(SP)-2 , (SP)+1:(SP)(IP) ; (IP)(reg16)/(mem16) 指令的操作數是一個指令的操作數是一個16位的寄存器或存儲器,其中的內容是位的寄存器或存儲器,其中的內容是一個近過程

3、的入口地址。一個近過程的入口地址。 本指令將本指令將IP寄存器壓入堆棧,然后將寄存器或存儲器的內容寄存器壓入堆棧,然后將寄存器或存儲器的內容傳送到傳送到IP。例如:例如: CALL AX CALL WORD PTR BX (BX所指內存字單元中存放的是子程序的偏移量所指內存字單元中存放的是子程序的偏移量) 假設某程序中定義了字變量假設某程序中定義了字變量SADR CALL SADR3.段間直接調用 CALL far_proc ; (SP)(SP)-2 , (SP)+1:(SP)(CS) ; (CS)SEG far_proc ; (SP)(SP)-2 , (SP)+1:(SP)(IP) ; (I

4、P)OFFSET far_proc 指令的操作數是一個遠過程,該過程在另外的代碼段內。指令的操作數是一個遠過程,該過程在另外的代碼段內。 段間直接調用指令先將段間直接調用指令先將CS中的段地址壓入堆棧,并將遠過中的段地址壓入堆棧,并將遠過程所在段的段地址程所在段的段地址SEG far_proc送入送入CS;再將;再將IP中的偏移地中的偏移地址壓入堆棧,然后將遠過程的偏移地址址壓入堆棧,然后將遠過程的偏移地址OFFSET far_proc送送入入IP。例如:例如:CODE1 SEGMENT CALL RRR CODE1 ENDS CODE2 SEGMENT RRR PROC FAR RET RR

5、R ENDP CODE2 ENDS 4.段間間接調用 CALL mem32 ; (SP)(SP)-2 , (SP)+1:(SP)(CS) ; (CS)(mem32+2) ; (SP)(SP)-2 , (SP)+1:(SP)(IP) ; (IP)(mem32) 指令的操作數是一個指令的操作數是一個32位的存儲器地址。位的存儲器地址。 指令的操作是先將指令的操作是先將CS壓入堆棧,并將存儲器操作數的后壓入堆棧,并將存儲器操作數的后兩個字節送入兩個字節送入CS;再將;再將IP壓入堆棧,然后將存儲器操作數壓入堆棧,然后將存儲器操作數的前兩個字節送入的前兩個字節送入IP,于是程序轉到另一個代碼段的遠過程,于是程序轉到另一個代碼段的遠過程處執行。處執行。例如:例如:CALL DWORD PTR BX (BX所指內存雙字單元中存放的是子程序的偏移量所指內存雙

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論