Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425

    [inline assembler] programma in assembler x86 non funziona dentro __asm in VC++

    ciao a tutti

    scrivendo il seguente programma assembler:

    codice:
    mov ah,02h ; inserisci in ah la funzione di int 21h da usare(output carattere)
    mov dl,41h ; inserisci in dl 41h che in decimale è 65 ovvero A
    int 21h ; chiama l'interrupt del dos che stamperà il carattere
    int 20h ; esci dal programma

    con debug.exe funziona ma se lo inserisco in un programma C++(usando Visual C++ 6.0)

    codice:
    void main() {
    
    	__asm {
       //codice asm
    	}
    
    }
    compila ma quando eseguo viene schermo blu.

    Qualcuno saprebbe dirmi se inline assembler ha qualcosa di diverso rispetto il classico assembler x86 spiegato nei tutorials?

    ciao e grazie
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    vs6*è*un*tool*di*sviluppoa*32bit*e*quindi*non*puoi *
    istruzioni*che*lavorano*a*16*bit.
    Se*usi*il*compilatore*borland*per*tasm*o*altri*too l*che*lavorano*per*16*e*32bit*non*avrai*problemi

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da scancode
    vs6*è*un*tool*di*sviluppoa*32bit*e*quindi*non*puoi *
    istruzioni*che*lavorano*a*16*bit.
    Se*usi*il*compilatore*borland*per*tasm*o*altri*too l*che*lavorano*per*16*e*32bit*non*avrai*problemi
    grazie molto gentile, quindi ho cambio compilatore o modifico asm a 32 bit.
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    e se volessi convertire quel listato in asm a 32 bits che modifiche dovrei apportare? HO sentito che alcuni registri coma BP, Ip ecc.. hanno la e davanti se se faccio

    codice:
    mov eax, 02h
    mov dl, 41h
    int 21h
    int 21h
    da lo stesso errore in schermoi blu

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.