je regarde a la loupe le pb des exceptions sous Windows 32 (
http://www.microsoft.com/msj/0197/Exception/Exception.aspx ) et j'ai un
problème avec les adresses.
En effet, lorsqu'une exception système est levé, windows recherche le
descripteur d'exception avec FS:[0] .
Or j'ai un problème avec les adresses. FS étant égale à 0x0038, j'ai
pensé que l'adresse du descripteur d'exception était a l'adresse
0x00380000.... Or pas du tout .... Et je vois pas ce qui cloche dans mon
résonnement.
"L'adresse logique est sous la forme segment:offset.
*En mode réel*, le calcul est simple : on multiplie le numéro du segment par 16, et on ajoute l'offset. Ainsi l'adresse logique emph0x60:0x20 équivaut en linéaire à emph0x60 * 16 + 0x20 = 0x620.
*En mode protégé*, c'est plus complexe, puisque les segments sont définis par le système, et leur emplacement et taille varient en fonction du système d'exploitation installé".
"L'adresse logique est sous la forme segment:offset.
*En mode réel*, le calcul est simple : on multiplie le numéro du segment par
16, et on ajoute l'offset. Ainsi l'adresse logique emph0x60:0x20 équivaut en
linéaire à emph0x60 * 16 + 0x20 = 0x620.
*En mode protégé*, c'est plus complexe, puisque les segments sont définis
par le système, et leur emplacement et taille varient en fonction du système
d'exploitation installé".
"L'adresse logique est sous la forme segment:offset.
*En mode réel*, le calcul est simple : on multiplie le numéro du segment par 16, et on ajoute l'offset. Ainsi l'adresse logique emph0x60:0x20 équivaut en linéaire à emph0x60 * 16 + 0x20 = 0x620.
*En mode protégé*, c'est plus complexe, puisque les segments sont définis par le système, et leur emplacement et taille varient en fonction du système d'exploitation installé".
"L'adresse logique est sous la forme segment:offset.
*En mode réel*, le calcul est simple : on multiplie le numéro du segment par 16, et on ajoute l'offset. Ainsi l'adresse logique emph0x60:0x20 équivaut en linéaire à emph0x60 * 16 + 0x20 = 0x620.
*En mode protégé*, c'est plus complexe, puisque les segments sont définis par le système, et leur emplacement et taille varient en fonction du système d'exploitation installé".
merci Christian pour toutes ces informations détaillées. Je me demandais si il y avait un moyen simple de convertir une adresse offset:segment en adresse linaire ( dans le cas ou c est possible ) sous mode protégé. en d'autre mots, peut on simplement accéder aux tables des descripteurs GDT, LDT et IDT pour faire la conversion "manuellement".
merci
-- Cordialement, Heinquoi
dans son post, Christian <christnw-a-virer-@free.fr> nous à dit:
"L'adresse logique est sous la forme segment:offset.
*En mode réel*, le calcul est simple : on multiplie le numéro du
segment par 16, et on ajoute l'offset. Ainsi l'adresse logique
emph0x60:0x20 équivaut en linéaire à emph0x60 * 16 + 0x20 = 0x620.
*En mode protégé*, c'est plus complexe, puisque les segments sont
définis par le système, et leur emplacement et taille varient en
fonction du système d'exploitation installé".
merci Christian pour toutes ces informations détaillées.
Je me demandais si il y avait un moyen simple de convertir une adresse
offset:segment en adresse linaire ( dans le cas ou c est possible ) sous
mode protégé. en d'autre mots, peut on simplement accéder aux tables des
descripteurs GDT, LDT et IDT pour faire la conversion "manuellement".
"L'adresse logique est sous la forme segment:offset.
*En mode réel*, le calcul est simple : on multiplie le numéro du segment par 16, et on ajoute l'offset. Ainsi l'adresse logique emph0x60:0x20 équivaut en linéaire à emph0x60 * 16 + 0x20 = 0x620.
*En mode protégé*, c'est plus complexe, puisque les segments sont définis par le système, et leur emplacement et taille varient en fonction du système d'exploitation installé".
merci Christian pour toutes ces informations détaillées. Je me demandais si il y avait un moyen simple de convertir une adresse offset:segment en adresse linaire ( dans le cas ou c est possible ) sous mode protégé. en d'autre mots, peut on simplement accéder aux tables des descripteurs GDT, LDT et IDT pour faire la conversion "manuellement".
merci
-- Cordialement, Heinquoi
Aurélien REGAT-BARREL
Je crois que LGDT n'est pas une instruction protégée. Donc moyennant un peu d'asm ça devrait être faisable.
-- Aurélien REGAT-BARREL
Je crois que LGDT n'est pas une instruction protégée. Donc moyennant un peu
d'asm ça devrait être faisable.
Je crois que LGDT n'est pas une instruction protégée. Donc moyennant un peu d'asm ça devrait être faisable.
-- Aurélien REGAT-BARREL
Vincent Burel
"Aurélien REGAT-BARREL" wrote in message news:416aa475$0$295$
Je crois que LGDT n'est pas une instruction protégée. Donc moyennant un
peu
d'asm ça devrait être faisable.
LGDT , ca load le descripteur de table globale dans le registre GDTR , sous windows, si ca passe ca risque de planter :-) vaut mieux essayer la version STORE : SGDT par exemple.
VB
"Aurélien REGAT-BARREL" <nospam-aregatba@yahoo.fr.invalid> wrote in message
news:416aa475$0$295$626a14ce@news.free.fr...
Je crois que LGDT n'est pas une instruction protégée. Donc moyennant un
peu
d'asm ça devrait être faisable.
LGDT , ca load le descripteur de table globale dans le registre GDTR , sous
windows, si ca passe ca risque de planter :-)
vaut mieux essayer la version STORE : SGDT par exemple.
"Aurélien REGAT-BARREL" wrote in message news:416aa475$0$295$
Je crois que LGDT n'est pas une instruction protégée. Donc moyennant un
peu
d'asm ça devrait être faisable.
LGDT , ca load le descripteur de table globale dans le registre GDTR , sous windows, si ca passe ca risque de planter :-) vaut mieux essayer la version STORE : SGDT par exemple.
VB
AMcD®
heinquoi wrote:
Je me demandais si il y avait un moyen simple de convertir une adresse offset:segment en adresse linaire ( dans le cas ou c est possible ) sous mode protégé. en d'autre mots, peut on simplement accéder aux tables des descripteurs GDT, LDT et IDT pour faire la conversion "manuellement".
Je publierai un post (long) à ce sujet ce soir.
-- AMcD®
http://arnold.mcdonald.free.fr/
heinquoi wrote:
Je me demandais si il y avait un moyen simple de convertir une adresse
offset:segment en adresse linaire ( dans le cas ou c est possible )
sous mode protégé. en d'autre mots, peut on simplement accéder aux
tables des descripteurs GDT, LDT et IDT pour faire la conversion
"manuellement".
Je me demandais si il y avait un moyen simple de convertir une adresse offset:segment en adresse linaire ( dans le cas ou c est possible ) sous mode protégé. en d'autre mots, peut on simplement accéder aux tables des descripteurs GDT, LDT et IDT pour faire la conversion "manuellement".