π
<-
Chat plein-écran
[^]

[ASM] Plusieurs questions sur l'assembleur

Assembleur, Axe, C/C++, ICE...

[ASM] Plusieurs questions sur l'assembleur

Unread postby Limonadd » 27 Jun 2018, 18:31

Bonjour ! Je viens tout juste de commencer l'assembleur mais il y a quelques trucs que je comprends pas. Voici le code d'un des tutos que j'ai vu:
Code: Select all
#include "ti83pce.inc"
   
   .assume ADL=1
   .db tExtTok,tAsm84CeCmp
   .org userMem

call _homeup
call _ClrScrnFull
ld hl,text
call _PutS
call _GetKey
call _ClrScrnFull
res donePrgm,(iy+doneFlags)
ret

text:
  .db "Hello World !",0



Tout d'abord, à quoi sert _homeup exactement?
ensuite le label text, c'est l'adresse à laquelle la chaine de caractère est stockée si j'ai bien compris?
et donc je croyais que .db servait à allouer un byte donc un octet à partir de cette adresse, mais ça à pas l'air d'être ça c'est pas logique puisque la chaine doit prendre bien plus. Donc à quoi sert db exactement svp? XD ensuite à quoi sert le ,0 après le Hello world?
Et enfin à quoi sert la commande res (avec ce qui suit) ?
Désolé pour toutes ces questions, j'espère que quelqu'un pourra me réponde. :)
Merci d'avance :D
User avatar
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 97.1%
 
Posts: 82
Joined: 14 Feb 2018, 17:10
Gender: Male
Calculator(s):
MyCalcs profile
Class: oui

Re: Plusieurs questions sur l'assembleur

Unread postby TheMachine02 » 27 Jun 2018, 18:36

