Aller au contenu

Discussion:Assembleur

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

What the...

[modifier le code]

Ce que je vais dire ne va pas être très productif, mais j'ai envie de l'écrire. Cet article est une bouse infâme, et je suis poli. Il est tellement mauvais que si on devait décrire en quoi il est mauvais on ne saurait même pas par où commencer. J'abandonne.


Logique d'expression

[modifier le code]

Tu écris "le langage d'Intel semble plus logique", à propos de la manière de représenter l'affectation d'une valeur à une variable. Si on prend comme point de repère le symbolisme mathématique, d'accord avec toi : les deux formulations sont cohérentes. Mais tu notrera que la structure que tu expose en premier : " mov ceci dans celà" est tout autant logique si on prend comme repère la manière ordinaire d'exprimer ce genre d'opérations : MOV évoquant "déplace", ont exprime toujours d'abord ce qu'on déplace et ensuite ce dans quoi (ou vers quoi) on le déplace.

Tout ceci n'enlève rien à l'intérêt de ton article, par ailleurs bien foutu.

Merci à toi.

Etienne

Il y a peut-être une raison à cet ordre, par exemple pour mov AL,0x61 :
  • 10110000 mov AL
  • 01100001 0x61
Peut-être ont-ils écrit l'assembleur en tenant compte de cette correspondance. Même si ce n'est pas la manière ordinaire d'exprimer cette opération :) Vanished2012 23 septembre 2005 à 11:18 (CEST)[répondre]


Exemple ?

[modifier le code]

C'est sous quel OS cet exemple en syntaxe ATT ? --Serged 7 octobre 2005 à 11:33 (CEST)[répondre]

Lien vers MenuetOS ?

[modifier le code]

Actuellement développé intensément, un OS écrit en assembleur : http://www.menuetos.net/

Article recyclé

[modifier le code]

Dans le but de recycler l'article j'ai enlevé la partie suivante de l'article avant retravail, n'y voyant pas comment intégrer cette partie qui me semble un peu confuse en l'état --Jef-Infojef (d) 22 décembre 2007 à 21:15 (CET)[répondre]

Le sens des transferts

[modifier le code]

Les opérandes peuvent être inversés.

Remarquons quand même que cette instruction se traduit dans la plupart des langages évolués par (ici en pseudo-C) :

Al = 0x61 ;

traduite en syntaxe Intel par

 mov al, 0x61

Cette syntaxe ("Intel") semble la plus logique. En effet la plupart des langages évolués ont une filiation (indirecte) avec le grand ancêtre Fortran qui a introduit cette convention.

Remarquons aussi que en français on dirait :

mettre 0x61 dans AL;

traduite en syntaxe AT&T par

movl $0x61, %al

et en langage Cobol on écrit

move 97 to AL  

La syntaxe "AT&T" (opérandes inversés) semble alors la plus logique.

Mais en français on écrit aussi :

AL reçoit 0x61

qui semble tout aussi naturel. La langue parlée ne permet donc pas de justifier certaines préférences lorsqu'il s'agit de définir la syntaxe d'un langage de programmation.

Signification

[modifier le code]

le code assembleur

       .globl _start
BONJ:   .ascii  "Bonjour\n"      ; Définition en mémoire de la chaîne à afficher. \n correspond au saut de ligne
_start: mov     $4      , %eax   ; Mettre 4 dans le registre eax (appel système 'Write)
        mov     $1      , %ebx   ; Mettre 1 dans le registre ebx (descripteur de fichier STDOUT)
        mov     $BONJ   , %ecx   ; Mettre l'adresse mémoire de notre chaîne de caractère dans le registre ecx
        mov     $8      , %edx   ; Mettre la taille de la chaîne dans edx
        int     $0x80            ; Interruption 0x80, exécutant un appel système sous Linux)

        mov     $1      , %eax   ; Mettre 1 dans eax (appel système Exit)
        mov     $0      , %ebx   ; Mettre 0 dans ebx (valeur de retour du programme)
        int     $0x80            ; Interruption 0x80, exécutant un appel système sous Linux)

signifie quoi en binaire? ZXZ 2006 (d) 21 janvier 2011 à 15:38 (CET)[répondre]

les flags

[modifier le code]

vous avez oublié de parler de flags dans votre sujet

petit problème

[modifier le code]

L'article mentionne que la machine de turin n'était pas forcément dotée d'un tel langage, ce qui donne l'impression que la machine de Turin est une machine "réelle" et non un modèle théorique. Jean 5 5 (d) 6 octobre 2012 à 13:50 (CEST)[répondre]

Je ne suis pas procurateur du créateur de la phrase citée, mais il me semble que, quant il parle Il peut sembler évident que pour donner une consigne à une machine un langage est nécessaire, il ici peut-être ne parle pas necessairement d'un machine physique... (donc, apparement, le concept de la 1ère occurrence du mot peut s'identifier avec la seconde) Eduardofeld (d) 6 octobre 2012 à 17:32 (CEST)[répondre]

Programmation structurée en assembleur

[modifier le code]

Peut-être faut-il créer une page concernant la famille des langages structurés de bas niveau, commme : PL 360 (Wirth), PL-M, PL-Z (Zilog), LP 70 (iris 80), PL 1600 (T1600) ou Portal (Landis & Gyr)... pour ne pas dire C.

Ces langages ont laissé la place à la distinction de 2 niveaux dans les langages ultérieurs :

  • module System en Modula 2,
  • distinction module symbolique/module physique en LIS,
  • clauses de représentation en Ada.

En effet, disait Ichbiah après la réécriture de Siris 7, un système d'exploitation n'a pas besoin de plus de 10% de code physique ; pour le reste, une programmation de haut niveau est plus claire et plus fiable.

Lf69100 (discuter) 20 février 2016 à 12:43 (CET)[répondre]

Excuses pour l'effet "Bac à sable"

[modifier le code]

C'est en forgeant qu'on devient forgeron, dit-on... Ce renvoi vers l'article Nathaniel Rochester m'aura appris à manier le Wikicode en ce sens.. Espérons que j'en retiendrai la syntaxe une bonne fois afin de moins polluer les pages de modifications successives ultérieures! Mitchosaure (discuter) 13 juin 2020 à 17:35 (CEST)[répondre]

langage de plus bas niveau

[modifier le code]

L'introduction dit « langage de plus bas niveau qui représente le langage machine sous une forme lisible par un humain ». Si le langage d'assembleur représente le langage machine, c'est que le langage machine est de niveau plus bas que lui. Il y a là une contradiction. Pierre de Lyon (discuter) 27 septembre 2021 à 21:33 (CEST)[répondre]

OUI : la définition ici donnée est fausse. (Ce qui fait que mes contributions à Wikipédia risquent de se tarir)
l'assembleur est un programme qui utilise la mnémonique (ex: MOV, PUSH &... ou instructions d'un processeur) d'un programme source en TEXTE pour générer le LANGAGE MACHINE qui lui n'est pas directement accessible. (oublions le monitoring)
donc une confusion entre le LANGAGE MACHINE OU BINAIRE (dit bas niveau parce qu'il n'y a plus que de l'électricité "en dessous") et ASSEMBLEUR qui est un PROGRAMME, lui même écrit en langage machine.
d'ailleurs les dictionnaires sont correctes, eux.(Robert, Larousse&)
DONC ON N'UTILISE PAS "ASSEMBLEUR" MAIS LANGAGE MACHINE pour parler du langage processeur. JrpLaurent (discuter) 17 mars 2024 à 13:32 (CET)[répondre]