Ragazzi, ho risolto!
codice:
#include<stdio.h>
#pragma inline

void stampa(char *);

void main(void){

     printf("Vediamo un po'se funziona..\n");
     stampa("Hello world\r\n$");
     asm xor ax,ax; //attendi un tasto
     asm int 0x16;
}

void stampa(char *stringa)
{
//   asm mov ax,SEG stringa;    Questa riga
//   asm mov ds,ax;             e questa non servono!
     asm mov dx,OFFSET stringa;
     asm mov ah,0x09;
     asm int 0x21;
}
Erano le righe dedicate al Segment della stringa che non servivano perchè probabilmente il mio compilatore utilizza di default un modello di memoria in cui Data segment e Code segment sono lo stesso, dovrei studiamrmi meglio quella roba :rollo:. In effetti poi serviva anche il $, me l'ero dimenticato, grazie DYNAM!C+, e la stringa andava passata come puntatore a char e non come array di char, grazie oregon. Bene, ora potrò riprendere a dormire felice . Al prossimo grattacapo