Question

Dans la section 4.3 de Intel 64® et IA-32 Logiciel Architectures Manuel du développeur . Volume 1: Architecture de base , il dit:

  

Un pointeur près est un décalage de 32 bits ... dans un segment. pointeurs proches sont utilisés pour toutes les références de mémoire dans un modèle de mémoire plat ou pour les références données dans un modèle segmenté où l'identité du segment est en cours d'accès implicite.

Cela conduit à me demander: comment est déterminé le registre secteur implicite

Je sais que (%eip) et (%eip) déplacées (par exemple -4(%eip)) adresses utilisent %cs par défaut, et que (%esp) et adresses (%esp) déplacées utilisent %ss, mais qu'en est-(%eax), (%edx), (%edi), (%ebp) etc., et peuvent le registre de segment implicite dépendent également sur l'instruction que l'adresse de mémoire opérande apparaît dans?

Était-ce utile?

La solution

Autre que registre CS et SS accès que vous avez mentionné, la plupart des autres accès utiliseront le registre de segment DS. A exceptions couple que je peux rappeler:

  • les instructions cordage-utilisera le ES pour la 'destination' (adressée implicitement par le registre EDI) registre de segment
  • accès à la mémoire en utilisant le registre de EBP comme un registre « d'adresse de base » utilisera le registre de segment de SS. Toutefois, si le registre d'EBP est utilisé comme registre d'index mis à l'échelle, le segment utilisé sera DS (sauf si le registre d'adresse de base est ESP)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top