子程序的遞歸調用和重入

遞歸調用子程序html

若是一個子程序直接調用他本身,這種調用稱爲字節遞歸調用,若是一個子程序間接調用本身,這種調用稱爲間接遞歸調用算法

遞歸調用子程序必須採用寄存器或堆棧傳遞參數,遞歸的深度受到堆棧空間的限制函數

下面的子程序遞歸調用實現求階乘spa

;子程序說明 FACT
;功能,計算N!
;入口參數:(AX) =  n
;出口參數:(AX) = n!
;說明採用遞歸算法實現求階乘,n不能超過8

FACT PROC
       PUSH DX
       MOV DX,AX
    CMP AX,0
    JZ DONE
    DEC AX  求n-1
    CALL FACT
    MUL DX
    POP DX
    RET
    DONE:MOV AX,1由於0的階乘等於1
    POP DX
    RET
    FACT ENDP

 

 可重入子程序設計

子程序的可重入是指子程序在中斷後被從新調用,子程序的重入不一樣於子程序的遞歸,衝入是被動行爲,而遞歸是主動行爲,重入前的調用和重入調用每每是不相干的,而遞歸調用這是密切相關code

 

咱們把能夠從新進入的子程序稱爲可重入子程序,再設計可重入子程序的時候,必須注意如下幾點htm

【1】不能利用約定的存儲單元傳遞參數blog

【2】不能使用約定的存儲單元保存中間值遞歸

可重入函數在之後的設計中會提到,這裏只作通常的瞭解get

 

版權全部,轉載請註明連接地址:http://www.cnblogs.com/fengdashen/p/3715520.html

相關文章
相關標籤/搜索