tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
1629
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Krikus Krikus ist offline Mitglied Silber
    Registriert seit
    Jan 2009
    Beiträge
    64
    Hi,

    ich stehe gerade auf dem Schlauch bei 2 Befehlen.

    1. Befehl
    PHP-Code:
    mvn R0#0xff  -> R0=0xffffff00
    movs R1R0asr #4 -> R1=0xfffffff0
    eors R0,Ro,R1 -> R0=0x000000F0 
    Kann mir mir einer sagen was genau dieses asr#4 bewirkt?
    Außerdem ist es mir Rätsel, wie ich das Exklusiv-Oder im Kopf bzw. schriftlich schnell mit Hex-Zahlen hinbekomme, ohne einen Taschenrechner zu benutzen.

    2. Befehl.

    PHP-Code:
    LDR R0,=0x7ffff -> R0 0x0007ffff
    movs R1
    ,R0,lsr#3 -> R1=0x0000ffff
    sub R0,R0,R1 -> R0=0x00070000 
    Hier habe ich mir lsr#3 (left-shift-right) meine Problem.
    Wie genau funktioniert das in diesem Beispiel.


    Vielen Dank im Voraus.

    Krikus
     

  2. #2
    NomadSoul NomadSoul ist offline Mitglied Platin
    Registriert seit
    Nov 2002
    Ort
    Mannheim
    Beiträge
    544
    Blog-Einträge
    5
    Hi
    sicher das lsr und asr nicht für logical- und arithmetical-shift right stehen?
    Mehr dazu: http://www.simplemachines.it/doc/QRC...t_v2.1_arm.pdf

    #x gibt die Anzahl an Shifts an.
     
    Zitat Zitat von Benjamin Franklin
    Eine Gesellschaft die Freiheit zugunsten der Sicherheit opfert hat beides nicht verdient
    Kohlkopf
    -------------------------------------------------------------------------------------------
    .:Mitglied und offizieller Erdbeerenpflanzer des 1. offiziellen Sven Uwe Fan-Clubs:.

  3. #3
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hallo,

    asr führt einen Arithmethischen Shift nach rechts aus. D.h. die Zahl wird um #Anzahl Bitpositionen nach rechts verschoben. Im Unterschied zum logical shift wird der Wert allerdings vorzeichen-erhaltend geschiftet. D.h. wenn die Zahl negativ war (an führender Bitposition steht eine 1) so werden auch 1en nachgeschoben anstatt 0en.

    Zu den Berechnungen:

    Wandle die Hexzahlen in Binärzahlen um und führe dann die jeweilige Operation aus:

    xor:
    Code :
    1
    2
    3
    
    R0 =0xffffff00 = 11111111111111111111111100000000b
    R1 =0xfffffff0 = 11111111111111111111111111110000b
    R0 xor R1      = 00000000000000000000000011110000b = 0x0000000F0
    Für den lsr #3 gilt folgendes:
    Code :
    1
    2
    
    R0 = 0x0007ffff = 00000000000001111111111111111111b >> 3
                    = 00000000000000001111111111111111b = 0x0000FFFF
    Gruß,
    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  4. #4
    Krikus Krikus ist offline Mitglied Silber
    Registriert seit
    Jan 2009
    Beiträge
    64
    Besten Dank für die schnelle Antwort.
    Habs nun in meinen Unterlagen ergänzt.
     

Ähnliche Themen

  1. Assembler
    Von Spongi27 im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 06.02.08, 21:18
  2. OS - Assembler und C++?!
    Von Philipp9494 im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 02.07.07, 21:10
  3. Assembler ISR
    Von Don_Pazo im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 04.02.07, 19:45
  4. C und Assembler
    Von maltor im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 02.06.06, 12:31
  5. Assembler
    Von Chronix im Forum Sonstige Sprachen
    Antworten: 3
    Letzter Beitrag: 15.11.04, 22:02