Adresse de base d'un segment

Signaler
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003
-
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003
-
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

Messages postés
69
Date d'inscription
samedi 28 octobre 2000
Statut
Membre
Dernière intervention
15 octobre 2004

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
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003

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.
Messages postés
69
Date d'inscription
samedi 28 octobre 2000
Statut
Membre
Dernière intervention
15 octobre 2004

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.
Messages postés
69
Date d'inscription
samedi 28 octobre 2000
Statut
Membre
Dernière intervention
15 octobre 2004

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
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003

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.
Messages postés
69
Date d'inscription
samedi 28 octobre 2000
Statut
Membre
Dernière intervention
15 octobre 2004

c'est dans quel pdf d'intel que tu trouves ce listing?
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003

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.
Messages postés
69
Date d'inscription
samedi 28 octobre 2000
Statut
Membre
Dernière intervention
15 octobre 2004

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.
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003

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
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003

c bon g trouve ^^, suffit de passer en pmode pis tu ecris a une adresse bien alignee ;)