Adresse de base d'un segment

gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003 - 13 déc. 2002 à 20:16
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003 - 15 déc. 2002 à 09:11
voila si qqun pouvait me dire comment on fait pour définit l'adresse de base d'un segment. j'ai vu dans certaines docs ils mettent une equate au début du listing
CS_BASE equ 0ffff0000h
par exemple et si j'ai bien compris ce serait sensé mettre le segment de code à cette adresse, mais c'est tout ce qu'il faut faire ??

10 réponses

cs_GuruMeditation Messages postés 69 Date d'inscription samedi 28 octobre 2000 Statut Membre Dernière intervention 15 octobre 2004
13 déc. 2002 à 20:44
si tu veux changer ds, es, fs ou gs on fais soit un truc du genre :
mov ax,adresse
mov ds,ax
ou bien :

push adresse
pop ds

et pour le segment de code cs on utilise un jmp far
ou un call
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
13 déc. 2002 à 21:00
Merci pour la réponse mais je le savais déjà :)
Mon problème est autre, j'ai besoin d'un alignement sur 4ko pour charger mon page directories table dans CR3.
0
cs_GuruMeditation Messages postés 69 Date d'inscription samedi 28 octobre 2000 Statut Membre Dernière intervention 15 octobre 2004
13 déc. 2002 à 21:28
a ok faut être plus précis et j'avais pas vu qu'on était en 32 bits,le problème est tout autre donc en fait il faut modifier la GDT.
0
cs_GuruMeditation Messages postés 69 Date d'inscription samedi 28 octobre 2000 Statut Membre Dernière intervention 15 octobre 2004
13 déc. 2002 à 21:35
euh... en fait je ne comprend pas très bien compris avec ton equ tu utilises une bibliothèque spéciale ? parce que je ne voit pas comment
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
13 déc. 2002 à 21:59
En fait moi non plus je ne comprends pas cette ligne de code. C'est extrait d'un listing Intel et compilé avec ASM386. Et la il y a comme un chtit blème c'est que je ne connais pas cet ASM. De plus je ne veux pas modifier la GDT car l'alignement peut être quelquonque mais la page-directories-table référencée par le CR3 et qui sert de base pour le paging.
0
cs_GuruMeditation Messages postés 69 Date d'inscription samedi 28 octobre 2000 Statut Membre Dernière intervention 15 octobre 2004
13 déc. 2002 à 22:07
c'est dans quel pdf d'intel que tu trouves ce listing?
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
13 déc. 2002 à 22:37
C'est IA-32 Sofware Developer's Manual 3, chapitre 9 listing 1 STARTUP.ASM mais apparemment le listing dépend du fichier build qui l'accompagne et je me demandais s'il existe un équivalent sous MASM.
0
cs_GuruMeditation Messages postés 69 Date d'inscription samedi 28 octobre 2000 Statut Membre Dernière intervention 15 octobre 2004
14 déc. 2002 à 14:40
chez moi c'est au chapitre 8
j'ai pas trop étudié le code mais ça semble être du code pour passer en mode protégé ton CS_BASE est utilisé à la ligne 201, le build file après le code m'a tout l'air d'être un script pour BLD386 et qui semble être un éditeur de lien.
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
14 déc. 2002 à 19:15
oui j'ai vu que c'était le fichier build qui conditionnait le linkage mais il semblerait qu'il ne soit aps possible de faire la même chose sous MASM :/ je vais essayer autrement
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
15 déc. 2002 à 09:11
c bon g trouve ^^, suffit de passer en pmode pis tu ecris a une adresse bien alignee ;)
0
Rejoignez-nous