CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

l'asm ?

lord_kalipsy
lord_kalipsy
Niveau 10
24 mars 2004 à 23:53:48

bonjour :)

Il y a quelque temps des gens mon conseiller d´esseyer d´apprendre ou du moins de me renseigner sur l´ASM, car il parait que si on connais l´asm on a plus de facilite a comprendre les autres langages ( C, C++, Pascal, etc . ..).

Alors j´ai esseyer de me renseigner sur le web et la je me pose des ta de questions :snif:

1- ce quoi la difference entre TASM , FASM , NASM ? ?? c´est un compilateur ou un langage different ?

2- qu´est ce que l´on peu faire en assembleur ?

3- quel sont le difference en l´assembleur 16 bits et 32 bits ?

4- est ce que c´est difficile a apprendre ?

5- est ce que c´est vrai que sa facilite la comprehension des autre langage ?

j´ai d´autre question mais la j´ai oublier . .. :honte: .

merci :)
Kalipsy

lord_kalipsy
lord_kalipsy
Niveau 10
24 mars 2004 à 23:57:56

ah j´ai oublier . ..

6- pouvez vous mem ontrer un exemple d´un " hello world" en asm ?

merci :)
Kalipsy

JeanYvesYves
JeanYvesYves
Niveau 10
25 mars 2004 à 01:52:46

car il parait que si on connais l´asm on a plus de facilite a comprendre les autres langages ( C, C++, Pascal, etc . . .).

--> Faux. Certes, l´assembleur te permet de comprendre vraiment comment marche ta machine, mais tu peux t´en passer totalement maintenant.
Et ce langage de ( 1ere génération : machine) ne t´aidera pas a comprendre le C, pascal ( 2e gen : procédural) ou C++ ( 3e gen : objet), car ce n´est pas du tout la meme approche...
Je ne te conseille pas l´ASM, tu vas te dégouter de l´informatique.

1 - Linker ( =compilateur vite fait...) différent ( pour MASM et TASM), surement pareil pour les autres dont je n´ai pas entendu parler.

2 - On peut TOUT faire en assembleur : dans la mesure ou ta machine ne lit QUE des codes machine, meme quand tu joues au jeu le plus puissant qui soit.

3 - l´ASM utilise les registres 16 bits ou 32 bits du processeur : c´est a dire que l´ordi est capable, en 1 cycle CPU, de gérer 2 octets ou 4 octets, les registres étant AX ( 16 bits) et EAX ( 32 bits) et qq autres...
Depuis le 40386 ( sorti en 1991), les processeurs gerent tous le 32 bits, tu ne trouveras qu´au musée des processeurs gérant que le 16 bits.

4 - C´est monstrueux.

5 - Selon moi, faux. Il est certes bien, quand on connait d´autres langages, de savoir, pour sa culture, ou pour un peu mieux comprendre, de voir l´assembleur, pour savoir comment marche la machine, mais quand on est déja expérimenté.
Et selon moi, tu peux t´en passer.
L´invention des langages évolués avait comme principe : " Masquer la notion pénible d´assembleur a l´utilisateur, la rendre transparente"

6 - je vais essayer, mais c´est pas gagné.

NAME hello

. MODEL SMALL
. 386
. STACK 80H

. DATA
chaine DB ´Hello World´,0AH,0DH

. CODE
debut:

MOV AX,@DATA
MOV DS,AX

MOV DX,OFFSET chaine
MOV AH,09
INT 21H

MOV AX,4C00H
INT 21H
END debut

/ / voila, ça a peu pres cette gueule

Note : quasiment plus personne ne se lance dans l´assembleur, sauf pour des tous petits bouts délicats.
Un gros programme ne peut plus etre écrit en assembleur entierement : c´est de la folie, aucun etre humain ne peut supporter ça.

lord_kalipsy
lord_kalipsy
Niveau 10
25 mars 2004 à 02:17:39

:ouch:

lol sa a l´air vraiment compliquer . ..

