2016-04-24 2 views
0

Erstellen eines Assembly-Programms zum Berechnen von Exponenten - kann ich die imul-Anweisung mit demselben Register wie beide Operanden verwenden?Können Sie imul verwenden, um ein Register zu multiplizieren?

+4

Haben Sie es versucht? –

+1

Ja, und es hat funktioniert. Ich war mir jedoch nicht sicher, ob es in allen Fällen funktioniert oder ob es sich sogar um eine Best Practice handelte. –

Antwort

2

Ja, Sie können. imul ax,ax ist eine vollkommen gute Anleitung.

ELSE IF (NumberOfOperands = 2)
DANN
Temp ← DEST * SRC (* Multiplikation der Unterzeichnung; temp Doppel DEST Größe )
DEST ← DEST * SRC (
Signed Multiplikation *)
IF temp ≠ DEST
DANN CF ← 1; OF ← 1;
ELSE CF ← 0; OF ← 0; FI;

Wie Sie aus dem operativen Algorithmus sehen kann, gibt es keine Gefahr, dass die einzelnen Register korrumpiert, während die Multiplikation auftritt, da die CPU eine Temp während Multiplikation verwendet. CF und OF werden gesetzt, wenn diese temp nicht in das einzelne Register passt.

+2

Ich habe dies früher abgelehnt, aber hatte keine Zeit, den Grund zu verlassen. Ihre intervenierende Bearbeitung ist viel besser, aber für mich, um den downvote schließlich zu entfernen, konnten Sie das ursprüngliche Plakat wenigstens wissen lassen, dass er eine Anweisungssatzreferenz konsultieren sollte. Sie könnten einen Link zur Intel-Dokumentation bereitstellen, aber ich finde [Felix Coultier's Webversion] (http://www.felixcloutier.com/x86/) der Intel-Referenzen einfacher zu navigieren. –

+2

@MichaelPetch Phrasen wie "Schaut es euch im Handbuch an" und "Lerne einen Debugger zu benutzen" (ein anderer Klassiker) sorgen für sehr gute Kommentare, machen es aber in einer Antwort nicht so gut. Was die Bereitstellung eines Links angeht, so glaube ich, dass die Mehrheit der Personen, die Fragen stellen, bereits die Dokumentation/Anweisungssatz-Referenz zur Verfügung hat, aber aus irgendeinem Grund die relevanten Teile nicht extrahieren kann, daher habe ich einen Auszug mit einigen Erläuterungen zur Verfügung gestellt. –

Verwandte Themen