Bonjour
Normalement, quand on utilise des fonctions de librairie, il faut passer les paramètres par la pile. C'est le cas pour linux et je pense aussi pour dos. Il faut donc déclarer une chaine contenant le format "%d\n" en l'occurence, empiler son adresse puis empiler le nombre (ax)
si le printf ne vient pas d'une librairie mais est défini ailleurs, il faut voir comment transmettre les paramètres à cette fonction.
En règle général, il est très risqué de modifier le registre bp qui sert justement souvent de cadre de pile.
Au vu du bout de code présenté, il semblerait que printf est une fonction issu d'un sous programme
que le nombre doit être entré dans le registre bp, qu'il faille un tampon intermédiaire dont l'adresse est en cx que le nombre doit faire 8 caractères ? quand au 0 dans dl ???
Bref il faut soit plus de code, soit dire d'où vient le printf