mais je voulais savoir aussi les librairy de fonction qui se trouve dans stdio.h , stdlib.h etc . .. elle sont faite avec quel langage ? ( ces pas que je veux en faire mais juste par curiositer . ..) de plus je voualais savoir ( encore pour ma culture perso.) en quel langage sont faites les OS ( windoze,linux etc...) ?

merci :)

Kelios
Kelios
Niveau 8
25 mars 2004 à 03:04:00

Wouwou! Ça c´est mon genre de topics!

" car il parait que si on connais l´asm on a plus de facilite a comprendre les autres langages ( C, C++, Pascal, etc . . . ). "
-Non, ça ne t,aideras pas à le comprendre mieux du premier coup en l´apprenant, c,est mieux après, car après que tu aille compris la syntaxe du language, tu comprend mieux se qui se cache dessous. C´était mon cas en tout cas, ça m,avais aidé à la folie avec les pointeurs, surtout.

" 1- ce quoi la difference entre TASM , FASM , NASM ? ? ? c´est un compilateur ou un langage different ? "
Assembleurs différents. Ils diffèrent selon leur syntaxe aussi, caqu´un ont des petites différences, mais le principe reste le même. Par exemple sous masm t´as dword ptr [] mais sous nasm c´est seulement dword []

" 2- qu´est ce que l´on peu faire en assembleur ? "
Tout. Comme l´as dit JYY. Et même plus que des languages hauts-niveaux.

" 3- quel sont le difference en l´assembleur 16 bits et 32 bits ? "
JYY l´as bien expliqué. C´est basé sur l´architecture du proc.

" 4- est ce que c´est difficile a apprendre ? "
Oui et non. Le language lui même ne l,est pas, c,est la conaissance de l´hardware qui a dessous qui est monstrueux à apprendre. Surtout des procs CISC en plus, enfin généralement.

" 5- est ce que c´est vrai que sa facilite la comprehension des autre langage ? "
je dirais oui, oui et encore oui. Ça t,aide mieux à comprendre ce qu´il y a en dessous, comment ça marche vraiment sous la couverture.

6- Voir celui de JY qui est en 16 bits dos

" lol sa a l´air vraiment compliquer . . . "
C´est seulement parce que tu connais mal ça. C´est comme au tout début, quand tu regardait du BASIC, tu te disais, mais qu´est-ce que c´est compliqué ce truc!

" mais je voulais savoir aussi les librairy de fonction qui se trouve dans stdio.h , stdlib.h etc . . . elle sont faite avec quel langage ? ( ces pas que je veux en faire mais juste par curiositer . . .) de plus je voualais savoir ( encore pour ma culture perso.) en quel langage sont faites les OS ( windoze,linux etc...) ? "
Traditionnellement, pour faire une libc, on utilise du C, et pour une libc++, du C++. :)

Pour les OS, les languages varient, mais de nos jours, c´est le bon vieux bastion du C. Ça doit être le domaine ou il est le plus utilisé majoritairement, j´imagine. Ah, et évidemment, avec de l´asm qui est obligatoire généralement(accès à des fonctionalités des processeurs qui n´ont pas d´équivalent en C).
Bien sur, ils peuvent être faits en d´autres languages, mais ils ne sont pâs aussi populaires.
Y,a unpeu de C++, c´est moins utilisé en OS Dev à cause de quelques problèmes majeurs, venant surtout du fait premeir que le C++ lui-même n´était pas fait pour ça. Entres autres, il est trop high-level pour la machine ( relativement, tout de même...) et surtout, il demande un support de runtime pour le language lui même, pour certaines de ses fonctionalités en tout cas ( templates, exceptions, ect...)

Kelios
---------

lord_kalipsy
lord_kalipsy
Niveau 10
25 mars 2004 à 03:40:46

merci la je comprend mieu :) mais il y a quelque autre truc que je voulais vous demander :

" mais je voulais savoir aussi les librairy de fonction qui se trouve dans stdio.h , stdlib.h etc . . . elle sont faite avec quel langage ? ( ces pas que je veux en faire mais juste par curiositer . . . ) de plus je voualais savoir ( encore pour ma culture perso.) en quel langage sont faites les OS ( windoze,linux etc...) ? "
Traditionnellement, pour faire une libc, on utilise du C, et pour une libc++, du C++.

