| Amiga Impact

  · Accueil
  · Actualités
   · Proposer une info
  · Agenda
   · Proposer une date
  · Articles
  · Forum
  · Petites Annonces
  · Chat IRC
  · À propos du site
   · Confidentialité



 | Connexion

Identifiant :

Mot de passe :

 Mémoriser

  · Inscription
  · Mot de passe oublié



 | En ligne

Illustration du profil de Mandrake






 | Nous suivre

Flux RSSGoogle+TwitterFacebook





Forum

/   Forums d'Amiga Impact
   /  Programmation ASM sur Amiga

Accueil Forums AmigaOS, MorphOS et AROS Développement Programmation ASM sur Amiga

Ce sujet a 158 réponses, 30 participants et a été mis à jour par  huggyone76, il y a 1 an et 1 mois.

15 sujets de 136 à 150 (sur un total de 159)
1 9 10 11

Auteur Messages   
#260742 Répondre à : Programmation ASM sur Amiga
 le 11/05/2016 à 17:20


fhtagn

Participant
  • Messages : 200

Petite question pour les programmeurs.

 

J’ai toujours entendu dire que l’assembleur 68k était un des plus simple/plaisant à utilisé. En tant que bon fanboy d’Amiga, j’aimerai pouvoir expliquer pourquoi à un ami qui connais la programmation (assembleur et autres).

 

Quelqu’un pourrait me faire un petit topo ? Même s’il y a des choses uniquement compréhensibles par un programmeur 🙂

 

Merci,

Amiga RULEZZZZZZZ

#260744 Répondre à : Programmation ASM sur Amiga
 le 11/05/2016 à 17:44


flype

Participant
  • Messages : 1097

Salut,

Pas mal de choses derrière tout çà – de l’objectivité et de la subjectivité 🙂

Une des premières chose est que le 68K est un CPU CISC, Complex Instruction Set Computer. Par complexe, il faut comprendre ‘Plein d’instructions sympathiques’ et non ‘compliqué’. Le 68K propose donc beaucoup d’instructions pour simplifier la tache du programmeur. A contrario des CPU RISC (PPC notamment) pour lesquels il faut coder beaucoup plus avec beaucoup moins.

Deuxième chose, la syntaxe est nettement plus ‘agréable’ que la syntaxe d’un x86 par exemple.

Autre chose, l’API de l’AmigaOS s’utilise facilement en ASM 68K. Normal, il a été conçu pour.

Il y a d’autres arguments mais je suis pris de court… à plus.

A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

#260758 Répondre à : Programmation ASM sur Amiga
 le 11/05/2016 à 19:58


lexomil

Participant
  • Messages : 166

En attendant de trouver un peu de temps pour mettre à jour l’ensemble du site j’ai remis en accès les PDF des dossiers, ils sont accessibles depuis le lien Documents de la page d’accueil.

Have fun

#260766 Répondre à : Programmation ASM sur Amiga
 le 11/05/2016 à 23:12


thellier

Participant
  • Messages : 606

Deja la syntaxe est simple/claire :
add mul move etc…
On comprends facilement

les registres sont « banalises » tu as 8 registres de donnees et 8 registres d adresse (qui fonctionnent tous les 8 pareils)

Ces registres servent (et non pas la pile) a appeler l ‘AmigaOS
par les fonctions des .library

Le 68000 est 16/32 bits mais les registres sont utilisable en 32bits comme si tout etait 32bits

Voila…

#260779 Répondre à : Programmation ASM sur Amiga
 le 12/05/2016 à 14:19


serge

Participant
  • Messages : 4208

La programmation SM, non merci, pas pour moi LoL

Ok, je connais la sortie. 🙂

Le Vampire est à la mode 😉

#260780 Répondre à : Programmation ASM sur Amiga
 le 12/05/2016 à 14:48


fhtagn

Participant
  • Messages : 200

Merci pour vos réponses, si vous avez d’autres exemples n’hésitez pas, je pourrais faire plus de promo 😉

 

#260781 Répondre à : Programmation ASM sur Amiga
 le 12/05/2016 à 15:35


Amiga

Participant
  • Messages : 19

260758 wrote:

En attendant de trouver un peu de temps pour mettre à jour l’ensemble du site j’ai remis en accès les PDF des dossiers, ils sont accessibles depuis le lien Documents de la page d’accueil. Have fun

 

Je dois être fatigué, je ne trouve pas le lien Document pour l’accès des PDF

Merci de votre aide 🙂

#260789 Répondre à : Programmation ASM sur Amiga
 le 12/05/2016 à 17:35


flype

Participant
  • Messages : 1097

Un autre avantage du 68K c’est qu’il produit en principe des binaires nettement plus petit que du code PPC. Il suffit d’ailleurs de comparer sur Aminet par exemple, pour un même programme, la taille du binaire AmigaOS3.x (68K) est en principe plus petit que le binaire AmigaOS4 (PPC).

A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

#260797 Répondre à : Programmation ASM sur Amiga
 le 12/05/2016 à 18:35


lexomil

Participant
  • Messages : 166

