Définir une fonction avec des paramètres dans MASM assembleur

Je suis en train d'écrire une fonction en langage assembleur x86 qui accepte trois paramètres. Est-il possible de définir une fonction dans MASM assembleur avec plusieurs paramètres?

//this is pseudocode: I'm trying to convert this to a valid macro in MASM
//if var1 is equal to var2, jump to the label jumpToHere
function jumpIfEqual(var1, var2, jumpToHere){
    cmp var1, var2;
    je jumpToHere;
}

Si je pouvais écrire une fonction valide pour ce faire, ensuite jumpIfEqual(5, 5, jumpToHere) serait équivalent à

cmp 5, 5;
je jumpToHere;
  • Paramètres, hein? Êtes-vous l'interfaçage avec un langage de haut niveau? Êtes-vous sûr de faire de même dans les HLL ne suffira pas?
  • Non, je suis juste essayer de faire de mon code un peu moins détaillé (et plus facile à comprendre). jumpIfEqual(var1, var2, jumpToHere) est un peu plus facile à lire que cmp 5, 5; je jumpToHere;.
  • De faire une macro. Vous n'avez pas besoin d'une fonction. M dans MASM stands pour les macros 🙂
  • J'ai trouvé une introduction aux macros dans MASM ici: cs.smith.edu/~thiebaut/ArtOfAssembly/CH08/CH08-7.html
  • Est-il possible pour une macro dans MASM d'avoir plus de 2 paramètres?
  • Sûr qu'il peut. Ne pourriez-vous essayer?