Ciao a tutti!
Mi sto esercitando su Assembler8086 in vista dell'esame ma non mi sono chiare alcune cose su questo esercizio.
Si scriva una procedura assembler per x86 per il la verifica della checksum di un vettore DATAVECT di 100 dati di tipo DW.
Tale procedura deve calcolare il checksum dell’area come OR ESCLUSIVO (EXOR) dei valori di tutti gli interi (2 BYTE) dell’area occupata dal vettore di dati da controllare.
LA procedura deve controllare il valore ottenuto con il vecchio valore di Checksum registrato all’atto della precedente scrittura di DATAVECT. Il valore di checksum è CHECK e occupa l’intero (ovvero i 2 byte) successivi a DATAVECT nello spazio dati dichiarato.
La procedura deve terminare:
- In caso di presenza di errori scrivendo il valore –1 su AX
- In caso di assenza di errori scrivendo 0 in AX.
La prima domanda è, come faccio a "dire" al programma che CHECK deve occupare i 2 byte sucessivi a DATAVECT? Avevo pensato di utilizzare LEA ma non so esattamente come.
La seconda domanda è come conosco il vecchio valore di Checksum? Devo imporlo a priori?
Ringrazio tutti quelli che mi vorranno aiutare