Menu du haut, ptet un F5 pour le faire apparaitre

#260820 Répondre à : Programmation ASM sur Amiga
 le 13/05/2016 à 14:59


fhtagn

Participant
  • Messages : 200

Voila la réponse que j’ai eu, c’est comparé au 6502, il y a même quelques mots de R.J.Mical (Si je pollue le post, un admin peut ouvrir un nouveau sujet)

La moitié des réponses pointent l’intérêt du 68K par rapport au système d’exploitation de l’Amiga. C’est du hors sujet.

 

On parle spécifiquement de l’assembleur, pas d’une machine en particulier.

 

 

 

Par ailleurs, parmi les 4 langages assembleur que j’ai appris, la facilité et la puissance d’utilisation du 6502/6510 a été claire.

 

Avec ses différents modes d’adressages (directs, indirects, pré-indexés, post-indexés, etc) utilisables pour presque toutes les instructions, c’était un plaisir de coder.

 

 

 

Pour le 68K, les modes d’adressage ne fonctionnent pas tous pour toutes les instructions. Des fois oui, des fois non. Bonjour les erreurs d’assemblage qui vont contraindre de revoir la façon de programmer et modifier le source. Grosse perte de temps et énervement à la clef.

 

 

 

 

 

Q. Why does the Lynx use a 6502 and not a 68000?

 

 

 

A. « Some people believe it’s less of a processor than the 68000, for example. That series of chip was used in the Amiga, but it wouldn’t make our machine do things any better. In fact, it would only make the unit larger and more expensive. It’s also harder to write 68000 code, so we definitely made the right decision. »

 

–R.J. Mical

 

 

 

« The real answer for the choice for the 6502 vs. 68000 was price. Secondary considerations (that did not really enter into the decision making process): 68000 code is very fat compared to 6502 code. An application that takes 1K of 6502 code averages 2.5 to 3K of 68000 code. The 6502 is very bus-efficient, the 68000 has lots of dead time on the bus. As for it being harder to write 68000 code, that is probably not true, and in any case was not part of the reason the decision was made. »

 

–Stephen Landrum

 

 

 

Additionally, inside sources at Atari say that one major reason for the 6502 vs 68000 processor choice was that the 6502 design was available as a component that could be plugged into a custom chip design. This allowed engineers to build a chip with a 6502 and other supporting hardware around it all in one package. It is only around 1993-1994 that Motorola offered the 68000 as a design component.

 

 

 

 

 

Il est dommage que ces modes d’adressages n’aient pas été réutilisés. ça aurait bien simplifié le codage en ASM 68k.

 

En même temps, les 2 cpu 65xx et 68k sont bien différents : 4 ans d’écart, 8 bits vs 16 bits, 25$ vs 140$, 1MHz vs 8MHz

 

 

 

Autre particularité du 6502, c’était un cpu qui tenait à la fois du RISC et du CISC.

 

Même les instructions utilisant les modes d’adressage complexes faisaient que chaque instruction ne prenait que 2 à 7 cycles d’horloge au maximum. Sur le 68K, on va de 4 à plus de 30 cycles d’horloge. Le max est d’environ 150 cycles pour la multiplication et la division (que ne faisait pas le 6502 de base mais son grand frère 16 bits à 20MHz).

 

 

 

Après avoir pris le temps de passer en revue le jeu d’instruction du 68K, il est indéniable que le les modes d’adressage qui « fluctuent » d’une instruction à l’autre sont rédhibitoires :

 

Pour être opérationnel de façon efficace sur le 68K, il faut connaître à fond PAR COEUR tous les modes d’adressage instruction par instruction…

 

Ben voyons ! On n’a que ça à faire. Déjà que coder en ASM c’est plus long qu’en langage évolué, ça devient le pompon.

Bon, après mettre pris ça, je suis en train de rechercher mes dents 😉

#260825 Répondre à : Programmation ASM sur Amiga
 le 13/05/2016 à 15:25


AmiDARK

Participant
  • Messages : 2855

« Le max est d’environ 150 cycles pour la multiplication et la division (que ne faisait pas le 6502 de base mais son grand frère 16 bits à 20MHz). »

