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