Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [ASSEMBLER] dubbio istruzione CMP

    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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    N1 non è costante ma una locazione di memoria

    e al è un registro

    quindi

    CMP memoria, registro

    Cosa c'è che non va?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Cosa c'è che non va?
    che il troppo studio da alla testa proprio perchè continuavo a considerare N1 come valore costante e non come locazione di memoria Z,z
    devo prendere una pausa, grazie per la risposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.