Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: thetrue am 19. July 2006, 23:14
-
dw (irq2 and 0xFFFF) ;Offset für IRQx
dw 0x8 ;Codesegment 8
db 0 ;
db 10001110b ;"Präsenz"-Bit, DPL und Segmenttyp
dw irq2 shr 16
was bewirkt das "and 0xFFFF" ???
bite erlährt es mir, weil ich sonst verzweifele ...
-
Der Ausdruck (irq2 and 0xFFFF) bewirkt, dass nur die unteren 16bits der Adresse irq2(ich denke mal das ne Adresse von nem IRQ Handler XD) behalten werden, der rest wird 0. Und da bei diesem Interrupt Gate nunmal das erste Wort die unteren 16bit der 32bit-Handleradresse speichern sollen, muss dafür gesorgt werden, dass auch nur die unteren 16bits gespeichert werden. ;)
Ich hoffe die Antwort hat geholfen...
-
jop, danke, jetzt verstehe ich es einigermassen
-
Kleine Frage... welchen Assembler benutzt denn du?
Und was hast du denn noch nicht verstanden?
-
Kleine Frage... welchen Assembler benutzt denn du?
Und was hast du denn noch nicht verstanden?
seid paar stunden benutze ich FASM :D
ÖHM, also wenn man AND benutzt, dann ist:
0110b AND 1010b
das ergibt doch
0010b
aber wieso wird bei adn 0xFFFF 16 nullen drangestellt?
-
ÖHM, also wenn man AND benutzt, dann ist:
0110b AND 1010b
das ergibt doch
0010b
jo
aber wieso wird bei and 0xFFFF 16 nullen drangestellt?
:?:
-
Es werden nicht 16 Nullen drangehängt. Es werden dann nur die unteren 16 Bit berücksichtigt, der Rest auf Null. Damit du einen 16 Bit Wert hast und keinen größeren werden die Werte ab Bit16 genullt (wenn ich das mal so sagen darf). Dann hast du einen 16 Bit wert.
Beispiel:
Wert = 12345678h
Wert and 0FFFFh
Wert = 5678h
bitmaster
-
ahh, alles klar danke @all