Msna Erreur: invalid combinaison de l'opcode opérandes et
Dans ma quête pour apprendre MSNA, je suis en train de réellement créer un programme simple qui fait une division, et renvoie le résultat.
Par les livres, tout devrait fonctionner correctement. Je suis divisant 15 par 3, et il doit être automatiquement stockées dans le registre AX avec qui j'ai ensuite passer à la ecx pour la sortie.
Cependant, lorsque j'essaie de compiler, j'obtiens l'erreur
nums.asm:6: error: invalid combination of opcode and operands
nums.asm:7: error: invalid combination of opcode and operands
Personne ne sait quel est le problème avec les lignes 6 et 7?
C'est mon code:
segment .text
global main
main:
div 3, 15
mov ecx, ax
mov ebx,1 ; arg1, where to write, screen
mov eax,4 ; write sysout command to int 80 hex
int 0x80 ; interrupt 80 hex, call kernel
exit: mov eax, 1
xor ebx, ebx
int 0x80
OriginalL'auteur CodyBugstein | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
Je continue à voir cette forme souvent:
div 3, 15
ce n'est pas valable INTEL mneumonic!De diviser 15 par 3:
Pour la deuxième erreur, vous ne pouvez pas déplacer un 16 bits registre de 32 bits registre comme ça. Vous devez utiliser l'une des opérations suivantes:
Ou:
Pouvez-vous mettre 1 litre d'eau dans un 1/2 gallon cruche?
Certains d'entre elles... C'est la logique, je suis sur que je gratte ma tête vous vous demandez pourquoi vous ne pouvez pas mettre un 16 bits s'inscrire dans un registre 32
Vous pouvez comme je vous ai montré!
OriginalL'auteur Gunner