--> ce que je comprend pas c´est :
ex : la fonction printf si l´on ouvre le fichier entete stdio.h on vois juste :
int printf ( const char*, . ..);
mais ou est " l´interieur" de la fonction ( je sais je m´explique mal lol), comment le programmeur qui a fait sa explique a l´ordi : quand on fait printf on envois quelque chose sur l´ecran ?

merci :)

Kalipsy

Yoda_Software
Yoda_Software
Niveau 30
25 mars 2004 à 05:17:03

JeanYvesYves :d)je ne me prononcerais pas sur l´assembleur, car bien qu´autrefois il me soit arrivé d´en intégrer un petit peu dans des programmes pascal pour exploiter les interruptions, mes connaissances en la matière restent faibles.
Non, si je poste ce message c´est juste parce qu´il me semblais que la programmation objet correspondait à la 4ème génération de langages et pas à la 3ème. Me trompes-je ?

JeanYvesYves
JeanYvesYves
Niveau 10
25 mars 2004 à 08:09:09

" mais ou est " l´interieur" de la fonction ( je sais je m´explique mal lol), comment le programmeur qui a fait sa explique a l´ordi : quand on fait printf on envois quelque chose sur l´ecran ? "

--> bien entendu, plus tu descends, plus tu vas vers l´assembleur :

printf est une fonction qui contient, en C, un analyseur de format ( pour les %d, les \n, etc)
puis ensuite, oui, forcément, elle contient les 3 lignes assembleur suivantes :

MOV DX,OFFSET chaine
MOV AH,09
INT 21H

ce qui veut dire en français :
met le parametre DX sur les données " chaine"
met le parametre AH sur à 9
appelle la fonction 21h

Apres, il faut savoir que les fonctions de base sont implémentées dans le BIOS éléctroniquement
et qu´en l´occurence, la fonction 21h avec le parametre AH = 9 ecrit la chaine DX a l´écran, ainsi est fait le pross des PC.

JeanYvesYves
JeanYvesYves
Niveau 10
25 mars 2004 à 08:44:29

ça doit etre implémenté dans une lib, mais je ne sais pas laquelle :)

cela dit, si qq un a le code source de printf, je suis curieux de le voir aussi :)

Kelios
Kelios
Niveau 8
25 mars 2004 à 23:05:15

Bien. Soyons clairs:
la libc est une librarie qui est implémentée différemment par OS, voir par compilateur.
Donc le code source de printf différera à chaque librarire, tout vraisemblablement.

" --> ce que je comprend pas c´est :
ex : la fonction printf si l´on ouvre le fichier entete stdio.h on vois juste :
int printf ( const char*, . . .);
mais ou est " l´interieur" de la fonction ( je sais je m´explique mal lol), comment le programmeur qui a fait sa explique a l´ordi : quand on fait printf on envois quelque chose sur l´ecran ? "
Le code lui-même est dans une dll par exemple. C´est aussi bébête que ça.

Ce code appèle ensuite traditionnellement le Kernel pour demander au driver de la CG ou VGA ou comme tu veux, d´afficher la chaine.

Si tu veux encore plus d´iunfos sur comment on fait afficher un truc à l´écran, n´hésite pas à poser la question :).

" puis ensuite, oui, forcément, elle contient les 3 lignes assembleur suivantes :

MOV DX,OFFSET chaine
MOV AH,09
INT 21H "
Pas vraiment, parce que là, elle appèle un interrupt DOS, ce qui est loin d´être efficace ( mode réel 16 bits, quelqu´un? :))

On préférera le passer à un driver, pour garder le Hardware Abstraction.

" Apres, il faut savoir que les fonctions de base sont implémentées dans le BIOS éléctroniquement "
plutôt des fonctions de base, qui suivent un protocole. DOS en fourni aussi, par exemple.
Il faut que tu sache qu´une BIOS n´est rien de plus qu´un programme spécial, qui est gardé sur sa carte respective ( Carte mère par exemple). Et que l´on peux très bien se débrouiller sans, juste difficilement au début.

