Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [Assembly]Errori compilazione

    Ave populus
    ho trovato questo listato su una guida di un sito
    codice:
    ; This is a simple program which displays "Hello World!"
    ; on the screen.
     
    .model small
    .stack 
    .data 
    
    Message db "Hello World!$" 	; message to be display
    
    .code 
    
    mov dx,OFFSET Message 	; offset of Message is in DX 
    mov ax,SEG Message 	; segment of Message is in AX
    mov ds,ax 		; DS:DX points to string 
    
    mov ah,9 		; function 9 - display string 
    int 21h 		; call dos service 
    mov ax,4c00h 		; return to dos DOS 
    int 21h 
    
    END start 		;end here
    ma quando vado a compilarlo (compilo con GNU as) mi dā tutti questi errori:
    d:\hello.asm: Assembler messages:
    d:\hello.asm:1: Error: no such instruction: `this is a simple program which disp
    lays "Hello World!"'
    d:\hello.asm:2: Error: no such instruction: `on the screen.'
    d:\hello.asm:4: Error: unknown pseudo-op: `.model'
    d:\hello.asm:5: Error: unknown pseudo-op: `.stack'
    d:\hello.asm:8: Error: no such instruction: `message db "Hello World!$"'
    d:\hello.asm:8: Error: no such instruction: `message to be display'
    d:\hello.asm:10: Error: unknown pseudo-op: `.code'
    d:\hello.asm:12: Error: too many memory references for `mov'
    d:\hello.asm:12: Error: no such instruction: `offset of Message is in DX'
    d:\hello.asm:13: Error: too many memory references for `mov'
    d:\hello.asm:13: Error: no such instruction: `segment of Message is in AX'
    d:\hello.asm:14: Error: too many memory references for `mov'
    d:\hello.asm:14: Error: no such instruction: `dx points to string'
    d:\hello.asm:16: Error: too many memory references for `mov'
    d:\hello.asm:16: Error: no such instruction: `function 9 - display string'
    d:\hello.asm:17: Error: junk `h' after expression
    d:\hello.asm:17: Error: suffix or operands invalid for `int'
    d:\hello.asm:17: Error: junk `service' after expression
    d:\hello.asm:18: Error: too many memory references for `mov'
    d:\hello.asm:18: Error: no such instruction: `return to dos DOS'
    d:\hello.asm:19: Error: junk `h' after expression
    d:\hello.asm:19: Error: suffix or operands invalid for `int'
    d:\hello.asm:21: Error: no such instruction: `end start'
    d:\hello.asm:21: Error: no such instruction: `end here'
    come mai?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il sorgente mi sembra adatto a MASM della Microsoft.

    Probabilmente as (che non conosco) segue altre regole.

    Ad esempio non sembra che il carattere per i commenti sia il ; (infatti genera un errore).

    E non conosce le direttive

    .model
    .stack
    .data

    e altro ...

    Studia un po' l'help di as (e magari un sorgente d'esempio scritto per tale assembler) e adatta il sorgente che hai trovato.

  3. #3
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    allora ho cercato e trovato questo:
    http://racl.oltrelinux.com/tutorial/gas.html
    che č apposta per as o gcc per assembler:
    codice:
    ; gashello.S==========================================================
    .text
    message:
    .ascii "Helloooo, nurse!\0"
    
    .globl main
    
    main:
        pushl $message
        call puts
        popl %eax
        ret
    ; EOF =================================================================
    ma sia compilandolo con as sia con gcc non vā:
    d:\hello.s: Assembler messages:
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Error: bad expression
    d:\hello.s:2: Warning: missing operand; zero assumed
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    d:\hello.s:14: Error: bad expression
    ma perchč???

  4. #4
    mi sembra una specie di assembly semplificato

    scaricati MASM, quel link comunque l'ho trovato io e c'ho i diritti


    Comunque sto usando TASM5 e anche a me quei codici non andavano ( poi li ho modificati e mi sono andati tutti )


    prova a scaricare MASM...
    PaTeR
    From Ban to Life

  5. #5
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da PaTeR non PeTeR
    mi sembra una specie di assembly semplificato

    scaricati MASM, quel link comunque l'ho trovato io e c'ho i diritti


    Comunque sto usando TASM5 e anche a me quei codici non andavano ( poi li ho modificati e mi sono andati tutti )


    prova a scaricare MASM...
    ma masm č gratuito
    dove lo trovo visto che nella sezione download del sito M$ non l'ho trovato

  6. #6
    Originariamente inviato da Aki
    ma masm č gratuito
    dove lo trovo visto che nella sezione download del sito M$ non l'ho trovato
    http://www.google.it/search?hl=it&q=masm+download&meta=
    PaTeR
    From Ban to Life

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Basta leggere il numero della linea in cui c'e' l'errore ..

    la 2 e la 14 e corrispondono a quelle dei commenti che tu avrai spezzato in due ma che sono uniche ...

    Comunque, eliminale e riprova, ovvero utilizza il codice

    .text
    message:
    .ascii "Helloooo, nurse!\0"

    .globl main

    main:
    pushl $message
    call puts
    popl %eax
    ret

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 © 2024 vBulletin Solutions, Inc. All rights reserved.