Jump to content
Rpg²S Forum
  • 0

Compilazione in assembly


DaD
 Share

Question

Qualcuno mi spiega perchè non riesco a compilare questo semplice programma in assembly con il prompt di dos?

 

;Siete tutti gay programma by DaD :O
.MODEL small
.STACK 100h

.DATA
Che_Guardi DB "Che ghezz ti guardi gay? ",13,10,'$'

.CODE 
mov ax,SEG Che_Guardi
mov ds,ax 
mov dx,OFFSET Che_Guardi
mov ah,09h 
int 21h 
mov ah,4Ch 
int 21h 
END

 

Ora tralascinado l'originalità del programma (XD), io da quanto ho capito dovrei compilare il programma in dos (giusto?), indi vado nel promopt indico la posizione del file .asm e quello mi dice che ...

 

"C:\ tasm" non è riconoscibile come comando interno o esterno, un programma eseguibile o un file batch.

 

Ora mi sa che l'errore lo faccio nel prompt ma non capisco che tipo di errore sia, infatti per compilarlo mia sorella mi disse che bisogna usare il comando TASM che dopo aver analizzato il sorgente ti ridà l'exe compilato, ma a quanto pare o mia sorella dice boiate oppure sono io che non ho capito una mazza :|

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

Recommended Posts

  • 0

Se non hai i file Tasm e altri che non ricordo (anche se basta questo) non puoi compilare ;O;

Appena puoi ti spiego un po' su Msn :*

 

Ps. se sei agli inizi non specificare quanto stack ti serve, ometti il valore ;)

 

Pss. non ricordo benissimo, ma mi pare che la stringa non sia esattamente così. Poi in ax all'inizio ti conviene mettere @data, che prende tutti i dati, questo nel caso ne avessi più di uno. Metti sempre delle etichette:

 

BEGIN:

 

ecc., servono sempre.

Mai rimanere in debito con i giudici di un contest...

 

 

http://img141.imageshack.us/img141/7035/renrenbf8.gif

Powered by Piccolo©

Link to comment
Share on other sites

  • 0

Mmm il file tasm c'è lo perchè uso turbo assembler 3.2 (Che ho trovato sul portatile di mia sorella XD), quindi non so davvero perchè non me lo faccia compilare :\

 

Per quanto riguarda le etichette è vero servono sempre ma per quella cagata che deve fare il programma può anche andare così per ora XD

Appena posso vengo su msn e mi spieghi tutto per bene :*

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

  • 0

Per sicurezza ho messo tutto in C per non andare fra cartelle, e non me lo fa andare lo stesso :\

Ragna ma mi sbagno oppure se non metto lo stack me lo imposta a 200h no? o_

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

  • 0

Beh, di stack non te ne serve chissà quanto, non fai enanche operazioni di push e pop, quindi in pratica non lo usi. Lascia vuoto, così ci pensa lui a prenderselo quando serve e se dovesse servire.

Dimmi esattamente cosa scrivi.

 

EDIT: ora che mi viene in mente, potrebbe essere la path sbagliata. Vai in risorse del computer-->proprietà--->avanzate--->variabili di ambiente: se non esiste una variabile path creala tu e mettici dentro il percorso della cartella tasm, sennò modificala mettendoci un bel ; e aggiungendo il percorso suddetto.

 

EDIT2: mi sta tornando in mente tutto XD

Dopo il comando tasm hai fatto il linkaggio?

 

C:\> tasm nome_programma.asm

C:\> tlink nome_programma

C:\> nome_programma

Mai rimanere in debito con i giudici di un contest...

 

 

http://img141.imageshack.us/img141/7035/renrenbf8.gif

Powered by Piccolo©

Link to comment
Share on other sites

  • 0

Ora funge tutto XD

In pratica non c'era la variabile path e mi diceva che tasm non potevo usarlo, adesso invece me lo fa usare thx ragna :*

Adesso si passa a cose piu' serie però è_é

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

  • 0

