Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - Assembly - Somma di 2 numeri
Forum - Altri Linguaggi - Assembly - Somma di 2 numeri

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 0:03
Lunedì, 12/04/2010
Salve a tutti. Ho iniziato a studiare l'assembly e ho scritto questo programmino
Codice sorgente - presumibilmente Altri Linguaggi

  1. .MODEL          small
  2.                         .STACK
  3.                         .DATA
  4. OPD1            DW                      10
  5. OPD2            DW                      10
  6. RESULT          DW                      ?
  7.                         .CODE
  8.                         START:
  9.                         MOV             AX, OPD1
  10.                         ADD             AX, OPD2
  11.                         MOV             RESULT, AX
  12.                         .EXIT
  13.                         END



Ma purtroppo il MASM non mi mi compila. Questi sono gli errori

D:\Robbie\Dati\Workspaces\WinASM\FirstApp\FirstApp.asm(9) : error A2074: cannot access label through segment registers
D:\Robbie\Dati\Workspaces\WinASM\FirstApp\FirstApp.asm(10) : error A2074: cannot access label through segment registers
D:\Robbie\Dati\Workspaces\WinASM\FirstApp\FirstApp.asm(11) : error A2074: cannot access label through segment registers

Ultima modifica effettuata da robrock80 il 12/04/2010 alle 0:04
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 8:08
Lunedì, 12/04/2010
Manca una direttiva

ASSUME ds:_DATA

Ma con un progetto che usa il modello "small", non vai molto lontano ...

L'assembly non si studia facendo prove su prove senza capire cosa si fa perchè lo si è studiato prima in teoria. Per capirci, il mio e' un suggerimento, non una critica ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 10:46
Lunedì, 12/04/2010
Quello che vedi lì è un esempio preso da un libro (cartaceo) che sinceramente non mi sembra un granchè. Ho cercato in lungo e in largo ma il problema è che di libri in italiano se ne trovano pochissimi e di buoni per niente. Perchè non mi indichi un percorso (che comprenda pdf, libri da acquistare e quant'altro) che io possa seguire?
Ho sempre sognato imparare questo linguaggio e ho atteso veramente tanto e nell'attesa ho messo da parte tutto il materiale che ho trovato strada facendo ma sono tutt'altro che convinto di avere robba buona

P.S.: la direttiva ha funzionato

Ultima modifica effettuata da robrock80 il 12/04/2010 alle 11:11
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:18
Lunedì, 12/04/2010
Un "percorso" in italiano, scordatelo ...

L'assembly (x86, ma anche per altre CPU) è un argomento molto specialistico e un approccio a testi e documentazione inglese è inevitabile.

Un prerequisito "necessario" per "cominciare" ad affrontare manualistica adeguata (sempre in inglese) è la conoscenza approfondita del funzionamento della CPU (della famiglia di riferimento per la quale si vuole scrivere). E quando dico "approfondita", intendo "molto" approfondita, non le classiche conoscenze di bus di indirizzi/dati/registri/ALU/microistruzioni ma molto di più, che ottieni dai manuali specialistici (ottimi sono quelli della Intel, scaricabili gratuitamente dal sito, ovviamente in inglese ...).

Per questo ci vuole, ovviamente, molto, molto tempo e quindi se il tuo obiettivo è imparare l'assembly in "1 mese", allora ti consiglio di lasciar perdere.

Per capirci, l'assembly che hai usato nel codice è orientato ai processori a 16 bit, in modalità detta "reale", non più usata dai tempi del DOS (testimone è l'indirizzamento con registri di segmento DS,ES,SS,CS + offset, che non viene usato in modalità protetta a 32/64 bit). Lo studio di questo tipo di programmazione assembly, non ti porterà molto lontano perchè, ad un certo punto, vedrai che non è utilizzabile praticamente nei sistemi moderni.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:26
Lunedì, 12/04/2010
Avevo intenzione di cominciare da quello 8086 perchè più semplice, poi piano piano avevo intenzione di passare a quello 386 e infine a quello più moderno. Ok... Sono costretto a studiare in inglese, ma a parte i manuali di INTEL che sono sicuramente per gente esperta, ce nè qualcuno per gente meno esperta?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:42
Lunedì, 12/04/2010
Se vai su Amazon ce ne sono tanti ... ma è l'argomento che non si presta a "gente meno esperta" e quindi i libri disponibili non sono del tipo "parti da zero e impara l'assembly".


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:52
Lunedì, 12/04/2010
Non parto proprio da zero: conosco a livello base l'architettura del processore 8086 (stack, registri, indirizzamento della memoria tramite offset)... Senti, questo
http://www.amazon.com/Assembly-Language-x86-Processors-6th ...
va bene?

PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:57
Lunedì, 12/04/2010
Non parto proprio da zero: conosco a livello base l'architettura del processore 8086 (stack, registri, indirizzamento della memoria tramite offset)... Senti, questo
http://www.amazon.com/Assembly-Language-x86-Processors-6th ...
va bene?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:04
Lunedì, 12/04/2010
E' comunque basato sulla modalità reale, 16 bit, BIOS e DOS e in un paio di capitoli solamente tratta codice a 32 bit, ma va benissimo per iniziare ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo