Buon giorno a tutti, spero di non essere nel forum sbagliato, non ho visto altre discussioni sull'assembler, nel caso sia offtopic chiedo venia ^^
Sto studiando l'assembler, e un esercizio su una struttura condizionale mi ha creato un dubbio enorme sul funzionamento dell'istruzione CMP.
Entrando nel dettaglio, la guida che seguo dice che il formato dell'istruzione CMP è il seguente:
CMP operando1, operando2
dove il primo operando può essere una locazione di memoria o un registro, mentre il secondo può anche essere un valore immediato (costante).
Qualche pagina più in là ho trovato un esercizio che esegue la CMP come segue:
codice:
.model small
.stack
.data
N1 db 150
N2 db 200
R db ?
.code
start:
mov ax,@data
mov ds,ax
mov al, N2
cmp N1,al
non riporto il resto del codice tanto sarebbe inutile.
Qualcuno mi spiega perchè nella CMP il primo operando è N1 che è un valore costante mentre il secondo è appunto N2 che è stato spostato nel registro al?
Non dovrebbe essere l'esatto contrario?
Grazie a tutti per l'interessamento