2 kurze asm Fragen



    Memory-to-memoryexchange:
    mov aX,val1
    xchg aX,va12
    mov val1,ax

    Was 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,ax

    Was 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!
    Danke

    Nein, 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


Anmelden zum Antworten