子程序調(diào)用指令call的操作數(shù)為p0~p62,子程序返回指sret無操作數(shù)。
圖(a)中的x10為on時(shí),call指令使程序跳轉(zhuǎn)到指針call指令使程序跳轉(zhuǎn)到指針p8處,子程序被執(zhí)行,執(zhí)行完sret指令后返回到104步。
子程序應(yīng)放在fend(主程序結(jié)束)指令之后,同一指針只能出現(xiàn)一次,cj指令中用過的指針不能再用,不同位置的call指令可以調(diào)用同一指針的子程序。
圖(a)子程序調(diào)用 (b)子程序的嵌套調(diào)用
在子程序調(diào)用子程序稱為嵌套5級。圖(b)中的call p11指令僅在x0由off變?yōu)閛n時(shí)執(zhí)行一次。在執(zhí)行子程序1時(shí),如果x1為on,call p12指令被執(zhí)行,程序跳到p12處,嵌套執(zhí)行子程序2。執(zhí)行第二條sret指令后,返回子程序1中call p12指令的下一條指令,執(zhí)行第一條sret指令后返回主程序中callp11指令的下一條指令。