Allora l'assembler è il programma che si occupa della compilazione di un programma scritto in assembly.

In pratica è un compilatore che traduce in linguaggio macchina binario un programma scritto in assembly appunto.

Di assembler c'è ne sono parecchi a quanto ne so, ma sinceramente conosco solo quello di Microsoft ovvero il MASM e quello sotto licenza GNU NASM.

 

Mentre da come avrai capito (Spero XD) l'assembly è un linguaggio di programmazione vero e proprio, uno dei piu' vicini al linguaggio macchina, se non quello piu' vicino °°

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

  • 0
Sinceramente non so la differenza, anche perchè su un vecchio libro di scuola li chiamava nello stesso modo >.<

Mai rimanere in debito con i giudici di un contest...

 

 

http://img141.imageshack.us/img141/7035/renrenbf8.gif

Powered by Piccolo©

Link to comment
Share on other sites

  • 0
Non è potenzialmente più potente, è! più potente. Ovviamente dipende tutto dalle capacità del programmatore.

Mai rimanere in debito con i giudici di un contest...

 

 

http://img141.imageshack.us/img141/7035/renrenbf8.gif

Powered by Piccolo©

Link to comment
Share on other sites

  • 0

Dunque consiglio a tutti come compilatore assembler Masm 13 by irvine.

E' completo di tutto e molto versatile. Tutti i miei programmi i asm li ho sempre fatti con quello.

Comuque l'assembler è il linguaggio di programmazione a basso livello quindi è si il piu' vicino al linguaggio macchina.

E malgrado le apparenze ci fate di tutto con l'asm

Vieni a visitare Multi Saga, la community dove puoi mostrarci le tua creazioni di ogni genere

link

Partecipante al Rpg2s.net Game Contest 2007/2008

http://www.rpg2s.net/contest/GameContest0708/userbar_r2sgc.gif

Gioco in Sviluppo: Progetto segreto(by Maske Software)

 

Ecco la dimostrazione del secolo!!!!!!!(by Axel Lucius Kantaros)

Le abbreviazioni sono da truzzi.

La grammatica è da fighi.

La grammatica è utilizzata correttamente da chi non è truzzo.

Quindi i truzzi non sono fighi.

Link to comment
Share on other sites

  • 0
Non è potenzialmente più potente, è! più potente. Ovviamente dipende tutto dalle capacità del programmatore.

Diciamo che non è proprio vero il più potente rimane e rimmarrà il linguaggio macchina il piccolissimo problema, ma proprio piccolo è capirci qualche cosa in tutta quella serie di 0 e 1 :chirol_bak2:

come cosa il prossimo progetto di programmazione di dad sarà in linguaggio macchina secondo me ormai farà di tutto partendo dal RGSS è arrivato all'assembly :chirol_iei2:

http://img212.imageshack.us/img212/7639/betaew0.jpg

 

 

Progetti in fase di costruzione:

Guida all'uso di RPG MAKER XP link

Link to comment
Share on other sites

  • 0
Se ricordarsi file interminabili di 0 e 1 come si faceva ai tempi ti sembra potente >.< Basta un piccolo errore e va tutto a quel paese, mentre con semplicissime istruzioni che si traducono immediatamente in linguaggio macchina è molto meglio.

Mai rimanere in debito con i giudici di un contest...

 

 

http://img141.imageshack.us/img141/7035/renrenbf8.gif

Powered by Piccolo©

Link to comment
Share on other sites

  • 0
Se ricordarsi file interminabili di 0 e 1 come si faceva ai tempi ti sembra potente >.< Basta un piccolo errore e va tutto a quel paese, mentre con semplicissime istruzioni che si traducono immediatamente in linguaggio macchina è molto meglio.

bè si è vero che basta un errore e sei fottuto però da quanto ne so io l'assembly e di un livello più alto rispetto al macchina (alto intendo come linguaggio di alto o basso livello) si può dire che ad un pc con il linguaggio macchina puoi far fare qualsiasi cosa! con l'assembly non so

