π
<-

petit exercice

Discussions scientifiques et scolaires

petit exercice

Unread postby ginno vincenzo » 24 Nov 2015, 19:22

Bonjour a vous tous,
alors voila j'ai un petit exercice dans ma spe info. et je bloque en faite , je vois pas trop

Expliquer ce que fait le programme suivant, écrit en langage machine, en supposant que le nombre x contenu dans la case mémoire d'adresse 10 est strictement positif. Que se passe-t-il si

merci pour votre aide , a l'avance
You do not have the required permissions to view the files attached to this post.
User avatar
ginno vincenzo
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 13.3%
 
Posts: 38
Joined: 13 Oct 2015, 16:34
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: PETITE EXERCICE

Unread postby critor » 24 Nov 2015, 19:27

Est-ce l'énoncé ci-dessous est complet ?
Image
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 50.2%
 
Posts: 42133
Images: 16453
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: petit exercice

Unread postby ginno vincenzo » 24 Nov 2015, 19:32

oui tout a fait .
User avatar
ginno vincenzo
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 13.3%
 
Posts: 38
Joined: 13 Oct 2015, 16:34
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: petit exercice

Unread postby critor » 24 Nov 2015, 19:34

Sais-tu de quel langage machine il s'agit ?
Ou sinon ne manque-t-il pas un document annexe avec la liste des instructions ?
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 50.2%
 
Posts: 42133
Images: 16453
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: petit exercice

Unread postby ginno vincenzo » 24 Nov 2015, 19:37

alors oui , en faite les documents annexes parlent de l'exécution d'une séquence d'instructions .
User avatar
ginno vincenzo
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 13.3%
 
Posts: 38
Joined: 13 Oct 2015, 16:34
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: petit exercice

Unread postby ginno vincenzo » 24 Nov 2015, 19:38

Le langage machine

Un ordinateur doit être capable d'exécuter un programme. Il faut donc un moyen d'indiquer au processeur la séquence des opérations qu'il doit exécuter. Par exemple, la séquence LDA 7, LDB 8, ADD A, LDB 9, ADD A, LDB 10, ADD A, STA 11. Dans les premières machines, des cartes perforées ou un ruban perforé situé à l'extérieur de la machine indiquaient les opérations à effectuer, comme les cartes d'un orgue de barbarie indiquent les notes à jouer l'une après l'autre. Puis cette idée a été abandonnée au profit d'une autre : celle d'enregistrer le programme dans la mémoire avec les données. Ainsi on peut exprimer le programme ci-dessus en binaire en décidant par exemple que l'instruction LDA s'écrit 0, l'instruction LDB s'écrit 1, l'instruction STA s'écrit 2, l'instruction STB s'écrit 3 et l'instruction ADD s'écrit 4, DEC s'écrit 5. A s'écrit 0 et B s'écrit 1. Le programme ci-dessus s'écrit alors 0, 7, 1, 8, 4, 0, 1, 9, 4, 0, 1, 10, 4, 0, 2, 11, ce qui commence à devenir assez difficile à lire, même s'il est facile de passer d'une représentation à l'autre. On peut ensuite stocker ce programme dans la mémoire, en commençant, par exemple, à la case 100


Pour que le compteur de programme fonctionne correctement, chaque instruction doit utiliser exactement deux cases mémoire : une pour son nom et une pour son argument. L'argument des instructions ADD et DEC est le nom d'un registre. En revanche comme les instructions de chargement ont déjà un argument : l'adresse mémoire où aller chercher la donnée à charger, elle ne peuvent pas en avoir un second pour indiquer le registre utilisé. C'est pour cela que l'on a deux instructions LDA et LDB et de même deux instructions STA et STB.

Enregistrer les programmes en mémoire permet de faire très simplement des boucles et des tests. On ajoute aux instructions ci-dessus une instruction JMP (jump) telle que JMP n charge simplement le nombre n, ou plutôt le nombre n – 2 qui sera augmenté de 2 immédiatement après l'exécution du JMP, dans le registre PC pour détourner le programme de sa route et le forcer à continuer son exécution à l'adresse n. De même l'instruction JMZ (jump if zero), qui effectue un saut si le contenu du registre A est 0, permet de faire des tests. On ajoute enfin l'instruction END, qui termine le programme. En langage machine, on suppose que JMP s'écrit 6. JMPZ s'écrit 7. END s'écrit 8 avec un argument puisqu'il en faut un : 0.

