Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    26

    Esercizio assembler??!!

    Salve a tutti ragazzi, ho bisogno di aiuto, ho implementato il codice per convertire una DWORD (un numero) nella corrispondente stringa di caratteri ASCII che lo rappresenta. Però mi da una serie di errori che non riesco a capire. Potete dargli un'occhiata?
    Grazie in anticipo

    #include <stdio.h>
    void main()
    {
    //Variabili
    int num=-123456789; //il numero (32 bit in complemento a 2)
    char risultato[12]; //da riempire con la rapp. ascii del num. in base 10
    char cifra;
    //Blocco Assembler
    __asm
    {
    mov esi,0
    mov eax,num
    neg eax
    SE: cmp eax,0
    jg FINESE
    mov ecx,45
    mov risultato[esi],ecx
    inc esi
    jmp CICLO
    FINESE:
    CICLO: cmp num,0
    je FINECICLO
    mov eax,num
    div 10
    xor ecx,ecx
    mov ecx,al
    mov num,ah
    add ecx,48
    mov risultato[esi],ecl
    jmp CICLO
    FINECICLO:
    }
    //Stampa su video (i due numeri stampati come stringhe devono essere identici)
    printf("La rappresentazione del numero %d e': %s\n",num,risultato);
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Che errori ti da?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    26
    1) Error 1 error C2443: operand size conflict line:17

    2) Error 2 error C2415: improper operand type line:24

    3) Error 3 error C2443: operand size conflict line:26

    4) Error 4 error C2443: operand size conflict line:27

    5)Error 5 error C2415: improper operand type line:29


    Non riesco proprio a capire.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma scusa, perchè non esamini un errore alla volta?

    Primo errore

    Error 1 error C2443: operand size conflict line:17

    a quale linea si riferisce?

    e cosa vuol dire 'operand size conflict' ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    26
    Li ho messi tutti poichè un ragazzo me li ha chiesti. Comunque il primo errore si riferisce alla riga "mov risultato[esi],ecx", e forse è il tipo con cui ho dichiarato il vettore risultato...
    Non so voi cosa dite?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da carlogts
    Li ho messi tutti poichè un ragazzo me li ha chiesti.
    Sì ... non intendevo questo ... volevo dirti che, una volta che hai tutti gli errori, comincia ad esaminare il primo e tenta di risolverlo ... no?

    Comunque il primo errore si riferisce alla riga "mov risultato[esi],ecx", e forse è il tipo con cui ho dichiarato il vettore risultato...
    Non so voi cosa dite?
    Dico che risultato è un vettore di "char" (ovvero singoli byte) mentre ecx è un valore a 32 bit ovvero un int. Quindi ti sta dicendo che vuoi inserire un valore a 32 bit dentro un contenitore ad 8 bit ... e non può essere.

    Quindi non va bene ecx ma deve essere un registro a 8 bit (ad esempio cl)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    26
    Ho provato, sia con cl che con dl ma non va lo stesso.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non può essere ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    26
    Eh, purtroppo si...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti ripeto che non è così ... facci vedere meglio il nuovo codice che hai scritto e l'errore che ancora hai.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.