0
こんにちは私はアセンブリに取り組んでいます、私の問題は再帰を使用している間にアセンブリのいくつかの変数を追跡する方法があるかどうかを知る必要があります。私はそれを呼び出すときにスタックを使用して再帰関数にパラメータを渡すことができることを知っています。たとえば、Pythonで、このコード:再帰におけるループインデックスの追跡に関する問題
def topologicalSort(node):
lista = [0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0]
size = 4
order = []
for i in range(size):
if lista[node*size+i] == 1 and (i+1) not in order:
return topologicalSort(i)
order.append(node+1) #node starts in 1
私はその完全な、しかし、私は、例えばやりたいことは機能私は関数を返したときに、私はまだインデックスを追跡することを必要とする2回呼び出されたされていないが知っていますforループの "i" アセンブリでは、ちょうどJMP
を使用して、レジスタを使用する必要がある回数を反復します。したがって、RET
が呼び出されると、カウンタの値が失われます(この場合はi)。
'lista'はローカルなのですか(' topologicalSort'を入力するたびに定義されていますか、静的/グローバル変数(呼び出しごとに1つのコピーのみ)ですか?スタックを使用してパラメータを渡すこともできますし、そこに値を格納することもできます(スタックを復元するにはretより前にポップすることをお勧めします)。 – Ped7g