PDA

View Full Version : Aiutatemi per favore!!!(assembler)


gnagnio83
11-06-2003, 13:17
Ciao!!!!spero possiate aiutarmi con il mio piccolo problemino....purtroppo ho iniziato a studiare assembler da pochissimo e nn riesco proprio a capire cosa fa questo pezzo di assembler, non è che mi potreste dare una manina?? :muro:
in pratica i primi comandi base ok ma quelle righe in cui ho messo gli " * " non riesco a capirle, mi potreste spiegare che fanno?? grazie a tutti in anticipo!!! :)

unsigned short int Mat=9006;

unsigned char Vetb[100];
unsigned short Risposta;

__asm
{
MOV DX,Mat
MOV ECX,7
MOV WORD PTR Vetb[ECX*4+1],DX *
MOV WORD PTR Vetb[ECX*4+2],DX *
MOV AX,WORD PTR Vetb[ECX*2+15] *
TEST AX,1
JNZ SP1
SHL AL,1
JMP SP2
SP1: SHR AL,1
SP2: MOV Risposta,AX

}

gnagnio83
11-06-2003, 18:18
ehmmm nn vi faccio un pò pena?????
un uppino.......:(

cionci
11-06-2003, 19:04
Il fatto è che te lo riscriverei uguale !!!

MOV WORD PTR Vetb[ECX*4+1],DX Muove da DX a Vetb[ECX*4+1]
MOV WORD PTR Vetb[ECX*4+2],DX Muove da DX a Vetb[ECX*4+2]
MOV AX,WORD PTR Vetb[ECX*2+15] Muove da Vetb[ECX*2+15] ad AX

jolanda_81
11-06-2003, 19:32
Originally posted by "gnagnio83"

Ciao!!!!spero possiate aiutarmi con il mio piccolo problemino....purtroppo ho iniziato a studiare assembler da pochissimo e nn riesco proprio a capire cosa fa questo pezzo di assembler, non è che mi potreste dare una manina?? muro
in pratica i primi comandi base ok ma quelle righe in cui ho messo gli " * " non riesco a capirle, mi potreste spiegare che fanno?? grazie a tutti in anticipo!!! )

unsigned short int Mat=9006;

unsigned char Vetb[100];
unsigned short Risposta;

__asm
{
MOV DX,Mat
MOV ECX,7
MOV WORD PTR Vetb[ECX*4+1],DX *
MOV WORD PTR Vetb[ECX*4+2],DX *
MOV AX,WORD PTR Vetb[ECX*2+15] *
TEST AX,1
JNZ SP1
SHL AL,1
JMP SP2
SP1 SHR AL,1
SP2 MOV Risposta,AX

}


* MOV WORD PTR Vetb[ECX*4+1], DX

questa istruzione è composta dall'istruzione MOV Vetb[..], DX che è un indirizzamento indiretto, con l'aggiunta della pseudo istruzione WORD PTR. Quest'ultima non è una vera istruzione, dice solo all'assemblatore che ciò che andremo a leggere in memoria è effettivamente una word (16 bit). Questa precisazione è necessaria dato che l'assembler non sa che tipo di dati sono associati alle variabili.

Per le altre istruzioni vale lo stesso discorso...

ciao!

gnagnio83
11-06-2003, 22:02
Grazie ad entrambi per l'aiuto....!!http://forum.hwupgrade.it/faccine/6.gif
Mi facevo chissà quali grandi viaggi invece era semplice semplice...grazie ancora! ;) ;)

P.s
scusate l'OT ma.... jolanda quello che hai scritto nella località è preoccupante!! :eek:

cionci
12-06-2003, 01:38
Spigaci...perchè altrimenti qualcuno potrebbe capire male ;)

jolanda_81
17-06-2003, 10:34
Originally posted by "cionci"

Spigaci...perchè altrimenti qualcuno potrebbe capire male ;)

AHah..avete ragione..ma l'ho scritto il giorno che mi sono iscritto e avevo voglia di scrivere cazz... D Nessun proposito suicida, ma volontà di elevarmi ai miei pari..gli Dei..AHAHAHAH..ciao ragazzi ;)