?? asslandat82.dat
字號:
過程調(diào)用指令 CALL
指令格式:CALL OPRD
其中OPRD為過程的目的地址。
過程調(diào)用可分為段內(nèi)調(diào)用和段間調(diào)用兩種。尋址方式也可以分為直接尋址和間接尋址兩種。
本指令不影響標志位。
<1>段內(nèi)直接調(diào)用:CALL NEAR類型的過程名
每一個過程在定義時,應指定它是近類型(NEAR),還是遠類型(FAR)。本指令是段內(nèi)直接調(diào)用,因而過程與調(diào)用指令同處在一個代碼段內(nèi)。 在執(zhí)行該調(diào)用指令時,首先將IP的內(nèi)容入棧保護,然后由指令代碼給出的目的地址段內(nèi)偏移量送入IP,從而實現(xiàn)過程調(diào)用,將程序轉(zhuǎn)至過程 入口。
<2>段內(nèi)間接調(diào)用:CALL OPRD
其中OPRD為16位通用寄存器或存儲器數(shù)。
本指令執(zhí)行時,首先將IP的內(nèi)容入棧保護,然后將目的地址在段內(nèi)偏移量由指定的16位寄存器或存儲器字中取至IP中,從而實現(xiàn)過程調(diào)用。
例如:CALL BX
CALL WORD PTR [BX+SI+20]
注意:寄存器間接調(diào)用時,寄存器不用方括號括起來。如果用方括號,則為存儲器操作數(shù)間接調(diào)用。
<3>段間直接調(diào)用:CALL FAR類型的過程名
由于是段間調(diào)用,在指令執(zhí)行時,應同是時將當前的CS及IP的值入棧保護,然后將FAR類型的過程名所在的段基址和段內(nèi)偏移值送CS及IP, 從而實現(xiàn)過程調(diào)用。
<4>段間間接調(diào)用:CALL DWOPRD
其中DWOPRD為存儲器操作數(shù),段間間接調(diào)用只能通過存儲器雙字進行。本指令執(zhí)行時,首先將當前的CS及IP的值入棧保護,然后將存儲器雙 字操作數(shù)的第一個字的內(nèi)容送IP,將第二個字的內(nèi)容送CS,以實現(xiàn)段間調(diào)用。
例如:CALL DWOPRD PTR[SI]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -