assemblaggio x86 - masm32:ripartizione assoluta di moltiplicazione e divisione [chiuso]

StackOverflow https://stackoverflow.com//questions/10684736

  •  12-12-2019
  •  | 
  •  

Domanda

Ho cercato su Internet una valutazione semplice da comprendere su come moltiplicare e dividere nell'assembly masm32.Le mie domande sono:

  1. Dove devo posizionare i numeri da moltiplicare?

  2. Dove devo posizionare i numeri da dividere?

  3. Dove va il resto nella divisione?

Qualcuno potrebbe rispondermi per favore?

Grazie,

Progr

È stato utile?

Soluzione

La risposta a questa domanda può essere trovata molto facilmente guardando la pagina apposita del Riferimento al set di istruzioni Intel 64 e IA-32.In questo caso, stai cercando il MUL E DIV istruzioni (nel caso in cui si operi su operandi senza segno) o IMUL E IDIV istruzioni, che vengono utilizzate per la moltiplicazione e la divisione di numeri interi con segno.

Quindi, nel caso in cui davvero non hai voglia di consultare il manuale:

  1. Uno degli operandi della moltiplicazione deve essere posto nel file EAX registrati se stai utilizzando MUL.Questo è un po' più flessibile se usi il file IMUL istruzione, che consente di specificare i registri di origine e di destinazione.
  2. Il numero da dividere è sempre un numero a 64 bit in modalità a 32 bit.I pezzi alti entrano EDX, mentre i bit inferiori entrano EAX.
  3. Il resto viene sempre inserito EDX.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top