מידע

יוצרים Nikita Tyunyayev, Aurélien Buchet
מועד הגשה 15/03/2027 23:59:59
מגבלת הגשות 5 הגשות
כל 1 שעות
תגיות קטגוריה s4

תגיות

כניסה

TP4 - Fonction imbriquée

Le simulateur est disponible ici : http://asm.info.ucl.ac.be/ Vous pouvez trouver le syllabus ici : https://sites.uclouvain.be/LSINC1102/pfo/introduction.html


Appel de fonction dans une fonction

Vous devez récupérer les arguments passés à votre fonction. Vous ne pouvez pas utiliser directement les variables déclarées avec DB

Dans cet exercice, une fonction helper est déjà définie. Elle prend un argument dans D et retourne un résultat dans A. La fonction helper respecte la convention d'appel (elle préserve les registres B et C).

Il vous est demandé d'écrire une fonction func qui prend deux arguments et retourne helper(a) + b, où a est le premier argument et b le deuxième.

Les tests INGInious vont initialiser les variables de la façon suivante :

; Les registres B et C sont occupés, vous devez sauvegarder leur valeur si vous voulez les utiliser dans votre fonction
MOV B, [rb]
MOV C, [rc]
MOV D, [arg1]
PUSH [arg2]
CALL func
HLT
; Le label func est déjà déclaré pour vous
func:
; Votre code sera inséré ici par INGINIOUS
; La fonction helper est définie après votre code
helper:
; Corps de la fonction helper (prend D, retourne dans A)
arg1: DB "?"
arg2: DB "?"
rb: DB "?"
rc: DB "?"

; Corps de la fonction