Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2004, 17:19   #1
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
[Asm]Problema

Ho scritto sto code:
Codice:
.model small
.stack

.data
Message db 'Hello World by Lucas assembler', 13d, 10d, '$'

.code
Start:
	mov dx, OFFSET Message 	 
	mov ax, SEG Message 	
	mov ds, ax 	 
	; set int 21h service 09h
	mov ah, 09h
	int 21h
	; set int 21h service 4Ch(exit)
	mov ah, 4Ch
	int 21h
end Start
Ma mi da sti errori:
Quote:
prova.asm:1: error: attempt to define a local label before any non-local labels
prova.asm:1: error: parser: instruction expected
prova.asm:2: error: attempt to define a local label before any non-local labels
prova.asm:4: error: attempt to define a local label before any non-local labels
prova.asm:5: error: expression syntax error
prova.asm:9: error: comma or end of line expected
prova.asm:18: error: parser: instruction expected
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:23   #2
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Che assemblatore usi??

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:23   #3
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
nasm su win32
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:28   #4
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quella non è la sintassi di NASM.

Converti così :
Codice:
[BITS 16]
[ORG 0100h]

[SECTION .text]

start:
	mov dx, Message 	 
	; set int 21h service 09h
	mov ah, 09h
	int 21h
	; set int 21h service 4Ch(exit)
	mov ah, 4Ch
	int 21h

[SECTION .data]

Message db 'Hello World by Lucas assembler', 13d, 10d, '$'

A quanto sembra il programma che avevi scritto cercava di usare i Segmenti , in questo caso ho convertito il programma in "Flat Model" per semplicità .

Assembla con :

c:\> nasm nomefile.asm -f bin -o eseguibile.com


Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:34   #5
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
dove trovo na guida alla sintaxis nasm?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:42   #6
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
http://nasm.sf.net

C'è la documentazione , o comunque qualsiasi libro che insegna ASM usando la sintassi NASM (quello che ti ho consigliato nell' altro thread è un esempio)


Il tuo programma comunque conteneva un errore :

Message db 'Hello World by Lucas assembler', 13d, 10d, '$'

deve diventare:

Message db 'Hello World by Lucas assembler', 13, 10, '$'

Togliendo le "d" dal "13" e dal "10" dato che il Decimale è già la base di default del NASM

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:47   #7
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Tnk!
Cmq io volevo impararmi l'asm per il reverse enginering e per completezza.
Cmq........tu per cosa usi l'asm e ritieni che si debba usare molto oggi?
Io penso che serva conoscerlo e magari usarlo per ottimizzare ma nn serve per altro perche troppo complicato e poco gestibile per grandi progetti(a meno di fare demo di grafica in 64 kb )
Poi è bello sapere disassembleare un exe e capire + o - cosa fa, no?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 17:57   #8
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Sinceramente io sto imparando l'ASM per pura voglia di conoscienza

Non ho in mente nessun grande progetto da eseguire con asm , però l'asm ti permette di capire a fondo come funziona il tuo computer , e ti da il controllo totale su tutto

Prima di iniziare a imparare l'ASM cos'era una "Interrupt Vector Table" , o la differenza tra "interrupt software" e "interrupt hardware" , cosa fosse il dispatcher di un sistema operativo , quale fosse il principio alla base di una CPU ... erano tutti concetti a me ignoti , l' ASM ti permette di capire a fondo tutto ciò, e già tutto questo per me è sufficiente .

Io sapevo già programmare un pochino in C , ma nonostante io ne sappia molto + di C che di ASM in questo momento , imparare quel poco di ASM mi ha permesso di apprendere molto di + sul mondo dell' elaborazione elettronica che tutto il libro di C che mi ero letto in precedenza .

Inoltre , sarà vero che l'ASM è complicato , ma ti permette anche di fare cose che altri linguaggi non ti permettono

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 18:04   #9
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
anche io lo studio spinto dai tuoi motivi, sai?
Cosi capisci e comprendi di + come funzia un Pc.
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 18:09   #10
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Luc@s
anche io lo studio spinto dai tuoi motivi, sai?
Cosi capisci e comprendi di + come funzia un Pc.

