6
votes

Question d'entrevue Microsoft ASM?

Je cherchais en ligne à travers des échantillons de questions d'entrevue posées dans le passé par Microsoft et rencontré celui-ci:

Le bloc ASM suivant effectue un Fonction mathématique commune, qu'est-ce que c'est? p>

cwd xor ax, dx
sub ax, dx


2 commentaires

Les gens demandent-ils aux questions d'ASM dans des interviews?


Je viens de lire qu'une question de question de la question par le passé est allée comme suit: l'entrevue met un stylo noir devant vous et ne dit rien mais "ceci est un stylo rouge" ... donc je ne voudrais donc rien dire de Microsoft


3 Réponses :


1
votes

trouve la valeur absolue

Il ne fonctionne que sur AX / EAX - Il détruit un registre (DX / EDX) - il peut être effectué plus rapidement sur les processeurs Pentium et plus récents Le problème est l'instruction CWD. Pour remplacer la CWD, vous pouvez utiliser cette combinaison: MOV DX, AX SAR DX, 15 (si des registres 32 bits sont utilisés, passez à une valeur de 31 à la place.)

CWD- Convertissez le mot en double mot.

AX XOR, DX => AX = AX XOR DX


2 commentaires

Merci ..Can vous s'il vous plaît élaborer comment en fait cela trouve la valeur absolue? c'est-à-dire de montrer quelles instructions font étape par étape (bien peut-être que la première instruction depuis que je comprends le second)


Mec, c'est assembleur. C'est pas à pas.



4
votes

C'est la fonction ABS (de hache ).

Si AX est positif, alors dx deviendra 0 et rien ne change.

si hache est négatif, dx sera 0xfff , ce qui donne dans AX ~ ~ AX - (-1) , qui est la méthode bien connue pour l'informatique neg dans une représentation TWO-Complément.


0 commentaires

7
votes

CWD XOR AX, DX

Convertissez le mot dans la hache en double mot dans dx: hache. Le signe est préservé, la valeur est préservée. Donc si hache> = 0, dx = 0 et six <0, dx = -1.

XOR ne fait rien si AX == 0.

Si AX <0, le XOR renverse tous les morceaux de hache. Ensuite, le sous-forme ajoute 1 (ou soustrait -1, quoi que ce soit: p) à hacher. C'est le moyen de calculer le complément d'un nombre binaire.

Dans l'ensemble, cette séquence d'instructions place la valeur absolue de la hache dans la hache et définit DX en fonction du signe.


0 commentaires