Wie sieht dieses bitte aus in ASM : mov ax, (0fh shl 8) + 2

#7533224
Lesenswert?

Peter B. schrieb:

Wie wird das bitte richtig umgesetzt?

Wenn man sich das Shiften bzw. Multiplizieren sparen möchte, könnte man schreiben, mov ah, 0F mov al, 02

Rumrechnereien dieser Art macht man hier und da besser mit LEA. Vergessen sollte man auch nicht, dass mit Vorzeichen anders geshiftet wird. In 8 Bit gedacht wäre F0 schon negativ. Bei 16 Bit sind (mit Vorzeichen) alle Zahlen ab 8000 negativ.

(Firma: 1984now) #7534372
Lesenswert?

Rbx schrieb:

Ben B. schrieb:

ist das Gleiche wie MOV AX,0F02

Klar, nur wenn als Übergabeparameter nur 8 Bit-Werte übergeben werden, dann kann man sich das Geshifte sparen, so war das gemeint. Früher war ja das Shiften auch nicht so dolle schnell.

LOL. Das shiften passiert hier (immediate Werte) bei der Übersetzung des Programms, nicht zur Laufzeit. Wenn du nichtmal das begriffen hast, bist du in dieser Diskussion definitiv völlig fehlplaziert.

#7534724
Lesenswert?

Ob S. schrieb:

LOL. Das shiften passiert hier (immediate Werte) bei der Übersetzung des Programms, nicht zur Laufzeit. Wenn du nichtmal das begriffen hast, bist du in dieser Diskussion definitiv völlig fehlplaziert.

Tja, und wenn du wüsstest, wieviel Leute sich über eine schnelle Übersetzung freuen, hättest du dir auch diesen neunmalklugen Beitrag sparen können.

#7534915
Lesenswert?

Rbx schrieb:

Tja, und wenn du wüsstest, wieviel Leute sich über eine schnelle Übersetzung freuen

Wie viele Sekunden braucht denn dein Assembler um diese Zeile zu assemblieren?

Rbx schrieb:

hättest du dir auch diesen neunmalklugen Beitrag sparen können.

Es ist schon eine wesentliche Information was jetzt der Assembler einmal beim Übersetzen macht, und was später das übersetzte Programm macht.

Vor allem da deine Aussage:

Rbx schrieb:

Früher war ja das Shiften auch nicht so dolle schnell.

ziemlich stark impliziert, dass du dachtest das shiften passiert zur Ausführungszeit des zu übersetzenden Programms.

#7536317
Lesenswert?

Udo S. schrieb:

ziemlich stark impliziert, dass du dachtest das shiften passiert zur Ausführungszeit des zu übersetzenden Programms.

Naja, ich dachte eher an "kann kein Asm, kann aber Asm-Code lesen"(was ja auch OK ist) - außerdem spielt das (mit dem Shiften) ja heute auch kaum noch eine Rolle, oder doch?

Wirklich gute Leute hätten das hier auch nicht nötig gehabt, zu schlaumeiern - allerdings programmieren hier die meisten guten Leute eher in c (oder Pascal) - und das ist auch gut so. Mein Ziel ist dann mehr, auf unauffällige Weise den ein oder anderen Asm-Hintergrund zu vermitteln, so gut es eben geht - ohne jetzt missionieren zu wollen. Würde auch gar keinen Sinn machen, u.a. weil der ARM-Asm-Code so herrlich uninspirierend ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren