View Full Version : [ASSEMBLY] Esercizi con codice
Devo fare degli esercizi di assembly, ce ne sono alcuni che non mi riescono perchè non ho molto chiare delle cose, ad esempio il seguente:
Mat=3642.
Vetb è un vettore[100] di unsigned char.
Alla fine devo dire cosa è contenuto in ris2.
LEA ESI,Vetb
MOV AX,Mat
ADD ESI,10
MOV ECX,32
L2: MOV [ESI+ECX*2],AX
LOOP L2
ADD ESI,5
LEA EDI,Vetb
SUB ESI,EDI
MOV EBX,ESI
MOV CX,WORD PTR Vetb[EBX]
MOV Ris2,CX
Esi punta in pratica all'inizio del vettore. Quando io sommo 10 ad esi vuol dire che mi sposto nel vettore a destra di 10 bit? In questo caso facendo esi+ecx*2 poi non sarei più all'inizio di un byte se non sbaglio.
wingman87
06-07-2006, 16:01
Se sommi 10 ti sposti di 10 byte, non bit.
Ho cannato l'esame al primo appello, adesso però punto al 30 :D e speriamo che vada.
Mi mancano giusto un paio di cose, una ve la chiedo qui:
in memoria come vengono memorizzati i numeri negativi? Con il complemento a 2?
Ad esempio se io faccio una sottrazione con segno di 3 e -8 il risultato -5 in memoria come viene memorizzato?
come 011 in complemento a 2 oppure con grandezza e segno oppure ancora in eccesso?
in memoria come vengono memorizzati i numeri negativi? Con il complemento a 2?Esatto, in complemento a 2.
Ad esempio se io faccio una sottrazione con segno di 3 e -8 il risultato -5 in memoria come viene memorizzato?Ma ... se dici sottrazione vuol dire che fai 3 - (-8), quindi 5. ;) O forse volevi fare 3 - 8??? (spiegati meglio eh)
Facciamo l'esempio su 8 bit di 3 - 8.
00000011 - (3)
00001000 (8)
========
11111011 (-5)
Si scusa intendevo 3-8 ovviamente :D.
Ora ho capito grazie mille.
E ricorda che quando durante un operazione ottieni un valore negativo il BIT di STATO che indica che si tratta di numeri negativi (solitamente N) viene posto a 1 ;)
E ricorda che quando durante un operazione ottieni un valore negativo il BIT di STATO che indica che si tratta di numeri negativi (solitamente N) viene posto a 1 ;)Sui processori 80x86, il flag di stato che indica il segno è il bit 7 del registro EFLAGS e si chiama SF (Sign Flag). Si può ovviamente usare per fare dei salti condizionati:
MOV AX, 3
SUB AX, 8
JS ...... ; salta se il risultato è negativo
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.