PDA

View Full Version : ASSEMBLER


Kasan
19-06-2004, 11:02
Seconda discussione aperta e già mi truciderà qualcuno....:muro: :muro: :muro:

All'università abbiamo beccato il più pippa professore di Architettura del Calcolatore esistente...risultato: non sappiamo sommare due vettori in assembler..se qualcuno ha un manuale, con sintassi, e/o esercizi svolti vi prego di segnalarmeli...cacchio leggendo i vostri mess mi sento proprio uno zero rispetto a voi....:( :( :( :( :(

VICIUS
19-06-2004, 11:42
Di preciso che architettura state studiando ? Di solito di studia il RISC che è in genere piu semplice ma anche un po di x86 (CISC).

ciao ;)

Kasan
19-06-2004, 12:31
cenni di programmazione in assembler con vettori unidimensionali, l'esame riguarderà la scrttura di una sub-routine, ma qualcosa di semplice, noi abbiamo ancora problemi con la sintassi, avendo avuto un corso scandaloso....

maxithron
19-06-2004, 14:05
Se sei proprio a digiuno, comincia con qualcosa di semplice qui:

http://www.cerca-manuali.it/manuale-guida/assembler.htm

In ogni link di quel sito poi, trovi altri link per gli approfondimenti.

Se poi fai una ricerca in questa sezione, ne dovresti trovare numerosi di link già postati.

repne scasb
20-06-2004, 10:31

repne scasb
20-06-2004, 10:53

repne scasb
20-06-2004, 13:17

repne scasb
20-06-2004, 13:18

luxorl
20-06-2004, 18:09
Kasan di dove sei?

mmx[ngg]
21-06-2004, 15:34
Originariamente inviato da repne scasb

; Esempio: Somma di due vettori numerici float a 64bit unidimensionali
; Ottimizzazione: CPU AMD Athlon + codice automodificante
; Linguaggio: Assembly 80386/387 - Protect Mode32/Flat
; Argomenti: Stack calling (A1,A2,A2,A4)
; A1 = Puntatore a 32-bit indirizzo iniziale primo vettore
; A2 = Puntatore a 32-bit indirizzo iniziale secondo vettore
; A3 = Puntatore a 32-bit indirizzo iniziale vettore somma
; A4 = Numero di elementi che compongono tutti i vettori

Vector_Sum proc far

push ebp
mov ebp,esp
pushad
mov esi,[ebp+4h] ; A1
mov [MDF_01+3h],esi
mov ebx,[ebp+8h] ; A2
mov [MDF_02+3h],ebx
mov edi,[ebp+0Ch] ; A3
mov [MDF_03+3h],edi
mov ecx,[ebp+10h] ; A4
dec ecx
shl ecx,3h
loop_vector_sum:
MDF_01 fld qword [ecx+12345678h]
MDF_02 fadd qword [ecx+12345678h]
MDF_03 fstp qword [ecx+12345678h]
sub ecx,8h
jnc loop_vector_sum
popad
pop ebp
ret

Vector_Sum endp

Bello sapere ke non sono solo al mondo :)

Però devo fare un piccolo appunto su questa porzione di codice...i PE caricano la sezione CODE su una porzione di memoria protetta in scrittura quindi in fase di esecuzione l'algoritmo genera un errore di protezione.

Le uniche soluzioni x farlo andare sono la modifica post compilazione dell'eseguibile o l'esecuzione nella sezione DATA dopo aver copiato la routine....ma le cose si complicano un pò :)

repne scasb
21-06-2004, 16:54

cionci
21-06-2004, 17:22
Allora la famosa protezione contro i buffer overflow nelle CPU AMD si limiterà solo a questo ? In effetti avevo pensato che fosse qualcosa del genere...ma credevo che fosse qualcosa di più complesso...

repne scasb
21-06-2004, 17:52

cionci
21-06-2004, 18:07
Sicuramente è una cosa molto utile per la sicurezza di un sistema... Soprattutto perchè ti emtte al sicuro dai buffer overflow della maggior parte degli exploit classici...

Luc@s
21-06-2004, 18:35
avete link a quello che state dicendo?

repne scasb
21-06-2004, 18:55

Luc@s
06-09-2004, 13:02
con il Service Pack2 di xp il bit è ora usabile o sbaglio?

cionci
06-09-2004, 15:04
E' utilizzabile, ma bisogna avere una Athlon 64 rev. CG...almeno per ora...presto arriveranno anche gli Intel...