Langage assembleur exercice - ASM - Programmation
Marsh Posté le 09-12-2019 à 12:09:38
Vu que ce sont des nombres entiers, il suffit d'utiliser une boucle.
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 ...
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.
Marsh Posté le 09-12-2019 à 12:37:20
Du coup ca sera
Boucle : ADD Rg2 R1 R2
/* afin de multiplier C*B */
??
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;
}
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.
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.....
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...
Marsh Posté le 09-12-2019 à 21:36:53
ctzfour a écrit : |
T'arrange pas trop ton cas là
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...
Marsh Posté le 12-12-2019 à 21:47:38
ctzfour a écrit : |
Règles du forum : https://forum.hardware.fr/hfr/Progr [...] 4544_1.htm
Citation : |
Merci de les respecter.
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