Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2638 connectés 

 


Dernière réponse
Sujet : l'ASM est il un langage universel ? ( en tous cas multi plateforme ? )
Profil supprimé c'est un peu limite niveau protabilité l'asm..

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
c'est un peu limite niveau protabilité l'asm..
fabsk Puisque je m'ennuie, voila une petite prose:
 
l'assembleur est le langage le plus bas-niveau qu'il existe (enfin, tu peux aussi ecrire du code avec un editeur hexa, mais faut etre tres tres maso). Les instructions assembleurs sont minimalistes (ajoute, soustrait, copie de la memoire...) et correspondent a des instructions du processeur.
Hors, il existe differentes familles de processeur (ben les processeurs x86 ne sont pas compatibles avec les PowerPC des Macs). Qui ont chacune les instructions, leurs registres (des variables a l'interieur du processeur qui permettent de faire des calculs et des manips memoire). Bref, programmer en asm sur chaque plateforme est different.
Pire: tous les compilateurs n'ont pas la meme syntaxe.
 
De plus, vu que c'est bas-niveau, si tu veux faire un truc du style:
a + (b*c) - (d/3.5)
ben ca va te prendre quelques lignes de code. Et un gros programme va avoir beaucoup beaucoup beaucoup de ligne de code.  
 
Si tu te poses la question, et bien je te dis: commence par un autre langage:
- python
- c++
j-'-r arg je suis mal barré :ouch:
antp L'assembleur dépend du type de processeur cible.
 
Exemple d'un bout de code assembleur x86 (PC), une fonction qui lit un bmp (un bout pris dans le programme "Hexagones" dispo avec le source sur mon site) :

Code :
  1. AFFICHE_BMP PROC
  2.         MOV DI,63999         ; 64000 pixels
  3.         MOV AX,0A000h
  4.         MOV ES,AX
  5.         MOV CX,200           ; 200 lignes de 320 pixels
  6. @@NextLine:
  7.         PUSH CX
  8.         MOV SI,319           ; 320 pixels par ligne
  9.         MOV BX,BMP_Handle
  10.         MOV CX,320           ; 320 pixels, sert pour la boucle et en
  11.         LEA DX,BMP_Ligne     ;   m?me temps pour la lecture
  12.         CALL LIRE_FICHIER
  13. @@NextPixel:
  14.         MOV BL,BMP_Ligne[SI]
  15.         MOV ES:[DI],BL
  16.         DEC DI
  17.         DEC SI
  18.         LOOP @@NextPixel
  19.         POP CX
  20.         LOOP @@NextLine
  21.         RET
  22. AFFICHE_BMP ENDP


 
Par contre ça sera dur à expliquer, j'ai fait ça y a trois ans :D

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]

Tetragrammaton IHVH Non au contraire  :sarcastic:
j-'-r ???
 
des liens SVP
 
es ce simple a apprendre,
quelles bases conseillez vous
 
une ligne de code expliquée c est possible ( que je pleure :) )
 
MERCI

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)