Seite 1 von 1

Bitweiser Zugriff

Verfasst: 14. Dez 2009 21:23
von maZ
Hallo,

ich wüsste gern, ob man beim MIPS-Assembler auf einzelne Bits im Speicher zugreifen kann, um da Infos wie Tag etc auszulesen. Oder ist das auch in Ordnung, wenn wir bei den Verwaltungsbits nicht mehr als angegeben brauchen, aber jede Art in einem eigenen Byte steht?

Also 1. Byte DirtyBit, 2. Byte ValidBit, 3. Byte Tag und 4. Bit Ersetzungsinformationen..

Hab nämlich sonst noch keine Ahnung, wie ich meine Datenstruktur dafür anders aufziehn soll.
Gruß,
maz

Re: Bitweiser Zugriff

Verfasst: 14. Dez 2009 21:24
von LucasR
Lade dir deine Speicherinformationen z.b. mit lb, und shifte anschließend genügend nach links und rechts, bis du genau das übrig hast, was du haben wolltest :)

Re: Bitweiser Zugriff

Verfasst: 14. Dez 2009 21:39
von maZ
Stimmt, macht Sinn!

Danke für die schnelle Hilfe ;)

Re: Bitweiser Zugriff

Verfasst: 14. Dez 2009 23:16
von chl
Eleganter ists, wenn du sowas machst (willst zb gucken ob das 2te Bit in $t0 gesetzt ist)

Code: Alles auswählen

andi $1, $t0, 2 #wenn in $t0, das zweite bit gesetzt ist, wird $t > 0 (=true) und sonst 0 (=false)
beqz false
true:
...
j end_if
false:
...
end_if:
Setzen kannst du die Bits dann mit or auf analoge Art und Weise. Willst du ein Bit loeschen so ver- and'es du es mit einer Zahl bei der saemtliche Bits gesetzt sind bis auf die, die du loeschen willst.