_homeup est un call système de l'OS pour remettre le curseur de l'écran d'accueil tout en haut. Text est bien l'adresse de la chaîne oui, quand tu fais un db avec une chaine de caractère ça insère le nombre de byte nécessaire pour écrire la chaine en ASCII (merci l'assembleur !). L'équivalent donc de beaucoup de db x,x,x,x... Le 0 signifie juste la fin de la chaîne de caractère. C'est nécessaire, car la fonction qui affiche la chaine attends un zéro pour quitter, tu imagines bien si y'en a pas :P

res permet de mettre un bit à zéro ; ici ça met le bit 'donePrgm' de l'octet pointé par iy+doneFlags. C'est une commande un peu plus complexe, mais ça permet de supprimer le 'Done' à la fin du programme.
User avatar
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 29.4%
 
Posts: 341
Images: 0
Joined: 16 Jan 2013, 18:27
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Médecine

Re: Plusieurs questions sur l'assembleur

Unread postby Limonadd » 27 Jun 2018, 18:40

Ok ! Merci beaucoup pour ta réponse très rapide et très complète :D
User avatar
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 97.1%
 
Posts: 82
Joined: 14 Feb 2018, 17:10
Gender: Male
Calculator(s):
MyCalcs profile
Class: oui

Re: Plusieurs questions sur l'assembleur

Unread postby Limonadd » 28 Jun 2018, 10:16

Rebonjour ! J'ai d'autre questions ( oui encore xD ).
Tout d'abord sur le z80 on peut fusionner 2 registres 8 bits comme h et l pour former un registre 16 bits, hl. Sur le ez80 si on active l'ADL, si on fusionne h et l on obtient un registre 24 bits. Mais d'où viennent les 8 bits restant ?
Ensuite, pour les instructions JR et JP:
Dans le tuto il dit que JR prend soit 7 ou 12 "cycles" et JP en prend toujours 10. Mais c'est quoi un "cycle" exactement?
Merci d'avance :)
User avatar
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 97.1%
 
Posts: 82
Joined: 14 Feb 2018, 17:10
Gender: Male
Calculator(s):
MyCalcs profile
Class: oui

Re: Plusieurs questions sur l'assembleur

Unread postby Extra44 » 28 Jun 2018, 11:16

J'ai connu l'assembleur...mais pas précisément celui ci.
Mais je peux dire :
Les cycles sont les cycles d'horloge :le Cpu à une fréquence de fonctionnement, et le cycle C est la période correspondante (il me semble).
Donc une instruction qui fait 7 cycles mets 7 fois la période de fonctionnement du cpu pour s'exécuter
PS: Tu dois pouvoir trouver sur le net un site/fichier qui te donne les références des instructions...
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.

Re: Plusieurs questions sur l'assembleur

Unread postby Limonadd » 28 Jun 2018, 11:19

Ah ok d'accord, merci beaucoup Extra44 ! :D
User avatar
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 97.1%
 
Posts: 82
Joined: 14 Feb 2018, 17:10
Gender: Male
Calculator(s):
MyCalcs profile
Class: oui

Re: Plusieurs questions sur l'assembleur

Unread postby Epharius » 28 Jun 2018, 18:46

Les 8 bits restants tu ne peux pas y accéder directement, tu dois par exemple copier la valeur de ton registre dans la mémoire et récupérer l'octet de poids fort :
Code: Select all
; met les 8bits inaccessibles normalement dans A
ld (memoire),hl
ld a,(memoire+2)

En gros c'est juste que les instructions de l'assembleur, pour des raisons méconnues (ça peut être pour avoir une meilleure compatibilité avec l'assembleur z80), n'ont pas permis l'accès à ces bits là mais sont réels et utilisés par exemple dans les add, sbc, etc...

Pour les cycles Extra44 a à peu près tout dit, tu peux retrouver les temps que met chaque instruction ici : https://wiki.tiplanet.org/Timings_des_instructions_eZ80
Ce ne sont pas les cycles qui sont affichés mais les TStates. Si je ne dis pas de bêtise, corrigez moi si je me trompe, un Tstate est égal à 1/48,000,000 secondes vu que le cpu est cadencé à 48Mhz. Ça permet pour le coup d'avoir une très bonne approximation du temps que va mettre un bout de code à s'exécuter (mais il doit aussi y avoir un histoire de waitstate, je ne sais pas si le tableau les prend en compte ou pas).
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 7.7%
 
Posts: 1148
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Plusieurs questions sur l'assembleur

Unread postby Ti64CLi++ » 28 Jun 2018, 18:54

Et comment a-t-on pu déterminer le nombre de TStates d'une instructions? Comment cela a-t-il été possible d'être aussi précis?
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.4%
 
Posts: 3444
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Plusieurs questions sur l'assembleur

Unread postby Epharius » 28 Jun 2018, 18:55

grâce aux timers de la calculatrice, je te conseille d'aller lire le topic : viewtopic.php?t=18168
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 7.7%
 
Posts: 1148
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Plusieurs questions sur l'assembleur

Unread postby Limonadd » 28 Jun 2018, 19:04

Ok super! Merci beaucoup! mais j'ai encore d'autres questions... je suis arrivé à l'affichage de texte. Tout d'abord je ne comprends pas la différence entre ce qu'ils appellent le curseur et le "pen". Il est dit que le curseur c'est pour les grandes polices d'écritures et le pen les petites. Mais je comprend pas trop, c'est les majuscules/minuscules? Ou alors le curseur c'est pour les lettres, etc et le pen pour les pixels? ( la position du curseur sur l'écran est définie par les variables CurRow et CurCol, et pour le pen c'est PenRow et PenCol). Je suis un peu perdu... et autre petite question: à quoi servent les .list et .nolist que l'on voit dans certains débuts de codes? Merci d'avance :)
User avatar
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 97.1%
 
Posts: 82
Joined: 14 Feb 2018, 17:10
Gender: Male
Calculator(s):
MyCalcs profile
Class: oui

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 13 guests

-
Search
-
Social TI-Planet
-
Featured topics
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1463 utilisateurs:
>1452 invités
>7 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)