Comment puis-je préfixer un `SS:` `ou ES:` l'aide d'AT & T Assemblée Syntaxe
Question
Comment puis-je préfixer un SS:
ou ES:
en utilisant AT & T Syntaxe Assemblée sans ajouter dans un .byte 0x36
ou .byte 0x26
?
ie. Comment pourrais-je être en mesure de convertir mov dword ptr ss:[esp+0x10], offset foo
de la syntaxe Intel AT & T sans utiliser:
.byte 0x36
movl $foo, 0x10(%esp)
J'ai essayé movl $foo, %ss:0x10(%esp)
qui rassemble sans avertissement mais, en regardant à travers le binaire, ne fonctionne toujours pas ajouter dans SS:
La solution
IIRC, le préfixe SS:
n'est pas nécessaire lorsqu'il est utilisé avec les registres de ESP
et EBP
, parce que pour ceux-ci, il est déjà la valeur par défaut.
Cela pourrait être la raison pour laquelle l'assembleur omet simplement de conserver de l'espace; Par conséquent, la nécessité d'émettre manuellement le préfixe SS:
comme un octet 0x36
, comme l'assembleur ne modifiera octets bruts.