Vorrei inoltre consiglia di utilizzare D86 (which comes with A86) in quanto consente di digitare le istruzioni in modo interattivo 8086 in modo da poter vedere cosa succede a tutti i registri e le bandiere dopo ogni istruzione.
Questo codice (come altri hanno fatto notare):
MOV AL, F2h
ADD AL, 20h
interesseranno solo le bandiere e il registro AL. Nessun altro registro a otto bit sarà interessato (anche AH). AX cambierà anche in quanto è costituito da AH e AL, quindi se AH era 42h:
Code AL AH AX
MOV AL,F2h F2 42 42f2
ADD AL,20h 12 42 4212
Il risultato di tale particolare operazione imposterà il flag di carry e la bandiera parità e cancellare il troppopieno, zero, segno e ausiliario portano bandiere.
Si potrebbe pensare che il flag di overflow debba essere impostato, ma il flag di overflow considera i valori come valori firmati (in questo caso -14 e 32) e l'aggiunta non supera il valore massimo firmato (127).Il flag carry considera i valori come valori non firmati (242 e 32) e l'aggiunta supera il valore massimo senza segno: 242 + 32 = 274 che è maggiore di 255, quindi il carry è impostato.
Poiché è un registro a 8 bit, verrà impostato il flag di trasporto? – xtofl
Sì, verrà impostato in caso di overflow del registro AL. – Macmade
Grazie mille Macmade, ora capisco le basi dell'ASM molto meglio. :-) – Tal