2010-08-19 3 views
1

Je suis en train de lire le livre "Professional Assembly Language", avec un exemple de code écrit pour les processeurs Intel IA-32. L'assembleur utilisé est GNU Assembler. Où puis-je trouver cette référence d'assemblage? Par exemple, en écrivant Assembly for Windows, je peux trouver la référence sur le site WEB d'Intel. Qu'en est-il de Linux et de GNU Assembler?Linux Assembly reference

+0

Avez-vous essayé wikipedia: http://en.wikipedia.org/wiki/GNU_Assembler et les ressources qui s'y trouvent ? –

+0

La syntaxe par défaut est connue sous le nom de syntaxe AT & T si cela vous aide à google it. IIRC 'as' a cependant un commutateur pour accepter la syntaxe Intex. – Rup

Répondre

2

L'assembleur dépend uniquement de la CPU et non du système d'exploitation. Les documents Intel sont donc ce que vous cherchez.

Si vous souhaitez appeler les fonctions du système d'exploitation, vous devez lire les documents ABI du compilateur (qui expliquent comment transmettre les arguments et comment la valeur de retour est gérée). De plus, vous avez besoin d'une liste de fonctions que vous pouvez trouver dans les pages de manuel de votre machine Linux. Pour commencer, je suggère de compiler un programme dans un langage de haut niveau comme C en assembleur pour voir ce qui se passe. Appelez simplement gcc -S file.c au lieu de gcc -c file.c.

+0

Vrai mais comment est-ce lié à la question ou à ma réponse? –

0

Si vous travaillez avec un livre sur Intel IA 32, alors vous devriez essayer saisir les manuels de jeu d'instructions à partir du site d'Intel http://developer.intel.com/products/processor/manuals/index.htm Je pense que ce sera comme une référence complète pour l'instruction.

La référence du langage d'assemblage pour Linux et Windows sera la même s'ils sont installés sur la même architecture, car le langage d'assemblage dépend de l'architecture. Utilisez la référence du jeu d'instructions si vous utilisez une CPU Intel.

Pour la syntaxe de votre assembleur bien vous devriez vérifier le manuel qui l'accompagne pour gnu

http://sourceware.org/binutils/docs-2.20/as/