Pour construire une boucle ou un test avec ces nouvelles instructions, il faut tout d'abord trouver une façon de traduire la condition du test ou la condition d'arrêt de la boucle par un test d'égalité à zéro. Par exemple, pour effectuer un test comme x == 2, on peut placer la valeur de x dans le registre A, exécuter deux fois l'instruction DEC A, et enfin tester si le registre A contient 0. Ensuite, on écrit les séquences d'instructions qui correspondent aux différentes branches du test ou au corps de la boucle, et on utilise JMPZ et JMP pour diriger l'exécution du programme dans l'une ou l'autre de ces séquences. Par exemple, un programme qui lit une valeur x dans la case mémoire d'adresse 11, puis recopie la case mémoire d'adresse 12 dans la case mémoire d'adresse 20 si x vaut 2, ou la case mémoire d'adresse 13 dans la case mémoire d'adresse 30 dans le cas contraire peut s'écrire :

Les instructions précédentes ne permettent que d'accéder à un nombre limité de cases mémoire, dont les adresses sont les constantes entières qui servent d'arguments aux instructions LDA, STA, LDB et STB. Le calcul sur des structures de données plus complexes, comme des tableaux, nécessite d'autres instructions pour accéder à une case mémoire dont l'adresse est elle même une donnée, en particulier le résultat d'un calcul. Les processeurs réels ont bien d'autres instructions encore : des opérations booléennes, des opérations sur les nombres entiers, des opérations sur les nombres flottants, etc.
User avatar
ginno vincenzo
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 13.3%
 
Posts: 38
Joined: 13 Oct 2015, 16:34
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: petit exercice

Unread postby critor » 24 Nov 2015, 19:49

Merci.

Donc il faut désassembler ton programme pour comprendre ce qu'il fait.

Mais avant cela, il nous faut commencer par documenter les instructions, avec l'aide de ton document.
Les voici :
Code: Select all
0 + <valeur> = LDA <valeur>
1 + <valeur> = LDB <valeur>
2 + <valeur> = STA <valeur>
3 + <valeur> = STB <valeur>
4 + <registre> = ADD <registre>
5 + <registre> = DEC <registre>
6 + <adresse> = JMP <adresse>
7 + <adresse> = JMPZ <adresse>
8 + 0 = END


Avec cette liste, il suffit maintenant de décoder ton programme à partir de l'adresse 100. :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 50.2%
 
Posts: 42133
Images: 16453
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: petit exercice

Unread postby ginno vincenzo » 24 Nov 2015, 20:30

merci
mais , je comprend pas trop en faite !
en faite on doit assigner une valeur a chaque adresse ... on le fait avec votre algo ci dessus ?
User avatar
ginno vincenzo
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 13.3%
 
Posts: 38
Joined: 13 Oct 2015, 16:34
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: petit exercice

Unread postby critor » 24 Nov 2015, 20:35

Tu lis le programme de gauche à droite, et tu traduis successivement chaque instruction :
Code: Select all
100: 0 + 10 = LDA 10
102: 1 + 10 = ...
104: 7 + 112 = ...
106: 5 + 0 = ...
108: 4 + 1 = ...
110: 6 + 104 = ...
102: 3 + 11 = ...
104: 8 + 0 = ...
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 50.2%
 
Posts: 42133
Images: 16453
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: petit exercice

Unread postby ginno vincenzo » 24 Nov 2015, 20:43

ahh ok .... sayer je comprend un peut mieux ...
mais du coup ,quand il me demande expliquer ce que fais le programme ,,
je repond qu'il permet de calculer une valeurs de x et de y d'après une adresse donner par une instructions ..... ?

merci
User avatar
ginno vincenzo
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 13.3%
 
Posts: 38
Joined: 13 Oct 2015, 16:34
Gender: Not specified
Calculator(s):
MyCalcs profile

Next

Return to Maths, physique, informatique et autre...

Who is online

Users browsing this forum: ClaudeBot [spider] and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"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.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
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.
1166 utilisateurs:
>1123 invités
>36 membres
>7 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)