Langage assembleur exercice

Langage assembleur exercice - ASM - Programmation

Marsh Posté le 09-12-2019 à 11:19:55    

SLT les amis j'ai un devoir a rendre en L1 info pour demain je bloque a un exercice ....
 
Voici l'exercice en question.  
 
Soit la configuration suivante d’une mémoire centrale et d’une pile ainsi que des registres du processeur. Les nombres sont codés selon la convention du complément à 2 sur 32 bits.
 
La mémoire centrale contient deux entiers A et B et la pile deux entiers C et 3.
 
 
adresse contenu  
100 Entier A  
104 Entier B  
108 100
112 104  
116 ???
 
Configuration de la mémoire centrale
adresse Contenu
200 Entier c
204 3
208 ----
212 ---
 
 
Configuration des registres
 
registre contenu  
RB 20
RSP 208  
PSW(ZCOS) 0000
 
Ecrivez un programme assembleur qui réalise le calcul suivant : A + C * B. Si le résultat est positif, celui-ci est écrit à l’adresse 116 en mémoire centrale, sinon il est placé au sommet de la pile, au-dessus de l’entier 3. Vous ne disposez pas d’opérateur de multiplication et vous devez utiliser au moins une fois l’adressage indirect et une fois l’adressage basé.
 
 
de mon cote j'ai charge  
Load D RO 100
LOAD I R1 104
LOAD D R2 200
 
mais comment faire C*B sans utiliser l'opérateur de multiplication


Message édité par Harkonnen le 12-12-2019 à 21:48:05
Reply

Marsh Posté le 09-12-2019 à 11:19:55   

Reply

Marsh Posté le 09-12-2019 à 12:09:38    

Vu que ce sont des nombres entiers, il suffit d'utiliser une boucle.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-12-2019 à 12:13:26    

Merci l'ami de ta réponse :) en revanche je vois pas du tout comment utiliser la boucle dans ce cas la ...

Reply

Marsh Posté le 09-12-2019 à 12:21:49    

ctzfour a écrit :

Merci l'ami de ta réponse :) en revanche je vois pas du tout comment utiliser la boucle dans ce cas la ...


 
Une multiplication est une somme d'additions.

Reply

Marsh Posté le 09-12-2019 à 12:37:20    

Du coup ca sera  
Boucle : ADD Rg2 R1 R2
/* afin de multiplier C*B      */
 
??


Message édité par ctzfour le 09-12-2019 à 12:47:03
Reply

Marsh Posté le 09-12-2019 à 13:06:27    

Ex : 3*5 = 5+5+5 = 15
Donc tu fais une boucle qui varie de 1 à C dans laquelle tu fais B + le résultat de la somme du précédent tour de boucle. Tu peux utiliser un registre pour stocker ce résultat.
En PHP :
$Somme = 0;
for($i = 1; $i <= $C; $i++)
{  
    $Somme += $B;
}


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-12-2019 à 13:42:53    

Merci d'éditer ton titre. Ècrire un mot tout en majuscules est considéré comme crier et donc malpoli.

Reply

Marsh Posté le 09-12-2019 à 14:16:20    

rat de combat a écrit :

Merci d'éditer ton titre. Ècrire un mot tout en majuscules est considéré comme crier et donc malpoli.


 
a ce point rongeur.....

Reply

Marsh Posté le 09-12-2019 à 17:56:49    

Non, il a raison, c'est une convention le "tout en majuscules = crier". Ca vient d'avant qu'il y ait les smileys pour indiquer ses émotions sur les forums/chats/IRC/messageries instantanées... ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-12-2019 à 21:36:53    

ctzfour a écrit :


 
a ce point rongeur.....


T'arrange pas trop ton cas là [:mlc]
Quand tu demandes de l'aide, respecter tes interlocuteurs et te plier aux règles en usage dans la communauté vers laquelle tu te tournes peut grandement encourager les gens à chercher à te répondre...


---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 09-12-2019 à 21:36:53   

Reply

Marsh Posté le 12-12-2019 à 21:47:38    

ctzfour a écrit :


 
a ce point rongeur.....


 
Règles du forum : https://forum.hardware.fr/hfr/Progr [...] 4544_1.htm

Citation :


[05] Évitez les titres "agressifs".
 
    Évitez les titres entièrement en majuscule et/ou contenant un nombre excessif de caractères du type "---==== AIDE SVP ====---".
    Évitez également titres du genre "svp aide sur Access" ou "vite j'ai un prob php c'est urgent", cela n'apporte rien car la majorité des topics concernent une demande d'aide et sont très souvent urgents.  


Merci de les respecter.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed