Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
Verfasst am: 04.05.2011, 18:13 Titel: Registerübersetuzung von www.ctyme.com zu QB |
|
|
Sorry für den missverständlich Thread-Titel.
Aber ich weiß nicht wie es richtig heißt.
Die Register in der 'QB.BI' sind anders als auf 'www.ctyme.com'.
Kann mir einer sagen, welches Register auf 'www.ctyme.com' in der 'QB.BI' entspricht? |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 04.05.2011, 19:40 Titel: |
|
|
ctyme.com ist die Website eines Hostinganbieters. |
|
Nach oben |
|
|
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 04.05.2011, 21:13 Titel: |
|
|
"QB.BI" verwendet dieselben Registerbezeichnungen, die auf der genannten Website verwendet werden und auch den allgemein üblichen Bezeichnungen entsprechen (mir wäre noch keine andere Bezeichnungsvariante für die Register einer minimalistischen x86 CPU untergekommen). Der einzige (allerdings irrelevante) Unterschied besteht darin, dass in der "QB.BI" die Registernamen in Kleinbuchstaben, auf der genannten Website allerdings in Großbuchstaben stehen.
Wenn du die Bezeichnungen meinst, die mit "..L" bzw. "..H" anstatt dem sonst üblichen "..X" enden oder ein voranstehendes "E...." Zweifel aufkommen lässt solltest du ein paar Grundlagen über die x86 Prozessorarchitektur und die Register lesen.
Weiteres dazu findest du z.B. auf folgenden Websites:
http://de.wikipedia.org/wiki/X86-Prozessor#Real_Mode
http://www.eecg.toronto.edu/~amza/www.mindsec.com/files/x86regs.html
Wenn dies deine Frage nicht löst wäre es hilfreich, wenn du einige Registerbezeichnungen nennen würdest, von denen du in der "QB.BI" keine Übereinstimmung finden kannst. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
Verfasst am: 04.05.2011, 21:39 Titel: |
|
|
Sorry.
Aber das ist mir zu hoch.
in der QB.BI steht.
[code]
' Define the type needed for INTERRUPT
'
TYPE RegType
ax AS INTEGER
bx AS INTEGER
cx AS INTEGER
dx AS INTEGER
bp AS INTEGER
si AS INTEGER
di AS INTEGER
flags AS INTEGER
END TYPE
' Define the type needed for INTERUPTX
'
TYPE RegTypeX
ax AS INTEGER
bx AS INTEGER
cx AS INTEGER
dx AS INTEGER
bp AS INTEGER
si AS INTEGER
di AS INTEGER
flags AS INTEGER
ds AS INTEGER
es AS INTEGER
END TYPE
[/code]
Laut dem zweiten Link sin AX, BX, CX und DX 16bit-Register.
Aber AH, AL, BH, BL, CH, CL, DH und DL sind nicht vorhanden.
Auf der Seite die ich verlinkt habe, steht was von BH und BL.
Aber das die in der QB.BI nicht vorhanden sind, weiß ich nicht was ich nehmen soll.
Also ich schnall da nicht durch. Wie gesagt, ist mir das zu hoch.
Hilfreich wäre eine Art Tabelle won z.B. links die Register-Bezeichnungen aus der QB.BI stehen und rechts die der Seite. |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 04.05.2011, 22:36 Titel: |
|
|
AH A High
AL A Low
Jeweils die höher/niederwertigeren Bits. |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 04.05.2011, 22:47 Titel: |
|
|
Wenn dir das - wie du selbst gesagt hast - zu hoch ist, befürchte ist dass dir weitere essentielle Grundlagen für die Verwendung von Software-Interrupts fehlen.
Dennoch noch ein Versuch das Ganze zu klären:
Die vier Allzweckregister (AX, BX, CX, DX) sind jeweils 2-Bytes (= 16 Bits) groß. Es können jedoch jeweils auch das Niederwertige Byte (LowByte - AL, BL, CL, DL - untere 8 Bit) und das Höherwertige Byte (HighByte - AH, BH, CH, DH - obere 8-Bit) einzeln angesprochen werden.
Daraus folgt für deine geforderte Übersetzungstabelle:
AX = AH * 256 + AL
BX = BH * 256 + BL
CX = CH * 256 + CL
DX = DH * 256 + DL
In QBasic gibts keine Shift Operatoren, deswegen die Multiplikation mit 256. Normalerweise würde hier ein "SHL 8" bzw. "<< 8" verwendet werden.
Wenn diese einfache Grundlage jetzt noch immer nicht klar ist, würde ich dir empfehlen, dass du dir die Grundlagen zu Bit-Arithmetik und zur x86-Architektur aneignest. Wikipedia ist hier stets eine gute Resource. Ich will hier nicht Grundlegendes Wissen zum x-ten mal erklären.
Zum Schluss hab ich noch eine kleine Gegenfrage: zu was benötigst du Interrupts? Soweit ich deinen Wissensstand im Bereich der Programmierung einschätze bezweifle ich nämlich stark, dass du Interrupts richtig aufrufen und verwenden kannst, wenn du schon bei solch simplen Grundlagen scheiterst.
Interrupts sind ein Thema für fortgeschrittene bis Profi-Programmierer - meiner Einschätzung nach. Jedenfalls definitiv nix für Anfänger. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
Verfasst am: 04.05.2011, 22:54 Titel: |
|
|
Also wie so wie ich das jetzt verstanden habe sieht das für mich so aus:
AX (16 BIT, 2 Bytes)
AH = Der erste Teiil von AX
AL = Der zweite Teil von AX
Liege ich damit richtig? |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
|
Nach oben |
|
|
nixsager
Anmeldungsdatum: 16.08.2007 Beiträge: 70
|
Verfasst am: 04.05.2011, 23:22 Titel: |
|
|
Vielen dank!!!
Jetzt bin ich Idiot wieder ein bisschen schlauer. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 06.06.2011, 22:10 Titel: |
|
|
hi,
dann will ich auch
http://ytwinky.freebasic-portal.de/tuts/cpu_registermodell.htm
(in Zusammenarbeit mit Volta, aber das steht ja auch auf der Seite^^)
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
|