http://img212.imageshack.us/img212/7639/betaew0.jpg

 

 

Progetti in fase di costruzione:

Guida all'uso di RPG MAKER XP link

Link to comment
Share on other sites

  • 0
Le istruzioni in assembly sono direttamente traducibili come 0 e 1, è fatto proprio per evitare che ci si debba ricordare file interminabili in binario, e ci puoi fare tutto.

Mai rimanere in debito con i giudici di un contest...

 

 

http://img141.imageshack.us/img141/7035/renrenbf8.gif

Powered by Piccolo©

Link to comment
Share on other sites

  • 0

L'assembly.....che bello

Ecco un mio programmino semi incompleto:

dosseg
.model small
.stack
.data
    
    nome db"name$"
    pass db "pass$"
    insenome db "Login:$"
    inspass db "Password:$"
    passsbagl db "password errata.$"
    nomesbagl db "nome errato.$"
    menu db "men—$"
    prog1 db "1) calcolatrice$"
    prog2 db "2) crivello di Eratostene$"
    exit db "3) uscita$"
    scelta db "Esegui la scelta$"
    finepass db "Password inserita per pù di tre volte in modo errato. Programma terminato$"
    finenome db "Login inserito per pù di tre volte in modo errato. Programma terminato$"
    scelta1 db 31h;1
    scelta2 db 32h;2
    scelta3 db 33h;3
    inprog1 db "Calcolatrice$"
    inprog2 db "Crivello di Eratostene$"
    scel_novali db "Scelta non valida. Reinserire la scelta$"
    uscita db "Premere Esc per tornare al menù principlae$"
    nome_ins db 7,0,2 
    pass_ins db 7,0,2
    

.code
.startup


         mov ax,ds
         mov es,ax


;pulizia del buffer
mov ah,0Ch
int 21h

;pulizia dello schermo
mov ax,03h
int 10h

mov bx,02h
;inserimento del nome



insnome:  lea dx,insenome
         mov ah,09h
         int 21h
         call capo
         lea dx,nome_ins
         mov ah,0Ah
         int 21h
         call capo
         cmp bx,00h
         je imposs_nome
         lea si,nome
         lea di,nome_ins         
         inc di
         inc di
         jmp controllonome
       
imposs_nome: call capo
            mov ah,09h
            int 21h
            call capo
            lea dx,finenome
            mov ah,09h
            int 21h
            jmp fine
           

controllonome:mov cx,05h
             repe cmpsb
             jz inserpass1
             call capo
             lea dx,nomesbagl
             mov ah,09h
             int 21h
             dec bx
             jmp insnome

      
;pulizia del buffer
inserpass1: mov ah,0Ch
           int 21h
           mov cx,05h
           mov bx,02h
           jmp inserpass

;richiedo l' inserimento della pasword
inserpass:call capo
         lea dx,inspass
         mov ah,09h
         int 21h
         call capo
         lea dx,pass_ins
         mov ah,0Ah
         int 21h
         call capo
         cmp bx,00h
         je imposs
         mov ax,ds
         mov es,ax
         lea si,pass
         lea di,pass_ins         
         inc di
         inc di
         jmp controllo


imposs: lea dx,passsbagl
       mov ah,09h
       int 21h
       call capo
       lea dx,finepass
       mov ah,09h
       int 21h
       jmp fine

;controllo se Š corretta

controllo:mov cx,05h
         repe cmpsb
         jz uguali
         call capo
         lea dx,passsbagl
         mov ah,09h
         int 21h
         dec bx
         jmp inserpass

uguali: mov ax,03h
       int 10h
       lea dx,menu
       mov ah,09h
       int 21h
       call capo
       lea dx,prog1
       mov ah,09h
       int 21h
       call capo
       lea dx,prog2
       mov ah,09h
       int 21h
       call capo
       lea dx,exit
       mov ah,09h
       int 21h
       call capo
       lea dx,scelta
       mov ah,09h
       int 21h

nn_vali:mov ah,01
       int 21h
       cmp al,scelta1
       je programma1
       cmp al,scelta2
       je programma2
       cmp al,scelta3
       je fine
       call capo
       lea dx,scel_novali
       mov ah,09h
       int 21h
       jmp nn_vali

programma1: mov ax,03h
           int 10h
           call capo
           lea dx,inprog1
           mov ah,09h
           int 21h
           call capo
           lea dx,uscita
           mov ah,09h
           int 21h
tasto_sbag: mov ah,01h
           int 21h
           cmp al,1Bh
           jz uguali
           jmp tasto_sbag

           

programma2: mov ax,03h
           int 10h
           call capo
           lea dx,inprog2
           mov ah,09h
           int 21h
           call capo
           lea dx,uscita
           mov ah,09h
           int 21h
tasto_sbag1:mov ah,01h
           int 21h
           cmp al,1Bh
           jz uguali
           jmp tasto_sbag1

fine:
.exit

capo proc near
mov dl,0Ah
mov ah,02
int 21h
mov dl,0Dh
mov ah,02
int 21h
ret
capo endp

end

Vieni a visitare Multi Saga, la community dove puoi mostrarci le tua creazioni di ogni genere

link

Partecipante al Rpg2s.net Game Contest 2007/2008

http://www.rpg2s.net/contest/GameContest0708/userbar_r2sgc.gif

Gioco in Sviluppo: Progetto segreto(by Maske Software)

 

Ecco la dimostrazione del secolo!!!!!!!(by Axel Lucius Kantaros)

Le abbreviazioni sono da truzzi.

La grammatica è da fighi.

La grammatica è utilizzata correttamente da chi non è truzzo.

Quindi i truzzi non sono fighi.

Link to comment
Share on other sites

  • 0

E' una calcolatrice con qualche altra gift in più?

 

Bello, complimenti.... non l'ho compilato, però...sembra fatto bene ^^

http://img90.imageshack.us/img90/4576/rbrlogofh8.gif

Invece di cercare la tua strada nel buio, Raven, attendi l'alba

Yes I'd have to say I like my privacy!

And did you know you're on closed circuit TV?

So smile at me!

 

 

 

 

<div style="margin:20px;margin-top:5px" "="">

 

Spoiler

 

 

 

 

Il Manifesto del Making Italiano

SALVIAMO IL MAKING ITALIANO!!

Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).

Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare, postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc

BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!

Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (io, Blake e havah) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!

Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?

BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!

Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

 

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!

Link to comment
Share on other sites

  • 0

In pratica non è ancora pronto in quanto mi manca da implementare le varie funzioni

In teoria dovrebbe:

-se premi 1 eseguire una calcolatrice

-se premi 2 esegue il crivello di eratostene

-con il 3 esci

Se servono speigazioni chiedete pure!!!

Vieni a visitare Multi Saga, la community dove puoi mostrarci le tua creazioni di ogni genere

link

Partecipante al Rpg2s.net Game Contest 2007/2008

http://www.rpg2s.net/contest/GameContest0708/userbar_r2sgc.gif

Gioco in Sviluppo: Progetto segreto(by Maske Software)

 

Ecco la dimostrazione del secolo!!!!!!!(by Axel Lucius Kantaros)

Le abbreviazioni sono da truzzi.

La grammatica è da fighi.

La grammatica è utilizzata correttamente da chi non è truzzo.

Quindi i truzzi non sono fighi.

Link to comment
Share on other sites

  • 0

Credo serva a calcolare tramite tabelle i numeri primi fino ad un numero prefissato, però non ne sono molto convinto oò

Cmq Ghalok sei un millenio davanti a me in asm xD

zizi avevo ragione, guarda qua Crivello di Eratostene.

TPC Radio Site | Blog | Big-Bug

http://img102.imageshack.us/img102/4332/slackware2userbarok0.gif

http://img141.imageshack.us/img141/1571/nokappams1cf8.png

 

http://i29.tinypic.com/2vijdlh.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...