assemblaggio x86 - masm32:ripartizione assoluta di moltiplicazione e divisione [chiuso]
Domanda
Ho cercato su Internet una valutazione semplice da comprendere su come moltiplicare e dividere nell'assembly masm32.Le mie domande sono:
Dove devo posizionare i numeri da moltiplicare?
Dove devo posizionare i numeri da dividere?
Dove va il resto nella divisione?
Qualcuno potrebbe rispondermi per favore?
Grazie,
Progr
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:
- Uno degli operandi della moltiplicazione deve essere posto nel file
EAX
registrati se stai utilizzandoMUL
.Questo è un po' più flessibile se usi il fileIMUL
istruzione, che consente di specificare i registri di origine e di destinazione. - Il numero da dividere è sempre un numero a 64 bit in modalità a 32 bit.I pezzi alti entrano
EDX
, mentre i bit inferiori entranoEAX
. - Il resto viene sempre inserito
EDX
.