Hai PVT
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 18:57   #11
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Quote:
Originariamente inviato da Luc@s
Tnk!
Cmq io volevo impararmi l'asm per il reverse enginering e per completezza.
Cmq........tu per cosa usi l'asm e ritieni che si debba usare molto oggi?
Io penso che serva conoscerlo e magari usarlo per ottimizzare ma nn serve per altro perche troppo complicato e poco gestibile per grandi progetti(a meno di fare demo di grafica in 64 kb )
Poi è bello sapere disassembleare un exe e capire + o - cosa fa, no?
Humm....ti posto un pezzo di sorgente..+ o - così come verebbe creato da un disassemblatore.

Ora....prima di compilarlo e scoprire cos'è veramente riusciresti a dire cosa fà ?
Allegati
File Type: zip try.zip (955 Bytes, 18 visite)
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 20:17   #12
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da mmx[ngg]
Humm....ti posto un pezzo di sorgente..+ o - così come verebbe creato da un disassemblatore.

Ora....prima di compilarlo e scoprire cos'è veramente riusciresti a dire cosa fà ?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 20:22   #13
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Ho riletto ora un pò dei tuoi messaggi....mi sa ke la domanda ke ti ho fatto è un po prematura....come non detto.

Cmq volevo semplicemente farti capire ke da un disassemblato è un'impresa sapere cosa faccia un programma....ti ci vuole mezza vita.

Pensa ke x soli 350 bytes (il compilato di quello ke ti ho postato) ci sono voluti 4k di sorgente...figurati x un normale eseguibile

E il tutto senza un briciolo di commento, variabili o label significative.

L'apprendimento dell'assembler deve essere visto in un'altra ottica. Il reverse enginering e l'ultima spiaggia da sfruttare solo quando si ha una totale conoscenza del linguaggio (lo devi leggere come un libro) altrimenti diventa una perdita di tempo fine a se stessa. E' molto + utile impararlo x scrivere algoritmi ke in un qualsiasi altro linguaggio risultino di difficile implementazione o poco efficenti.

Questo almeno secondo le mie esperienze....poi vedi te
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 20:28   #14
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Io voglio solo usarlo un po in modo inline nei punti critici dei miei prog.
Cmq il reversing è un idea grandissima.
Cmq posso porti una sfida?
Mi dici cosa potrebbe essere il prog dal file che ti posto?
Allegati
File Type: rar inline.rar (18.6 KB, 6 visite)
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 20:55   #15
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Quote:
Originariamente inviato da Luc@s
Io voglio solo usarlo un po in modo inline nei punti critici dei miei prog.
Cmq il reversing è un idea grandissima.
Cmq posso porti una sfida?
Mi dici cosa potrebbe essere il prog dal file che ti posto?
LOL....150Kb....io sono stato un pò + clemente

Cmq la sfida l'accetto se realmente ti serve sapere cosa fà...visto ke mi ci vogliono 2 giorni....sai com'è nel weekend vorrei fare altro e negli altri giorni lavoro
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 21:06   #16
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da mmx[ngg]
LOL....150Kb....io sono stato un pò + clemente

Cmq la sfida l'accetto se realmente ti serve sapere cosa fà...visto ke mi ci vogliono 2 giorni....sai com'è nel weekend vorrei fare altro e negli altri giorni lavoro
e che il mio dis fa cosi.
Cmq se vuo...........nn sentirti obligato
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2004, 15:50   #17
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Non mi sentirei obbligato neanke se mi avessi pagato

Cmq da una rapida occhiata non mi sembra un semplice pgm in C (esegue delle call dinamiche). Ma l'hai scritto te o l'hai beccato da qualke parte ?

Visto anke com'è scritto, lascio perdere anke xke x effettuare il reverse eng. spesso non si parte dall'entry point sino all'ExitProcess (e come leggersi tutto un libro di storia solo x sapere com'è andata la seconda guerra mondiale) ma sarebbe + inteligente utilizzare un debugger

Hai provato a compilare quello ke ti ho postato ? (ke non è un disassemblato ma un vero e proprio sorgente....gli ho semplicemente cambiato le label...altrimenti era una passeggiata)
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Musk non riesce a fermare la causa: le t...
Grafene al posto del silicio per le cell...
F-Stop, il prequel cancellato di Portal ...
Il razzo spaziale New Glenn di Blue Orig...
La Cina si prepara al primo lancio orbit...
Sale LAN, la Manovra 2027 introduce una ...
11 prezzi imperdibili in Amazon: non sol...
Giù i prezzi di Xiaomi 17T e Xiao...
Una tassa di 5,5 centesimi su ogni gigab...
Vuoi clonare un videogioco con l'IA? Cla...
Furto da 6,3 miliardi di dollari, Binanc...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v