2011-10-11 12 views
0

Je ne comprends pas comment gérer la multiplication d'assemblages. Je travaille sur quelques problèmes décrits comme ceci:Plus de multiplication du langage d'assemblage

Given these hex values for the 8086 registers 
AX = E204 BX = 30C2 CX = 5C08 DX = 38F1 
What are the hex values in DX and AX after executing this instruction: 
mul cl 

Pour opérations MUL, nous ne sommes al utilisant la multiplication et le multiplicateur? Par exemple, cette multiplication serait-elle simplement 4 * 8 = 32 (décimal) avec le résultat stocké dans ax?

Lorsque imul est utilisé, nous multiplier la valeur entière dans hache et le multiplicateur, puis stocker les résultats dans dx: hache, non?

Pour ce problème, si je suis en effet approchais de la bonne façon, al * cl = 4 * 8 = 32. Puis:

al = 20 

Est-ce que je garde ah même (E2) ou puis-je le mettre à zéro pour la réponse?

+1

On dirait des devoirs. Pourquoi ne lisez-vous pas attentivement la référence de l'instruction Intel? –

Répondre

3

Veuillez télécharger la documentation complète du processeur Intel x86 à here.

Pour plus de détails sur cette instruction, vous pouvez lire here.

0

Pourquoi n'avez-vous pas essayé? Peu importe, je l'ai fait pour vous:

Microsoft Windows XP [Versione 5.1.2600] 
(C) Copyright 1985-2001 Microsoft Corp. 

C:\Documents and Settings\db>debug 
-a 
15AB:0100 mov ax, e204 
15AB:0103 mov bx, 30c2 
15AB:0106 mov cx, 5c08 
15AB:0109 mov dx, 38f1 
15AB:010C mul cl 
15AB:010E 
-g=0100,010e 

AX=0020 BX=30C2 CX=5C08 DX=38F1 SP=FFEE BP=0000 SI=0000 DI=0000 
DS=15AB ES=15AB SS=15AB CS=15AB IP=010E NV UP EI PL NZ NA PO NC 
15AB:010E 0000   ADD  [BX+SI],AL       DS:30C2=00 
-q 

C:\DOCUME~1\db>