Je me souviens sur Apple][c qu’il fallait faire une boucle d’addition ou de soustraction pour faire notre preopre multiplication ou division :p

 

#260830 Répondre à : Programmation ASM sur Amiga
 le 13/05/2016 à 17:27


Anonyme
  • Messages : 98

Le gros avantage de l’ASM 68K par rapport à d’autres CPU c’est que tu peux commander des appareils externes comme une machine à café ou un lave linge. Tu peux expliquer cela comme ça, c’est facile à comprendre.

#261317 Répondre à : Programmation ASM sur Amiga
 le 23/05/2016 à 14:16


lexomil

Participant
  • Messages : 166

Ha tiens j’avais loupé ce post, bon alors mis à part les réponses de Mical et Landrum qui sont basées sur des contraintes de coût je trouve les autres réponses pas très objectives.

Tout d’abord il faut prendre en compte ce que l’on veut faire avec cet assembleur, tant que l’on se contente de programmes assez simple (comme un jeu d’arcade) alors oui le 6502 est largement suffisant et clairement plus efficace (à vitesse égale) qu’un 68000 à ceci près qu’il faut souvent jongler avec la limitation à 8bits. Mais si on commence à faire des choses plus complexes comme de la 3D ou carrément un OS (multitâche de surcroît) alors il ne fait aucun doute que le 68000 dépasse largement le 6502.

Quelques exemples, il n’existe pas d’appel de fonction en mode indexé sur le 6502 (du genre « jsr (Adr) »), alors c’est vrai que sur un système monotache ou la gestion de la mémoire n’existe pas vraiment ce n’est pas trop grave, mais dès que l’on veut faire du multitache ça devient compliqué, il faut jouer avec la pile et un « jmp (Adr) » pour remplacer celà. Idem pour la copie de buffer, tant que l’on reste dans la limite des 256 octets ça reste assez trivial avec le 6502 mais au delà ça se complique, on est loin du « move.l (a1)+,(a2)+ » d’un 68000.

Je vais revenir aussi sur une remarque :

Même les instructions utilisant les modes d’adressage complexes faisaient que chaque instruction ne prenait que 2 à 7 cycles d’horloge au maximum. Sur le 68K, on va de 4 à plus de 30 cycles d’horloge. Le max est d’environ 150 cycles pour la multiplication et la division (que ne faisait pas le 6502 de base mais son grand frère 16 bits à 20MHz)

Là faut pas abuser, qu’est ce qu’il appel mode d’adressage complexe, le plus complexe sur 6502 c’est l’indirect indexé genre « lda (Adr),y », qui n’est d’ailleurs, en passant, disponible que sur les instructions relatives à l’accumulateur (oué pas de « ldx (Adr),y » désolé), donc en gros un « move.w (a1,d0.w),a2 » du 68000, on est loin d’un mode complexe du point de vue 68000 comme le serait un « move.w 8(a1,d0.w),(a2)+ » (qui au passage ne prend que 20 cycles).
Certes l’instruction « nop » d’un 68K prend 4 cycles et seulement 2 sur un 6502, d’ailleurs sur 68K toute instruction prend un multiple de 4 cycles, mais déjà il faut voir que le 68000 c’est 8 fois la fréquence du 6502 (en général), donc globalement il reste 4 fois plus rapide, de plus cette contrainte de 4 cycles est liée à la faible vitesse de la RAM de l’époque qui oblige le proc à attendre des cycles d’accès, va jeter un oeil au nouveau core de l’équipe apollo (http://www.apollo-core.com/) pour te rendre compte ce qu’un 680×0 accompagné d’une mémoire rapide peu donner.

Sincèrement j’adore le 6502, en son temps c’était un merveilleux proc, parfait pour les machines 8bits, efficace, bien pensé, agréable à coder, mais sincèrement le 68000 est un cran au dessus niveau fonctionnalité.

Bonne journée

#261319 Répondre à : Programmation ASM sur Amiga
 le 23/05/2016 à 14:22


frost

Participant
  • Messages : 521

On dirait que cet argumentation concerne la conception de la Lynx, qui est équipée d’un 6502. Si on regarde sa carte mère, il y a deux gros custom chips Atari. Et l’interview parle justement d’intégrer un 6502 dans des custom chips.

Low'n Slow

#261788 Répondre à : Programmation ASM sur Amiga
 le 03/06/2016 à 15:17


lexomil

Participant
  • Messages : 166

Bonjour,

juste pour vous signaler que le site est à nouveau consultable dans son intégralité et avec un nouveau design à cette adresse http://flabrador.free.fr/lexo

Bonne lecture


15 sujets de 136 à 150 (sur un total de 159)
1 9 10 11

Vous devez être connecté pour répondre à ce sujet.

                   
Derniers sujetsFraîcheur
 · [Demande de Service] Aide Gotek il y a 2 minutes
 · Ami2PC Amiga USB transfer tool PREORDER il y a 13 minutes
 · [VENDS] HC508 rev4a il y a 5 heures et 18 minutes
 · 23/08/19 à 21h : Soirée Chat sur #amigaimpact il y a 8 heures
 · Message de Tony : Amiga 1200 et lecteur disquette récalcitrant il y a 8 heures et 5 minutes
 · Localisation des membres … il y a 8 heures et 20 minutes
 · Problème lecture fichiers ADF depuis GOTEK il y a 12 heures et 9 minutes
 · [Réservations] Interface Floppy ADF-Copy il y a 12 heures et 50 minutes
 · Original VS FPGA VS emulator il y a 14 heures et 6 minutes
 · Happiga 1.7 il y a 14 heures et 27 minutes





RechercheFraîcheur


Copyright © 2004-2019 Amiga Impact. Tous droits réservés. Les marques citées sont déposées par leurs propriétaires respectifs.
Conditions d'Utilisation, Politique de Confidentialité et Information sur les cookies.


Fil RSS WordPressNicolas Gressard, Conseil et développement informatique

Do NOT follow this link or you will be banned from the site!