Ah, et programmer un BIOS est loin d´être une chose commune, et c´est pur asm :)

Kelios
---------

MathieuN7
MathieuN7
Niveau 10
27 mars 2004 à 00:02:30

JY², tu dis que c´est impossible d´écrire un prog uniquement en asm, mais ceux qui ont créé le C++ par exemple: pour faire leur compilo, ils ont été obligé de taper toutes les fonction C++ en asm non? :question:

Yoda_Software
Yoda_Software
Niveau 30
27 mars 2004 à 00:30:24

Pour le C, les fonctions de base, ont été écrites en assembleur, mais ensuite le reste a été fait en C.
Pour le C++, je pense que la très grande majorité a été faite en C.

MathieuN7
MathieuN7
Niveau 10
28 mars 2004 à 22:34:35

ben oui mais pour compiler! Ca traduit le C en asm non?

Yoda_Software
Yoda_Software
Niveau 30
29 mars 2004 à 00:24:21

Exactement !

JeanYvesYves
JeanYvesYves
Niveau 10
29 mars 2004 à 01:36:16

Mathieun7 :

J´ai dit :

" Un gros programme ne peut plus etre écrit en assembleur entierement : c´est de la folie, aucun etre humain ne peut supporter ça."

j´ai pas dit que c´était impossible, j´ai dit que c´était inhumain :)

Compare ça aux outils :
a la main, on peut tailler des pierres, avec des pierres taillées, on peut faire un marteau, avec le marteau, on peut construire des outils mieux, et au final, on peut construire une maison...

Mais va construire une maison a la main sans outil : C inhumain ! !

c´est pour cela que des langages comme le C ont été créé, certes, les compilos sont en assembleur, mais ce qu´on a fait avec l´assembleur, c´est les marteaux, et les outils simples, parce qu´apres, ça devient trop dur ! !
et apres, on utilise les marteaux pour aller plus loin ( on lache l´asm et on passe en C++)

Kelios
Kelios
Niveau 8
31 mars 2004 à 04:06:07

Ah tiens, je me rappelle d´un truc maintenant...

En quoi avait été fait le C++:

Mr. Stroustrup avait utilisé du C orienté objet, massivement camouflé sous le préprocesseur. En gros une sorte d´hybride hideux, basiquement OOP, une sorte d´ancêtre du C++.

Si tu te débrouille bien en neuhngliche, va voir ça:
http://www.research.att.com/~bs/bs_faq2.html#bootstrapping
C´est très instructif :)
Tiré de la FAQ technique.

Le site de Mr Stroustrup:
http://www.research.att.com/~bs/C++.html

Kelios
---------

jarose
jarose
Niveau 10
31 mars 2004 à 04:52:33

Tu parles d´Objective C utilisé sur les NeXTStep et les mac os ?

Si c´est le cas, ça n´a rien à voir avec C++ ; )

Chris_le_ouf
Chris_le_ouf
Niveau 5
31 mars 2004 à 10:58:13

Kelios te dit que Stroustrup a utilisé le préprocesseur pour rendre à moitié orienté-objet du C ( standard je suppose) je vois pas le rapport avec objective C inventé en 1983 par Brad Cox

MathieuN7
MathieuN7
Niveau 10
31 mars 2004 à 17:40:24

JY²-> Ah ok! J´avais pas compri... lol

pi jarose-> c pas la peine de l´insulter de crétin, il t´as pas agressé ni rien t´as qu´à lui expliquer pourquoi tu parlais de l´objective C, alors soit tu t´es aperçu que tu t´es trompé, tu t´es trouvé con d´où l´agressivité, soit l´agressivité est chez toi naturelle...
Perso, les 2 sont exactes

MathieuN7
MathieuN7
Niveau 10
31 mars 2004 à 20:47:50

ben moi chui pas désagréable avec les autres...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware