2 kurze asm Fragen
-
Memory-to-memoryexchange:
mov aX,val1
xchg aX,va12
mov val1,axWas bringt das? Wieso macht man hier nicht gleich xchg val1, val2?
angenommen val2 ist signed und ich mache das hier:
movsx eax, val2
warum ist eax jetzt FFFFA69Bh?
Warum werden die höhren bytes ovn eax zu ffff? muss da nicht nur das linkeste zu F bzw. 1 werden? Bitte um erklärung!
Danke
-
ashketchup schrieb:
Memory-to-memoryexchange:
mov aX,val1
xchg aX,va12
mov val1,axWas bringt das? Wieso macht man hier nicht gleich xchg val1, val2?
Hast du das schonmal ausprobiert?
ashketchup schrieb:
angenommen val2 ist signed und ich mache das hier:
movsx eax, val2
warum ist eax jetzt FFFFA69Bh?
Warum werden die höhren bytes ovn eax zu ffff? muss da nicht nur das linkeste zu F bzw. 1 werden? Bitte um erklärung!
DankeNein, schau dir hierzu mal das Zweierkomplement an.
-
ok das 1. geht gar nicht. Beim 2. bitte ich noch um eine erklärung
-
Die Implementierung von movsx im angestrebten Sinn (erweiterung von 2komplement-Zahlen) ist korrekt.
Zur Motivation/Begruendung siehe zB. http://de.wikipedia.org/wiki/Zweikomplement