[Débutant] Langage Assembleur

Résolu/Fermé
Caliphe Messages postés 31 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 24 février 2016 - Modifié par Caliphe le 17/06/2015 à 18:11
Caliphe Messages postés 31 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 24 février 2016 - 17 juin 2015 à 19:51
Bonjour,
j'ai commencé à apprendre ce langage il y a quelque jour pour un examen et j'ai besoin d'un petit coup de main :
comment enlever l'octet de poids faible d'un registre, par exemple
AX = 10101101 01010101
pour qu'il devienne AX = 10101101 00000000

J'ai d'abord pensé à faire
SUB AX, AL mais c'est impossible car ils ne font pas la même taille.
l'instruction doit être de la forme :
INSTRUCTION AX, OPERANDE

Merci à vous ! :)

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 17/06/2015 à 18:45
'lut,
and ax, 0xFF00
dans l'idée.
and $0xFF00, %ax
en syntaxe AT&T
and ax, FF00h
en syntaxe Intel
À suffixer avec
w
si besoin.
Ou, sachant que AL est le registre de l'octet de poids faible de AX,
mov $0, %al
en syntaxe AT&T
mov al, 0
en syntaxe Intel
À suffixer avec
b
si besoin.
from human import idiocy
del idiocy
1
Caliphe Messages postés 31 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 24 février 2016
17 juin 2015 à 19:07
Salut et merci d'avoir répondu !
Le problème c'est que je sais que AX contient quelque chose mais je ne sais pas quoi :/
En gros on a une valeur dans la registre AX et on voudrait extraire les 8 bits de gauche du nombre stocké dans AX. On le fera en masquant l'octet de poids faible comme dans l'exemple cité avant.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225 > Caliphe Messages postés 31 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 24 février 2016
17 juin 2015 à 19:38
Bah oui, où est le problème? Ces instructions n'ont pas besoin de savoir quel est le contenu de AX à l'avance...
0
Caliphe Messages postés 31 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 24 février 2016
17 juin 2015 à 19:45
Hum, je ne comprend pas bien comment fonctionne concrètement l'instruction and, pourrais-tu me l'expliquer ?
Merci ! :)
0
Caliphe Messages postés 31 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 24 février 2016
17 juin 2015 à 19:51
Ah je viens de comprendre ! Merci beaucoup pour ton aide ! :)
0