in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

problema banale (penso)....

Ultimo messaggio ricevuto il 05-12-2005 15.57 da bita78. 0 risposta(e).
Pagina 1 di 1 (1 elemento/i)
Ordina messaggi: Precedente Successivo
  • 05-12-2005 15.57

    • bita78
    • Non Valutato
    • Registrato il 06-12-2005
    • Messaggi 1

    problema banale (penso)....

    Ciao a tutti...
    premetto che è la prima volta che uso l'assembler e quindi anche MASM. Il mio problema è che quando compilo il file assembler mi dà questo errore:

    C:\masm32\mpfile.asm(66) : error A2004: symbol type conflict

    ed è relativo all'istruzione:

    MOV AX, MyData


    Qualcuno ha idea di cosa significhi questo errore?

    Uso il compilatore MASM32 versione 8.2. Può andare bene questo compilatore? Altrimenti qualcuno me ne può suggerire un altro?

    per completezza vi posto tutto il sorgente assembler:

    Grazie a tutti...ciao



    ;**************************** Stack ***************************
    MyStack    SEGMENT PARA STACK 'STACK'    ;declare stack segment

    DB 64 DUP (?)                    ;reserve 64 bytes

    MyStack ENDS

    ;**************************** Dati ****************************
    MyData      SEGMENT PARA PUBLIC 'DATA'    ;declare data segment

    _B DW ?
    _A DW ?

    MyData ENDS

    ;**************************** Codice **************************
    MyCode    SEGMENT PARA STACK 'CODE'    ;declare code segment

    ASSUME CS:MyCode, DS:MyData, SS:MyStack

    ;********* routine che stampa 1 carattere ASCII in dl**********
    STAMPA PROC
        PUSH AX
        PUSH DX
        MOV AH, 2
        INT 21H
        POP DX
        POP AX
        RET
    STAMPA ENDP

    ;****** routine che stampa gli ASCII per il binario n AX*******
    ASCIITOBIN PROC
        PUSH DX
        PUSH SI
        PUSH AX
        PUSH DI
        MOV DI, 0
        MOV SI, 10
    AGAIN:
        MOV DX, 0
        DIV SI
        ADD DX, '0'
        PUSH DX
        INC DI
        OR AX, AX
        JNZ AGAIN
    LOOPDISTAMPA:
        OR DI, DI
        JNZ FINEASCII
        POP DX
        DEC DI
        CALL STAMPA
    FINEASCII:
        MOV DL, 0DH
        CALL STAMPA
        POP DI
        POP AX
        POP SI
        POP DX
        RET
    ASCIITOBIN ENDP

    _START:
       
        MOV AX, MyData
        MOV DS, AX


    ;PUSH della costante intera 1 sullo stack.
        MOV AX, 1
        PUSH AX

    ;POP dell'identificatore A          dallo stack.
        POP AX
        MOV _A, AX

    ;PUSH della costante intera 5 sullo stack.
        MOV AX, 5
        PUSH AX

    ;POP dell'identificatore B          dallo stack.
        POP AX
        MOV _B, AX

        LEA DX, _B
        MOV AH, 09H
        INT 21H
        MOV AX, _B
        CALL ASCIITOBIN
        MOV DL, 0
        CALL STAMPA

        LEA DX, _A
        MOV AH, 09H
        INT 21H
        MOV AX, _A
        CALL ASCIITOBIN
        MOV DL, 0
        CALL STAMPA

        MOV AH, 4CH
        MOV AL, 00
        INT 21H

    MyCode ENDS
    END _START


    • Log
Pagina 1 di 1 (1 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4019/4236.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"