• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Installare Masm32 e WinAsm
#1
Questi due programmi, permettono di programmare in Assembly, sono molto utili, Masm32 è davvero eccezionale, con tutte le sue librerie etc..., mentre WinAsm anch'esso eccezionale secondo me, si può integrare con Masm32 cosi facendo, potete programmare in Assembly con WinAsm, con la stessa snstassi/librerie etc... di Masm32, ma con alcune funzioni in più davvero molto importanti, WinAsm permette anche di creare GUI, dll etc... etc...

Avviso : Alcuni antivirus posso rilevare nell'installazione di Masm32 un virus, state tranquilli che un falso/positivo, questo programma è usato da tutti, altrimenti programmare in assembly quasi impossibile, in quanto ogni compilatore compila come gli pare asd.

Requisiti :

Masm32
WinAsm

Istruzioni :

  1. Scaricate Masm32 e WinAsm
  2. Installate Masm32 in : C:\
  3. Estraete l'archivio di WinAsm in : C:\Masm32
  4. Finito.

Ah questo punto avviate : WinAsm -> New Project -> Standar EXE

E scriviamo il nostro primo programma : "Ciao Mondo"


Codice:
.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib

.data

  cpt db "Mio primo programma", 0
  msg db "Ciao Mondo!", 0
  
.code

start:

   invoke MessageBox, NULL, addr msg, addr cpt, MB_OK
   invoke ExitProcess, NULL

end start

Ora fate : File -> Save Project

E poi per creare l'exe : Make -> Go All

Ora potete avviare il vostro exe, che si troverà nella cartella in cui avete salvato il progetto. Avviatelo e godetevi la velocità dell'assembly XD.

Ci sono anche alcune demo in WinAsm, per trovarle fate : File -> New Project -> Dialog -> Base/Bones/Demo
 
Rispondi
#2
Sapresti spiegare la sintassi?? xD
 
Rispondi
#3
.386 : è un direttiva per l'assembler dove gli indichiamo di usare le istruzioni 80386, ci sono anche altre direttive meno usate, e sono : .486, .586

.model : specifica il modello di memoria del nostro programma (flat).

stdcall : Serve per specificare come verranno passati i parametri, da : sinistra verso destra o da destra verso sinistra, e a chi bilancerà lo stack frame.

.data : in questa sezione ci saranno tutti i dati inizializzati del nostro programma.
.const : come si capisce anche dal nome, questa sezione conterrà tutte le costanti del nostro programma.

cpt e msg equivalgono a : MessageBoxCaption e MessageBoxText

MessageBoxCaption : Sarà il titolo della nostra finestra
MessageBoxText : Sarà il contenuto della nostra finestra

Invoke : Se lo si usa Invoke al posto di Call, si possono prevenire gli errori della stack, causati da un passaggio di parametri errato.

Invoke ExitProcess : E' una funzione API, per uscire.

NULL : indica che non c'è nessuna finestra uguale a questa MessgeBox.

addr : lo si usa per passare l'indirizzo da una etichetta a una funzione.
 
Rispondi
#4
Grazie Big Grin
 
Rispondi
  


Vai al forum:


Browsing: 1 Ospite(i)