Aktuelle Zeit: 20.02.2020 14:22

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 28.09.2010 21:43 
Offline
BotHunter
Benutzeravatar

Registriert: 26.12.2005 14:14
Wohnort:   
Hallo!
Ich les' gerade in der Intel-Assembler-Referenz, wie man einige Infos zur CPU auslesen kann, dabei werden 6(!) verschiedene Informationen in einem eizigen Register (32 Bit) untergebracht... wie kann ich diese jetzt auslesen?

Hier ein Teil der Grafik:
Bild

Ich hätte es auch mit dem folgenden Code probiert:
Code:
EnableASM
Define.l stepping
!MOV EAX, $00000001
!CPUID
!MOV [v_stepping], EAX

Debug PeekL(@stepping)
Allerdings ist Long ja 4 Bytes groß, was bedeutet, dass "stepping" den ganzen Register "beherbergt", allerdings will ich ja nur die Bits 0 - 3. Mit PeekB() - was nur 1 Byte, also 4 Bit ausliest - hab ich's auch schon probiert, allerdings wird dann als Stepping die Zahl 49 angezeigt, obwohl mehrfach (WMI, CPU-Z, usw.) belegt wurde, dass die Stepping-ID '2' ist.
Außerdem sieht die Grafik aus, als wäre von Bit 12 bis 13 der 'Processor Type' gespeichert. Zwei Bit... ok, also mit PB nicht möglich, da man mindestens 1 Byte mit Peek<Whatever>() ausliest.
Hat jemand ne Lösung?
Danke im Voraus!

Gruß, Mok.

_________________
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 28.09.2010 22:22 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Ganz billig kannst du doch einfach Bin() nutzen:
Code:
;      %00000000000000000000000000000000
;       \Byte4 /\Byte3 /\Byte2 /\Byte1 /
;       \   Long                       /

Long = %00000011000001100000000000000100
Debug RSet(Bin(Long),32,"0")


Dann ganz "billig" mit Mid() den gewünschten bereich clippen:
Und mit Val() dann zur Zahl konvertieren
Code:
First4$ = Mid(Bits$,32-3,4)
Debug First4$
Debug Val("%"+First4$)

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 28.09.2010 22:31 
Offline
BotHunter
Benutzeravatar

Registriert: 26.12.2005 14:14
Wohnort:   
@STARGÅTE:
Hä?!

_________________
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 28.09.2010 22:39 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Was "hä?!"

Du hast geschreiben:
"dabei werden 6(!) verschiedene Informationen in einem eizigen Register (32 Bit) untergebracht"
32Bit = Long
Also alles in eine Long lesen,
zu einem Bit-String machen (siehe Code)
und dann den gewünschten teil auslesen (seihe Code)

Ansonst kannst du noch mit den Bit-Shift-Operatorn arbeiten << und >>

Code:
Long = %00000011000001100000000001110100
Ersten4Bits = Long&%1111
Debug Ersten4Bits
Naechsten6Bits = Long>>4&%111111
Debug Naechsten6Bits

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 28.09.2010 22:49 
Offline
Benutzeravatar

Registriert: 23.12.2005 12:41
Wohnort: München
Mok hat geschrieben:
Mit PeekB() - was nur 1 Byte, also 4 Bit ausliest


Ich bin ja normal nicht so und manchmal hab ich auch blöde Fragen, aber:

Fluid Byte hat geschrieben:
Bild
:lol:

_________________
BildKarte der Pureboard-Mitglieder


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 28.09.2010 22:56 
Offline
BotHunter
Benutzeravatar

Registriert: 26.12.2005 14:14
Wohnort:   
@STARGÅTE: Hab's jetzt kapiert!
@TomS: Ich hab's lange lustig gesehen, aber jetzt reicht's! ES REICHT!

_________________
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 29.09.2010 08:05 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:37
Wie wärs mit einem logischen Und und Bitverschiebung?

Für die Bits 0..3:
Code:
Debug stepping & $00000007

Für Bit 12..13:
Code:
Debug (stepping >> 12) & $00000003

_________________
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 29.09.2010 10:31 
Offline
Benutzeravatar

Registriert: 23.12.2005 12:41
Wohnort: München
Ich kann ja nicht's dafür, wenn du in der Schule nicht aufgepasst hast. /:->
Vielleicht sollte man sich bevor man so komplizierte Sachen versucht ersteinmal mit den Grundlagen beschäftigen.

_________________
BildKarte der Pureboard-Mitglieder


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 29.09.2010 14:15 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
@TomS
Ich denke mal er hat sich nur verschreiben meint aber das richtige ...

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sequentiell Bits aus CPU-Register auslesen
BeitragVerfasst: 29.09.2010 14:41 
Offline
BotHunter
Benutzeravatar

Registriert: 26.12.2005 14:14
Wohnort:   
@DD: Elegant gelöst! :allright:
@TomS: Ich kann ja nichts dafür, wenn du nichts besseres zu tun hast, als Radfahr-Bilder in irgendwelche Threads zu posten.
Vielleicht sollte man sich bevor man so nen Scheiß macht, erst einmal überlegen, ob man sich nicht schonmal selber verschrieben hat...

_________________
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye