32-bit transfer in AX und BX



  • HI,
    ich brauche Hilfe bei einer Aufgabe die ich seit einer Woche nich lösen kann.
    Also ich möchte einen 32bit code in die Register AX und Bx laden aber dass ist ja nicht möglich weil das 16bit Register sind.
    Ist es möglich den binärcode aufzuteilen? Oder gibt es eine andere Möglichkeit?

    DSEG SEGMENT
    NUMBER DD 11112222
    DSEG ENDS
    
    CSEG SEGMENT
    MOV AX,NUMBER
    CSEG ENDS
    END
    

    Danke schon jezt für eure Antworten



  • probier es doch mal mit Shiften. shl oder so war die Instruktion dafür



  • Die Shift befehle gehn aber nicht ... weil die Bitordnung i-wie gestört wird
    Ich bekomm ne error-message: "operand types do not match" line <12>
    Line 12 entspricht: mov ax,number
    Auserdem benutzt ich TASM

    Ich bin einfach total Ratlos ...
    Für jede Idee offen

    thx



  • Shiften brauchst du auch gar nicht, wenn du diesen im Speicher liegenden 32Bit-Wert auf 2 16Bit-Register aufteilen willst.
    Du kannst direkt die unteren 16Bit in das eine und die oberen 16Bit in das andere Register schieben. Da es hier eigentlich nur um Feinheiten der Syntax geht - hier mein Vorschlag:

    DSEG SEGMENT
    NUMBER DD 11112222
    DSEG ENDS
    
    CSEG SEGMENT
    MOV AX,[word ptr NUMBER]   ; unteren 16Bit
    mov bx, [word ptr NUMBER + 2]    ; oberen 16Bit
    CSEG ENDS
    END
    


  • Danke, das hat mir weitergeholfen


Anmelden zum Antworten