Assembleur / Hexadécimal
Dedel_209
Messages postés
37
Statut
Membre
-
loupius -
loupius -
Bonjour,
Voici un exercice que je dois réaliser et j'aurais besoin de votre aide parce que je ne comprend pas.
1. Donner la valeur de CX en hexadécimal après chaque instruction :
mov cx, 11001110011100b
and ch, 010101b
rol ch, 1
add ch, 1fh
or cl, 101b
mov ax,2
and cx,ax
MERCI D'AVANCE POUR VOTRE AIDE
Voici un exercice que je dois réaliser et j'aurais besoin de votre aide parce que je ne comprend pas.
1. Donner la valeur de CX en hexadécimal après chaque instruction :
mov cx, 11001110011100b
and ch, 010101b
rol ch, 1
add ch, 1fh
or cl, 101b
mov ax,2
and cx,ax
MERCI D'AVANCE POUR VOTRE AIDE
Configuration: Windows Vista Firefox 3.0.5
A voir également:
- Assembleur / Hexadécimal
- Éditeur hexadécimal - Télécharger - Édition & Programmation
- Ascii hexadecimal - Guide
- Assembleur pdf - Guide
- Logiciel assembleur - Télécharger - Édition & Programmation
- Hexadecimal en c - Forum Programmation
20 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Lol j'ai compris...Enfaite en voyant CX g cru qu'il fallait trouver uniquement CX alors que enfaite le X représente une lettre quelconque.
Comme je vois que vous aimez les devinettes en voici une autre...LOL
Donner le code en assembleur correspondant au programme:
if (bVar < 5 && wVar >=325)
{
ax = cx * 3;
}
else
{
bx = cx * 4;
}
Comme je vois que vous aimez les devinettes en voici une autre...LOL
Donner le code en assembleur correspondant au programme:
if (bVar < 5 && wVar >=325)
{
ax = cx * 3;
}
else
{
bx = cx * 4;
}
Non pas du tout, tu n'as pas lu ton cours!
X n'est pas une lettre au hasard:
CX est un registre 16 bits qui est la concaténation des registres CH et CL.
CH signifie: registre 'C byte high', c'est à dire octet haut; c'est un registre 8 bits,
CL signifie: registre 'C byte low', c'est à dire octet bas; c'est un registre 8 bits.
Donc au final: CX = 256h * CH + CX.
Ai-je été assez clair ?
X n'est pas une lettre au hasard:
CX est un registre 16 bits qui est la concaténation des registres CH et CL.
CH signifie: registre 'C byte high', c'est à dire octet haut; c'est un registre 8 bits,
CL signifie: registre 'C byte low', c'est à dire octet bas; c'est un registre 8 bits.
Donc au final: CX = 256h * CH + CX.
Ai-je été assez clair ?
Ok merci quand même. Le problème c'est que ça risque de prendre du temps et que je n'en ai plus.
Merci quand même...
Merci quand même...
Bonjour
loupius te l'a déjà dit et tu aurais déjà dû le savoir : CH ce sont les 8 bits de poids fort de CX, de même que CL sont les 8 bits de poids faible.
Qu'est-ce que tu ne comprends pas ? Ce que sont les poids forts ? Ce que fait l'instruction AND ?
loupius te l'a déjà dit et tu aurais déjà dû le savoir : CH ce sont les 8 bits de poids fort de CX, de même que CL sont les 8 bits de poids faible.
Qu'est-ce que tu ne comprends pas ? Ce que sont les poids forts ? Ce que fait l'instruction AND ?
Peut être que en me donnant la réponse de mon POST je pourrais plus facilement comprendre parce que je suis en train de me prendre la tête avec ça...
Merci d'avance pour votre réponse
Merci d'avance pour votre réponse
C'est pas ça...
C'est que j'ai mon examen demain à 8h30 et que j'ai encore pas mal de truc à faire.
Merci quand même
C'est que j'ai mon examen demain à 8h30 et que j'ai encore pas mal de truc à faire.
Merci quand même
Merci j'ai enfin compris...Désole pour le temps qu'il a fallu
Maintenant j'ai un autre soucis! J'ai mis dans le POST un programme en C et il faut le traduire en assembleur je n'ai aucune idée comment faire
Alors si quelqu'un est insomniaque et qu'il peut m'aider ça m'arrangerai
Maintenant j'ai un autre soucis! J'ai mis dans le POST un programme en C et il faut le traduire en assembleur je n'ai aucune idée comment faire
Alors si quelqu'un est insomniaque et qu'il peut m'aider ça m'arrangerai
donc pour la ligne trois de mon 1er POST ça fait : 001000100000000 ou bien je dois refaire à nouveau la même manipulation qu'au dessus??
Excuse-moi Delel mais j'ai fais une erreur; il faut dire que la programmation en assembleur, je n'en fais plus tous les jours.
En gros j'ai dit que dans une opération le registre 8bits était étendu en 16bits, c'est faux en fait c'est l'inverse; je vais donc m'expliquer:
L'opération 'and CH, 010101b ', signifie qu'on fait un AND entre 0001 0101 b et CH (c'est-à-dire la partie haute de CX).
Soit:
CX = 339Ch AND 15FFh (soit CH tansformé en 16 bits et FF pour ne pas modifier les poids faibles)
soit en binaire:
00110011 10011100 and 00010101 111111111
idem pour les autres instructions.
En gros j'ai dit que dans une opération le registre 8bits était étendu en 16bits, c'est faux en fait c'est l'inverse; je vais donc m'expliquer:
L'opération 'and CH, 010101b ', signifie qu'on fait un AND entre 0001 0101 b et CH (c'est-à-dire la partie haute de CX).
Soit:
CX = 339Ch AND 15FFh (soit CH tansformé en 16 bits et FF pour ne pas modifier les poids faibles)
soit en binaire:
00110011 10011100 and 00010101 111111111
00110011 10011100 00010101 11111111 -------- -------- 00010001 10011100 ---> ce résultat va dans CX
idem pour les autres instructions.