32-Boit-Register auch in 16-Bit-Programmen nutzen



  • Wenn Sie es mit mathemathischen Berechnungen zu tun haben, ist es manchmal schon ein wenig äörgerlich, wenn Sie nicht einmal mit dem externen Assembler die 32-Bit-Register ansprechen dürfen, wenn die Roputinen in Pascal eingebunden werden sollen.
    Wenn Sie sich jedoch eines kleinen Tricks bedienen, kommen sie allerdings doch nich zu ihren 32-Bit Registern. Schauen Sie sich das folgende kleine Codefragment an:

    db 66h
    xor cx, cx
    db 66h
    moc ax, cx
    

    Wenn Sie sich schon einmal mit Opcodes auseinander gesetzt haben, wissen Sie, was meine Intention ist. Es wird einfach das Operand-Size-Prefix 66h manuell eigefügt. Denn es dient ab dem 386er dazu, 32-Bit-egsiter u 'kennzeichnen'. Der obige Code würde also im Debugger so aussehen:

    xor ecx, ecx
    moc eax, ecx
    

    Und so können sich auch beliebig andere Opcodes, die Ihnen nicht zur Verfügung stehen, sowohl im internen als auch im externenAssembler 'gefügig' machen.



  • Nett, dass Sie uns dies mitgeteilt haben.


Anmelden zum Antworten