8
votes

Comment convertir un nombre positif à l'assemblage négatif

Je veux convertir un nombre positif à un assemblage négatif, J'ai besoin d'un échantillon de code

L'entrée est en hex sdword

merci


4 commentaires

Vous devez spécifier un processeur. Chaque processeur utilise un ensemble d'opérations différent.


Quel langage de montage?


Utilisez l'instruction Neg. "HEX SDWORD" ne veut rien dire, HEX est pour l'homme.


Dupliqué possible de Comment calculer un nombre négatif en montage


3 Réponses :


1
votes

Vous pouvez prendre le complément du nombre de deux. C'est à dire. Bitwise pas suivi de l'ajout d'un. XXX


3 commentaires

Je veux convertir un nombre situé dans SDWord à Hexadecimal et non binaire


Cela ne fait pas une différence, vous pouvez utiliser la même instruction pour Hex. Il suffit de remplacer 000000010B avec 0x123 par exemple


@Madhurahuja Si le numéro est négatif, il changera de signe aussi? Sinon, quelle opération je dois faire, changer positive à la négative et ne pas modifier négativement à positif, en conclusion: juste pour changer de négatif si elle pose et si elle négative.



-3
votes

Voici une ressource en ligne qui montre comment faire cela pour le processeur 80x86: http://webster.cs.ucr.edu/aoa/dos/ch01/ch01-2.html


1 commentaires

Ce lien ne fonctionne plus. Vous savez maintenant pourquoi les réponses de liaison seules sont découragées.



18
votes

Eh bien, il y a deux façons de le faire, il serait préférable de charger le nombre dans un registre, puis d'utiliser l'instruction nge comme la mention Hans, c'est-à-dire: Neg EX Nierrait EAx. L'autre sens serait XOR EAX, EAX Sub EAX, EDX où EDX contient le numéro que vous souhaitez nier


2 commentaires

Au lieu de XOR EAX, EAX , pourquoi pas seulement MOV EAX, 0H ?


@ user1720897: XOR EAX, EAX est une idiome de casse de dépendance (voir le Guide d'optimisation Intel), cela signifie que la CPU peut utiliser le registre de renommer pour accélérer les choses. C'est également un codage plus petit, cela aide à la pression I-cache et à la récupération d'instructions. TBH, cela ne fait aucune différence dans ce cas, c'est juste une habitude de la mienne (mais pas une mauvaise habitude).