Problemi con Tasm32/Tlink32

di Anonimizzato12568 il
10 risposte
Ciao a tutti!
Dunque, io ho un nuovo programma da fare in assembly e so già che per farlo dovrò utilizzare dei registri estesi, quelli che ci sono a partire dall'assembly 80386...
Ora il punto è che di questi io ne ho sentito parlare poco e in rete qualcosa ho trovato ma non mi spiegano come poter compilare un programma con questi registri...
Un mio compagno mi ha passato tutto il necessario per compilare con tasm32 ma non mi è stato spiegato come fare...
Se compilo con tasm32 serve il .386 ad inizio file o sto facendo solo un gran casino?!
Ho provato a compilare con tasm32 e tlink32 il primo programmino in assembly che avevo fatto giusto per capire come procedere e se potevo riutilizzare alcune delle funzioni che usavo lì anche per il nuovo programma, sia che io metta il .386 che no il problema è sempre lo stesso...il tasm32 va a buon fine ma il tlink32 mi da il seguente errore:
"Fatal: 16bit segments not supported in module prova.asm"

Ora non so se sbaglio qualcosa io a compilare o se il problema è un altro perchè avevo letto che comunque anche con Assembly 80386 avevo a disposizione sia i registri a 16 bit (AX, BX etc.) che quelli a 32 bit (EAX, EDX...)

Grazie a chiunque abbia il tempo di darmi una mano!

10 Risposte

  • Usa TASM32 per compilare e TLINK per linkare
  • Geniale! Grazie mille!
  • No ... non è geniale ...

    Il fatto è che usi registri e codice a 32 bit (quindi compili con TASM32) e segmenti a 16 bit (quindi TLINK) ...
  • Mmm...ma se iniziassi a usare anche segmenti a 32 bit oltre a quelli a 16 bit quindi?!
  • Non puoi usarli in programmi DOS.

    Devi scrivere programmi per Win32
  • Mi tocca partire da zero, ma un'altra domanda...con i registri estesi posso ancora dividerli in parte alta e bassa?! Quindi come usavo per esempio AH e AL usare EAH e EAL?!
  • Puoi usare le varie parti ma li chiami come hai sempre fatto ...

    EAX
    AX
    AH
    AL
  • Mmm...scusami ma non capisco...

    Quindi sarebbe
    EAX = 32 bit
    AX = 16 bit?! Ed è praticamente una parte e basta del registro EAX?!
    AL e AH = 8bit?! Sono sempre parte alta e bassa del registro AX?!

    E poi...quindi quando inizio ad usare EAX dovrò compilare con TLINK32?!
  • Mari91 ha scritto:


    EAX = 32 bit

    AX = 16 bit?! Ed è praticamente una parte e basta del registro EAX?!
    Sì, parte bassa
    AL e AH = 8bit?! Sono sempre parte alta e bassa del registro AX?!
    Rispettivamente, bassa e alta di AX
    E poi...quindi quando inizio ad usare EAX dovrò compilare con TLINK32?!


    P.S. Perché non leggi qualcosa di base sull'argomento?

  • Grazie mille! Qualcosa avevo trovato ma appunto i dubbi mi erano rimasti...
    Appena ho un attimo di tempo do una letta anche al link che mi hai passato!
Devi accedere o registrarti per scrivere nel forum
10 risposte